Skip to content

Commit 00d9577

Browse files
committed
initial version
0 parents  commit 00d9577

18 files changed

+1956
-0
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/weights
2+
*.pyc
3+
*._
4+
*.png
5+
__pycache__

CMakeLists.txt

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
cmake_minimum_required(VERSION 2.8.3)
2+
project(dope)
3+
4+
## Compile as C++11, supported in ROS Kinetic and newer
5+
# add_compile_options(-std=c++11)
6+
7+
## Find catkin macros and libraries
8+
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
9+
## is used, also find other catkin packages
10+
find_package(catkin REQUIRED COMPONENTS
11+
rospy
12+
std_msgs
13+
tf2
14+
)
15+
16+
## System dependencies are found with CMake's conventions
17+
# find_package(Boost REQUIRED COMPONENTS system)
18+
19+
20+
## Uncomment this if the package has a setup.py. This macro ensures
21+
## modules and global scripts declared therein get installed
22+
## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
23+
# catkin_python_setup()
24+
25+
################################################
26+
## Declare ROS messages, services and actions ##
27+
################################################
28+
29+
## To declare and build messages, services or actions from within this
30+
## package, follow these steps:
31+
## * Let MSG_DEP_SET be the set of packages whose message types you use in
32+
## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
33+
## * In the file package.xml:
34+
## * add a build_depend tag for "message_generation"
35+
## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
36+
## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
37+
## but can be declared for certainty nonetheless:
38+
## * add a exec_depend tag for "message_runtime"
39+
## * In this file (CMakeLists.txt):
40+
## * add "message_generation" and every package in MSG_DEP_SET to
41+
## find_package(catkin REQUIRED COMPONENTS ...)
42+
## * add "message_runtime" and every package in MSG_DEP_SET to
43+
## catkin_package(CATKIN_DEPENDS ...)
44+
## * uncomment the add_*_files sections below as needed
45+
## and list every .msg/.srv/.action file to be processed
46+
## * uncomment the generate_messages entry below
47+
## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
48+
49+
## Generate messages in the 'msg' folder
50+
# add_message_files(
51+
# FILES
52+
# Message1.msg
53+
# Message2.msg
54+
# )
55+
56+
## Generate services in the 'srv' folder
57+
# add_service_files(
58+
# FILES
59+
# Service1.srv
60+
# Service2.srv
61+
# )
62+
63+
## Generate actions in the 'action' folder
64+
# add_action_files(
65+
# FILES
66+
# Action1.action
67+
# Action2.action
68+
# )
69+
70+
## Generate added messages and services with any dependencies listed here
71+
# generate_messages(
72+
# DEPENDENCIES
73+
# std_msgs
74+
# )
75+
76+
################################################
77+
## Declare ROS dynamic reconfigure parameters ##
78+
################################################
79+
80+
## To declare and build dynamic reconfigure parameters within this
81+
## package, follow these steps:
82+
## * In the file package.xml:
83+
## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
84+
## * In this file (CMakeLists.txt):
85+
## * add "dynamic_reconfigure" to
86+
## find_package(catkin REQUIRED COMPONENTS ...)
87+
## * uncomment the "generate_dynamic_reconfigure_options" section below
88+
## and list every .cfg file to be processed
89+
90+
## Generate dynamic reconfigure parameters in the 'cfg' folder
91+
# generate_dynamic_reconfigure_options(
92+
# cfg/DynReconf1.cfg
93+
# cfg/DynReconf2.cfg
94+
# )
95+
96+
###################################
97+
## catkin specific configuration ##
98+
###################################
99+
## The catkin_package macro generates cmake config files for your package
100+
## Declare things to be passed to dependent projects
101+
## INCLUDE_DIRS: uncomment this if your package contains header files
102+
## LIBRARIES: libraries you create in this project that dependent projects also need
103+
## CATKIN_DEPENDS: catkin_packages dependent projects also need
104+
## DEPENDS: system dependencies of this project that dependent projects also need
105+
catkin_package(
106+
# INCLUDE_DIRS include
107+
# LIBRARIES dope
108+
# CATKIN_DEPENDS rospy std_msgs tf2
109+
# DEPENDS system_lib
110+
)
111+
112+
###########
113+
## Build ##
114+
###########
115+
116+
## Specify additional locations of header files
117+
## Your package locations should be listed before other locations
118+
include_directories(
119+
# include
120+
${catkin_INCLUDE_DIRS}
121+
)
122+
123+
## Declare a C++ library
124+
# add_library(${PROJECT_NAME}
125+
# src/${PROJECT_NAME}/dope/dope.cpp
126+
# )
127+
128+
## Add cmake target dependencies of the library
129+
## as an example, code may need to be generated before libraries
130+
## either from message generation or dynamic reconfigure
131+
# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
132+
133+
## Declare a C++ executable
134+
## With catkin_make all packages are built within a single CMake context
135+
## The recommended prefix ensures that target names across packages don't collide
136+
# add_executable(${PROJECT_NAME}_node src/dope_vis_node.cpp)
137+
138+
## Rename C++ executable without prefix
139+
## The above recommended prefix causes long target names, the following renames the
140+
## target back to the shorter version for ease of user use
141+
## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
142+
# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
143+
144+
## Add cmake target dependencies of the executable
145+
## same as for the library above
146+
# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
147+
148+
## Specify libraries to link a library or executable target against
149+
# target_link_libraries(${PROJECT_NAME}_node
150+
# ${catkin_LIBRARIES}
151+
# )
152+
153+
#############
154+
## Install ##
155+
#############
156+
157+
# all install targets should use catkin DESTINATION variables
158+
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
159+
160+
## Mark executable scripts (Python etc.) for installation
161+
## in contrast to setup.py, you can choose the destination
162+
# install(PROGRAMS
163+
# scripts/my_python_script
164+
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
165+
# )
166+
167+
## Mark executables and/or libraries for installation
168+
# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
169+
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
170+
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
171+
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
172+
# )
173+
174+
## Mark cpp header files for installation
175+
# install(DIRECTORY include/${PROJECT_NAME}/
176+
# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
177+
# FILES_MATCHING PATTERN "*.h"
178+
# PATTERN ".svn" EXCLUDE
179+
# )
180+
181+
## Mark other files for installation (e.g. launch and bag files, etc.)
182+
# install(FILES
183+
# # myfile1
184+
# # myfile2
185+
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
186+
# )
187+
188+
#############
189+
## Testing ##
190+
#############
191+
192+
## Add gtest based cpp test target and link libraries
193+
# catkin_add_gtest(${PROJECT_NAME}-test test/test_dope_vis.cpp)
194+
# if(TARGET ${PROJECT_NAME}-test)
195+
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
196+
# endif()
197+
198+
## Add folders to be run by python nosetests
199+
# catkin_add_nosetests(test)

