Skip to content

Commit 1f79a64

Browse files
committed
add synchronous node in c++
1 parent 5ccc72e commit 1f79a64

File tree

8 files changed

+452
-17
lines changed

8 files changed

+452
-17
lines changed

CMakeLists.txt

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ find_package(catkin REQUIRED COMPONENTS
1313
sensor_msgs
1414
image_transport
1515
message_generation
16+
message_filters
1617
)
1718

1819
## Make sure 'FindGFlags.cmake' and 'FindGlog.cmake' are visible to cmake
@@ -59,6 +60,8 @@ catkin_package(
5960
std_msgs
6061
geometry_msgs
6162
message_runtime
63+
sensor_msgs
64+
message_filters
6265
)
6366

6467
## Build
@@ -83,22 +86,34 @@ link_directories(
8386

8487
# Declare a C++ executable and
8588
# specify libraries to link a executable target against
86-
add_executable(rosOpenpose
87-
src/rosOpenpose.cpp
89+
add_executable(rosOpenposeAsync
90+
src/rosOpenposeAsync.cpp
8891
src/cameraReader.cpp)
8992

93+
add_executable(rosOpenposeSync
94+
src/rosOpenposeSync.cpp)
95+
9096
# Bug fix
9197
# src: https://github.com/ravijo/ros_openpose/issues/14#issuecomment-631164300
92-
add_dependencies(rosOpenpose ros_openpose_generate_messages_cpp)
98+
add_dependencies(rosOpenposeAsync ros_openpose_generate_messages_cpp)
99+
add_dependencies(rosOpenposeSync ros_openpose_generate_messages_cpp)
93100

94-
target_link_libraries(rosOpenpose
101+
target_link_libraries(rosOpenposeAsync
95102
${OpenPose_LIBS}
96103
${GFLAGS_LIBRARY}
97104
${GLOG_LIBRARY}
98105
${OpenCV_LIBS}
99106
${catkin_LIBRARIES}
100107
)
101108

109+
target_link_libraries(rosOpenposeSync
110+
${OpenPose_LIBS}
111+
${GFLAGS_LIBRARY}
112+
${GLOG_LIBRARY}
113+
${OpenCV_LIBS}
114+
${catkin_LIBRARIES}
115+
)
116+
102117
add_executable(testCameraReader
103118
src/testCameraReader.cpp
104119
src/cameraReader.cpp)

launch/core.launch

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,33 @@ Date: 2020/03/02
2424
<arg name="py_openpose_path" default="" />
2525

2626
<group if="$(arg synchronous)" >
27-
<!-- invoke synchronous node -->
28-
<node name="rosOpenpose" pkg="ros_openpose" type="ros_openpose_synchronous.py" output="screen" required="true" args="$(arg openpose_args)" >
29-
<param name="frame_id" value="$(arg frame_id)" />
30-
<param name="no_depth" value="$(arg no_depth)" />
31-
<param name="pub_topic" value="$(arg pub_topic)" />
32-
<param name="color_topic" value="$(arg color_topic)" />
33-
<param name="depth_topic" value="$(arg depth_topic)" />
34-
<param name="cam_info_topic" value="$(arg cam_info_topic)" />
35-
<param name="py_openpose_path" value="$(arg py_openpose_path)" />
36-
</node>
27+
<!-- invoke c++ synchronous node -->
28+
<group if="$(eval py_openpose_path == 'none')" >
29+
<node name="rosOpenpose" pkg="ros_openpose" type="rosOpenposeSync" output="screen" required="true" args="$(arg openpose_args)" >
30+
<param name="frame_id" value="$(arg frame_id)" />
31+
<param name="no_depth" value="$(arg no_depth)" />
32+
<param name="pub_topic" value="$(arg pub_topic)" />
33+
<param name="color_topic" value="$(arg color_topic)" />
34+
<param name="depth_topic" value="$(arg depth_topic)" />
35+
<param name="cam_info_topic" value="$(arg cam_info_topic)" />
36+
</node>
37+
</group>
38+
<!-- invoke python synchronous node -->
39+
<group unless="$(eval py_openpose_path == 'none')" >
40+
<node name="rosOpenpose" pkg="ros_openpose" type="ros_openpose_synchronous.py" output="screen" required="true" args="$(arg openpose_args)" >
41+
<param name="frame_id" value="$(arg frame_id)" />
42+
<param name="no_depth" value="$(arg no_depth)" />
43+
<param name="pub_topic" value="$(arg pub_topic)" />
44+
<param name="color_topic" value="$(arg color_topic)" />
45+
<param name="depth_topic" value="$(arg depth_topic)" />
46+
<param name="cam_info_topic" value="$(arg cam_info_topic)" />
47+
<param name="py_openpose_path" value="$(arg py_openpose_path)" />
48+
</node>
49+
</group>
3750
</group>
3851
<group unless="$(arg synchronous)" >
3952
<!-- invoke asynchronous node -->
40-
<node name="rosOpenpose" pkg="ros_openpose" type="rosOpenpose" output="screen" required="true" args="$(arg openpose_args)" >
53+
<node name="rosOpenpose" pkg="ros_openpose" type="rosOpenposeAsync" output="screen" required="true" args="$(arg openpose_args)" >
4154
<param name="frame_id" value="$(arg frame_id)" />
4255
<param name="no_depth" value="$(arg no_depth)" />
4356
<param name="pub_topic" value="$(arg pub_topic)" />

launch/run.launch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Date: 2019/11/23
99
<!-- set this flag to switch ros_openpose to a synchronous setting -->
1010
<arg name="synchronous" default="false" />
1111

12-
<!-- specify path of python openpose library (only necessary if synchronous setting is being used) -->
13-
<arg name="py_openpose_path" default="/usr/local/python" />
12+
<!-- specify path to python openpose library (specifying this will switch synchronous setting from c++ to python) -->
13+
<arg name="py_openpose_path" default="none" />
1414

1515
<!-- the value of this argument can only be one of the following: realsense, kinect, zed2, nodepth -->
1616
<arg name="camera" default="realsense" />

package.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,15 @@
1515
<build_depend>roscpp</build_depend>
1616
<build_depend>std_msgs</build_depend>
1717
<build_depend>geometry_msgs</build_depend>
18+
<build_depend>sensor_msgs</build_depend>
19+
<build_depend>message_filters</build_depend>
1820

1921
<exec_depend>roscpp</exec_depend>
2022
<exec_depend>std_msgs</exec_depend>
2123
<exec_depend>geometry_msgs</exec_depend>
2224
<exec_depend>message_runtime</exec_depend>
25+
<exec_depend>sensor_msgs</exec_depend>
26+
<exec_depend>message_filters</exec_depend>
2327
<export>
2428
</export>
2529
</package>

scripts/echo.py

100644100755
File mode changed.

scripts/visualizer.py

100644100755
File mode changed.
File renamed without changes.

0 commit comments

Comments
 (0)