config/config_pose.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
topic_camera: "/dope/webcam_rgb_raw"
2+
topic_publishing: "dope"
3+
frame_id: "/dope"
4+
5+
# Comment any of these lines to prevent detection / pose estimation of that object
6+
weights: {
7+
# "cracker":"cracker_60.pth",
8+
# "gelatin":"gelatin_60.pth",
9+
# "meat":"meat_20.pth",
10+
# "mustard":"mustard_60.pth",
11+
"soup":"soup_60.pth",
12+
#"sugar":"sugar_60.pth"
13+
}
14+
15+
# Cuboid dimension in cm x,y,z
16+
dimensions: {
17+
"cracker": [16.403600692749023,21.343700408935547,7.179999828338623],
18+
"gelatin": [8.918299674987793, 7.311500072479248, 2.9983000755310059],
19+
"meat": [10.164673805236816,8.3542995452880859,5.7600898742675781],
20+
"mustard": [9.6024150848388672,19.130100250244141,5.824894905090332],
21+
"soup": [6.7659378051757813,10.185500144958496,6.771425724029541],
22+
"sugar": [9.267730712890625,17.625339508056641,4.5134143829345703],
23+
}
24+
25+
draw_colors: {
26+
"cracker": [13, 255, 128], # green
27+
"gelatin": [255, 255, 255], # while
28+
"meat": [0, 104, 255], # blue
29+
"mustard": [217,12, 232], # magenta
30+
"soup": [255, 101, 0], # orange
31+
"sugar": [232, 222, 12], # yellow
32+
}
33+
34+
# Camera intrinsics (Logitech C920)
35+
camera_settings: {
36+
"name": "logitech_c920",
37+
"width": 640,
38+
"height": 480,
39+
"fx": 641.5,
40+
"fy": 641.5,
41+
"cx": 320.0,
42+
"cy": 240.0
43+
}
44+
45+
# Config params for DOPE
46+
thresh_angle: 0.5
47+
thresh_map: 0.01
48+
sigma: 3
49+
thresh_points: 0.1

docker/Dockerfile.kinetic

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
FROM nvidia/cudagl:9.0-devel-ubuntu16.04
2+
3+
# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
4+
# Full license terms provided in LICENSE.md file.
5+
6+
# Build with:
7+
# nvidia-docker build -t nvidia-dope:kinetic-v1 -f Dockerfile.kinetic ..
8+
9+
ENV HOME /root
10+
11+
WORKDIR ${HOME}
12+
13+
RUN apt-get update && apt-get -y --no-install-recommends install software-properties-common
14+
15+
# cuDNN version must match the one used by TensorRT.
16+
# TRT 4.0 is compiled with cuDNN 7.1.
17+
18+
RUN apt-get update && apt-get -y --no-install-recommends install \
19+
ant \
20+
bzip2 \
21+
ca-certificates \
22+
ccache \
23+
cmake \
24+
curl \
25+
genromfs \
26+
git \
27+
gosu \
28+
iproute \
29+
iputils-ping \
30+
less \
31+
lcov \
32+
libcudnn7=7.1.4.18-1+cuda9.0 \
33+
libcudnn7-dev=7.1.4.18-1+cuda9.0 \
34+
libeigen3-dev \
35+
libopencv-dev \
36+
make \
37+
nano \
38+
net-tools \
39+
ninja-build \
40+
openjdk-8-jdk \
41+
patch \
42+
pkg-config \
43+
protobuf-compiler \
44+
python-argparse \
45+
python-dev \
46+
python-empy \
47+
python-numpy \
48+
python-pip \
49+
python-serial \
50+
python-software-properties \
51+
rsync \
52+
s3cmd \
53+
software-properties-common \
54+
sudo \
55+
unzip \
56+
xsltproc \
57+
wget \
58+
zip \
59+
&& apt-get -y autoremove \
60+
&& apt-get clean autoclean \
61+
# pip
62+
&& pip install setuptools wheel \
63+
&& pip install 'matplotlib==2.2.2' --force-reinstall \
64+
# coveralls code coverage reporting
65+
&& pip install cpp-coveralls \
66+
# jinja template generation
67+
&& pip install jinja2 \
68+
# cleanup
69+
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
70+
71+
# ROS Kinetic
72+
WORKDIR ${HOME}
73+
RUN apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 \
74+
&& sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list' \
75+
&& sh -c 'echo "deb http://packages.ros.org/ros-shadow-fixed/ubuntu/ xenial main" > /etc/apt/sources.list.d/ros-shadow.list' \
76+
&& apt-get update && apt-get -y --no-install-recommends install \
77+
ros-kinetic-gazebo-ros-pkgs \
78+
ros-kinetic-mavros \
79+
ros-kinetic-mavros-extras \
80+
ros-kinetic-ros-base \
81+
ros-kinetic-rviz \
82+
ros-kinetic-tf2 \
83+
ros-kinetic-cv-bridge \
84+
&& apt-get -y autoremove \
85+
&& apt-get clean autoclean \
86+
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
87+
88+
# Initialize ROS
89+
RUN geographiclib-get-geoids egm96-5 \
90+
&& rosdep init \
91+
&& rosdep update
92+
93+
RUN echo 'source /opt/ros/kinetic/setup.bash' >> ${HOME}/.bashrc
94+
95+
# Install OpenCV with CUDA support.
96+
# REVIEW alexeyk: JetPack 3.2 comes with OpenCV 3.3.1 _without_ CUDA support.
97+
WORKDIR ${HOME}
98+
RUN git clone http://github.com/opencv/opencv.git && cd opencv \
99+
&& git checkout 3.3.1 \
100+
&& mkdir build && cd build \
101+
&& cmake -D CMAKE_BUILD_TYPE=RELEASE \
102+
-D CMAKE_INSTALL_PREFIX=/usr/local \
103+
-D WITH_CUDA=OFF \
104+
-D WITH_OPENCL=OFF \
105+
-D ENABLE_FAST_MATH=1 \
106+
-D CUDA_FAST_MATH=1 \
107+
-D WITH_CUBLAS=1 \
108+
-D BUILD_DOCS=OFF \
109+
-D BUILD_PERF_TESTS=OFF \
110+
-D BUILD_TESTS=OFF \
111+
.. \
112+
&& make -j `nproc` \
113+
&& make install \
114+
&& cd ${HOME} && rm -rf ./opencv/
115+
116+
# Setup catkin workspace
117+
ENV CATKIN_WS ${HOME}/catkin_ws
118+
COPY docker/init_workspace.sh ${HOME}
119+
RUN ${HOME}/init_workspace.sh
120+
121+
ENV CCACHE_CPP2=1
122+
ENV CCACHE_MAXSIZE=1G
123+
ENV DISPLAY :0
124+
ENV TERM=xterm
125+
# Some QT-Apps don't not show controls without this
126+
ENV QT_X11_NO_MITSHM 1
127+
128+
COPY requirements.txt ${HOME}
129+
RUN pip install --no-cache-dir -r requirements.txt

0 commit comments

Comments
 (0)