Updated rtabmap_examples launch files with new structure

This commit is contained in:
matlabbe
2023-03-04 15:40:17 -08:00
parent a7675b7c09
commit f5f6097a20
41 changed files with 245 additions and 144 deletions
+30 -1
View File
@@ -1,7 +1,36 @@
cmake_minimum_required(VERSION 3.5)
project(rtabmap_examples)
catkin_package()
find_package(catkin REQUIRED COMPONENTS
roscpp rtabmap_conversions
)
catkin_package(
CATKIN_DEPENDS roscpp rtabmap_conversions
)
###########
## Build ##
###########
include_directories(
${catkin_INCLUDE_DIRS}
)
add_executable(rtabmap_external_loop_detection_example src/ExternalLoopDetectionExample.cpp)
target_link_libraries(rtabmap_external_loop_detection_example ${catkin_LIBRARIES})
set_target_properties(rtabmap_external_loop_detection_example PROPERTIES OUTPUT_NAME "external_loop_detection_example")
#############
## Install ##
#############
install(TARGETS
rtabmap_external_loop_detection_example
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
#############
## Install ##
@@ -19,7 +19,7 @@
<!-- Run the ROS package stereo_image_proc (throttle to 10 Hz to avoid rectifying all images) -->
<group ns="/stereo_camera" >
<node pkg="nodelet" type="nodelet" name="stereo_throttle" args="standalone rtabmap_ros/stereo_throttle">
<node pkg="nodelet" type="nodelet" name="stereo_throttle" args="standalone rtabmap_legacy/stereo_throttle">
<remap from="left/image" to="left/image_raw"/>
<remap from="right/image" to="right/image_raw"/>
<remap from="left/camera_info" to="left/camera_info"/>
@@ -36,6 +36,6 @@
<remap from="right/camera_info" to="right/camera_info_throttle"/>
</node>
<node if="$(arg gen_depth)" pkg="nodelet" type="nodelet" name="disparity2depth" args="standalone rtabmap_ros/disparity_to_depth"/>
<node if="$(arg gen_depth)" pkg="nodelet" type="nodelet" name="disparity2depth" args="standalone rtabmap_util/disparity_to_depth"/>
</group>
</launch>
Binary file not shown.

After

Width:  |  Height:  |  Size: 551 KiB

@@ -0,0 +1,30 @@
#%YAML:1.0
---
camera_name: MH_01_easy_left
image_width: 752
image_height: 480
camera_matrix:
rows: 3
cols: 3
data: [ 4.5865400000000000e+02, 0., 3.6721499999999997e+02, 0.,
4.5729599999999999e+02, 2.4837500000000000e+02, 0., 0., 1. ]
distortion_coefficients:
rows: 1
cols: 4
data: [ -2.8340810999999999e-01, 7.3959070000000002e-02,
1.9358999999999999e-04, 1.7618711400000001e-05 ]
distortion_model: plumb_bob
rectification_matrix:
rows: 3
cols: 3
data: [ 9.9996634750298619e-01, -1.4227432298321767e-03,
8.0795831104762770e-03, 1.3657459036274155e-03,
9.9997417608074302e-01, 7.0556296505566432e-03,
-8.0894128132919258e-03, -7.0443575534647465e-03,
9.9994246755850658e-01 ]
projection_matrix:
rows: 3
cols: 4
data: [ 4.3520469597145990e+02, 0., 3.6745172119140625e+02, 0., 0.,
4.3520469597145990e+02, 2.5220085144042969e+02, 0., 0., 0., 1.,
0. ]
@@ -0,0 +1,30 @@
#%YAML:1.0
---
camera_name: MH_01_easy_right
image_width: 752
image_height: 480
camera_matrix:
rows: 3
cols: 3
data: [ 4.5758699999999999e+02, 0., 3.7999900000000002e+02, 0.,
4.5613400000000001e+02, 2.5523800000000000e+02, 0., 0., 1. ]
distortion_coefficients:
rows: 1
cols: 4
data: [ -2.8368365000000001e-01, 7.4512839999999997e-02,
-1.0473000000000000e-04, -3.5559070000000001e-05 ]
distortion_model: plumb_bob
rectification_matrix:
rows: 3
cols: 3
data: [ 9.9996335257946345e-01, -3.6258159819210472e-03,
7.7554468926514068e-03, 3.6804026836554193e-03,
9.9996847525904631e-01, -7.0358456623254633e-03,
-7.7296917225483383e-03, 7.0641309842873097e-03,
9.9994517345668066e-01 ]
projection_matrix:
rows: 3
cols: 4
data: [ 4.3520469597145990e+02, 0., 3.6745172119140625e+02,
-4.7906395664848930e+01, 0., 4.3520469597145990e+02,
2.5220085144042969e+02, 0., 0., 0., 1., 0. ]
@@ -143,7 +143,7 @@ Visualization Manager:
Value: true
Axis: Z
Channel Name: intensity
Class: rtabmap_ros/MapCloud
Class: rtabmap_rviz_plugins/MapCloud
Cloud decimation: 4
Cloud max depth (m): 4
Cloud voxel size (m): 0.01
@@ -169,7 +169,7 @@ Visualization Manager:
Use Fixed Frame: true
Use rainbow: true
Value: true
- Class: rtabmap_ros/Info
- Class: rtabmap_rviz_plugins/Info
Enabled: true
Name: Info
Topic: /rtabmap/info

Before

Width:  |  Height:  |  Size: 323 B

After

Width:  |  Height:  |  Size: 323 B

@@ -4,31 +4,31 @@
<!--
Examples:
F2M (default VO):
$ roslaunch rtabmap_ros euroc_datasets.launch
$ roslaunch rtabmap_examples euroc_datasets.launch
$ rosbag play -.-clock V1_01_easy.bag
For MH sequences, we should set MH_seq to true because the ground truth source is different.
$ roslaunch rtabmap_ros euroc_datasets.launch MH_seq:=true
$ roslaunch rtabmap_examples euroc_datasets.launch MH_seq:=true
$ rosbag play -.-clock MH_01_easy.bag
MSCKF (VIO):
$ roslaunch rtabmap_ros euroc_datasets.launch args:="Odom/Strategy 8"
$ roslaunch rtabmap_examples euroc_datasets.launch args:="Odom/Strategy 8"
$ rosbag play -.-clock V1_01_easy.bag
We need to ignore the first 24 seconds for correct VIO initialization (drone should not move).
$ roslaunch rtabmap_ros euroc_datasets.launch args:="Odom/Strategy 8" MH_seq:=true
$ roslaunch rtabmap_examples euroc_datasets.launch args:="Odom/Strategy 8" MH_seq:=true
$ rosbag play -.-clock -s 24 MH_01_easy.bag
OKVIS (VIO):
$ roslaunch rtabmap_ros euroc_datasets.launch args:="Odom/Strategy 6 OdomOKVIS/ConfigPath ~/okvis/config/config_fpga_p2_euroc.yaml" MH_seq:=true raw_images_for_odom:=true
$ roslaunch rtabmap_examples euroc_datasets.launch args:="Odom/Strategy 6 OdomOKVIS/ConfigPath ~/okvis/config/config_fpga_p2_euroc.yaml" MH_seq:=true raw_images_for_odom:=true
$ rosbag play -.-clock MH_01_easy.bag
VINS (VIO):
$ roslaunch rtabmap_ros euroc_datasets.launch args:="Odom/Strategy 9 OdomVINS/ConfigPath ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml" MH_seq:=true raw_images_for_odom:=true
$ roslaunch rtabmap_examples euroc_datasets.launch args:="Odom/Strategy 9 OdomVINS/ConfigPath ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml" MH_seq:=true raw_images_for_odom:=true
$ rosbag play -.-clock MH_01_easy.bag
VINS (VO):
$ roslaunch rtabmap_ros euroc_datasets.launch args:="Odom/Strategy 9 OdomVINS/ConfigPath ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml" MH_seq:=true raw_images_for_odom:=true
$ roslaunch rtabmap_examples euroc_datasets.launch args:="Odom/Strategy 9 OdomVINS/ConfigPath ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml" MH_seq:=true raw_images_for_odom:=true
$ rosbag play -.-clock MH_01_easy.bag
-->
@@ -45,19 +45,19 @@ Examples:
<arg name="MH_seq" default="false"/> <!-- For MH sequences, the ground truth is coming from a different topic -->
<arg name="raw_images_for_odom" default="false"/>
<arg name="record_ground_truth" default="false"/>
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="rviz" default="false"/>
<!-- Image rectification and publishing synchronized camera_info-->
<group ns="stereo_camera">
<node pkg="rtabmap_ros" type="yaml_to_camera_info.py" name="yaml_to_camera_info_left">
<param name="yaml_path" value="$(find rtabmap_ros)/launch/calibration/euroc_left.yaml"/>
<node pkg="rtabmap_util" type="yaml_to_camera_info.py" name="yaml_to_camera_info_left">
<param name="yaml_path" value="$(find rtabmap_examples)/launch/config/euroc_left.yaml"/>
<remap from="image" to="/cam0/image_raw"/>
<remap from="camera_info" to="left/camera_info"/>
</node>
<node pkg="rtabmap_ros" type="yaml_to_camera_info.py" name="yaml_to_camera_info_right">
<param name="yaml_path" value="$(find rtabmap_ros)/launch/calibration/euroc_right.yaml"/>
<node pkg="rtabmap_util" type="yaml_to_camera_info.py" name="yaml_to_camera_info_right">
<param name="yaml_path" value="$(find rtabmap_examples)/launch/config/euroc_right.yaml"/>
<param name="frame_id" value="cam1"/>
<remap from="image" to="/cam1/image_raw"/>
<remap from="camera_info" to="right/camera_info"/>
@@ -79,12 +79,12 @@ Examples:
<node if="$(arg MH_seq)" pkg="tf" type="static_transform_publisher" name="leica_base_link" args="0.120209 -0.0184772 -0.0748903 0 0 0 leica base_link_gt 100"/>
<node unless="$(arg MH_seq)" pkg="tf" type="static_transform_publisher" name="vicon_base_link" args="0.12395 -0.02781 -0.06901 0 0 0 vicon/firefly_sbx/firefly_sbx base_link_gt 100"/>
<node if="$(arg MH_seq)" pkg="rtabmap_ros" type="point_to_tf.py" name="point_to_tf">
<node if="$(arg MH_seq)" pkg="rtabmap_util" type="point_to_tf.py" name="point_to_tf">
<remap from="point" to="/leica/position"/>
<param name="frame_id" value="leica"/>
<param name="fixed_frame_id" value="world"/>
</node>
<node unless="$(arg MH_seq)" pkg="rtabmap_ros" type="transform_to_tf.py" name="transform_to_tf">
<node unless="$(arg MH_seq)" pkg="rtabmap_util" type="transform_to_tf.py" name="transform_to_tf">
<remap from="transform" to="/vicon/firefly_sbx/firefly_sbx"/>
<param name="frame_id" value="world"/>
<param name="child_frame_id" value="vicon/firefly_sbx/firefly_sbx"/>
@@ -99,7 +99,7 @@ Examples:
</node>
<!-- RTAB-Map -->
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg if="$(arg raw_images_for_odom)" name="rtabmap_args" value="$(arg common_args) --Rtabmap/ImagesAlreadyRectified false"/>
<arg unless="$(arg raw_images_for_odom)" name="rtabmap_args" value="$(arg common_args)"/>
<arg if="$(arg raw_images_for_odom)" name="odom_args" value="--Rtabmap/ImagesAlreadyRectified false"/>
@@ -112,7 +112,7 @@ Examples:
<arg if="$(arg record_ground_truth)" name="ground_truth_base_frame_id" value="base_link_gt"/>
<arg name="cfg" value="$(arg cfg)"/>
<arg name="imu_topic" value="/imu/data"/>
<arg name="rtabmapviz" value="$(arg rtabmapviz)"/>
<arg name="rtabmap_viz" value="$(arg rtabmap_viz)"/>
<arg name="rviz" value="$(arg rviz)"/>
<arg name="wait_imu_to_init" value="true"/>
</include>
@@ -8,7 +8,7 @@
$ wget https://gist.githubusercontent.com/matlabbe/897b775c38836ed8069a1397485ab024/raw/6287ce3def8231945326efead0c8a7730bf6a3d5/tum_rename_world_kinect_frame.py
$ python tum_rename_world_kinect_frame.py rgbd_dataset_freiburg3_long_office_household.bag
$ roslaunch rtabmap_ros rgbdslam_datasets.launch
$ roslaunch rtabmap_examples rgbdslam_datasets.launch
$ rosbag play -.-clock rgbd_dataset_freiburg3_long_office_household.bag
-->
@@ -16,7 +16,7 @@
<!-- Choose visualization -->
<arg name="rviz" default="true" />
<arg name="rtabmapviz" default="false" />
<arg name="rtabmap_viz" default="false" />
<!-- TF FRAMES -->
<node pkg="tf" type="static_transform_publisher" name="world_to_map"
@@ -26,7 +26,7 @@
<group ns="rtabmap">
<!-- Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<node pkg="rtabmap_odom" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<remap from="rgb/image" to="/camera/rgb/image_color"/>
<remap from="depth/image" to="/camera/depth/image"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
@@ -44,7 +44,7 @@
<!-- Visual SLAM -->
<!-- args: "delete_db_on_start" and "udebug" -->
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
<node name="rtabmap" pkg="rtabmap_slam" type="rtabmap" output="screen" args="--delete_db_on_start">
<param name="subscribe_depth" type="bool" value="true"/>
<param name="Rtabmap/StartNewMapOnLoopClosure" type="string" value="true"/>
@@ -65,7 +65,7 @@
</node>
<!-- Visualisation -->
<node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
<node if="$(arg rtabmap_viz)" pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" args="-d $(find rtabmap_examples)/launch/config/rgbd_gui.ini" output="screen">
<param name="subscribe_depth" type="bool" value="true"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
<param name="queue_size" type="int" value="30"/>
@@ -79,8 +79,8 @@
</group>
<node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbdslam_datasets.rviz"/>
<node if="$(arg rviz)" pkg="nodelet" type="nodelet" name="points_xyzrgb" args="standalone rtabmap_ros/point_cloud_xyzrgb">
<node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_examples)/launch/config/rgbdslam_datasets.rviz"/>
<node if="$(arg rviz)" pkg="nodelet" type="nodelet" name="points_xyzrgb" args="standalone rtabmap_util/point_cloud_xyzrgb">
<remap from="rgb/image" to="/camera/rgb/image_color"/>
<remap from="depth/image" to="/camera/depth/image"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
@@ -20,7 +20,7 @@
<group ns="rtabmap">
<!-- Visual Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="visual_odometry" output="screen" args="$(arg rtabmap_args)">
<node pkg="rtabmap_odom" type="rgbd_odometry" name="visual_odometry" output="screen" args="$(arg rtabmap_args)">
<remap from="rgb/image" to="$(arg rgb_topic)"/>
<remap from="depth/image" to="$(arg depth_topic)"/>
<remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
@@ -38,7 +38,7 @@
</node>
<!-- SLAM -->
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg rtabmap_args)">
<node name="rtabmap" pkg="rtabmap_slam" type="rtabmap" output="screen" args="$(arg rtabmap_args)">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<remap from="rgb/image" to="$(arg rgb_topic)"/>
@@ -143,4 +143,4 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9]</rosparam>
</node>
</launch>
</launch>
@@ -30,10 +30,10 @@
<node pkg="tf" type="static_transform_publisher" name="optical_rotation"
args="$(arg optical_rotate) /camera_rgb_frame /camera_rgb_optical_frame 100" />
<include file="$(find rtabmap_ros)/launch/tests/sensor_fusion.launch">
<include file="$(find rtabmap_examples)/launch/sensor_fusion.launch">
<arg name="frame_id" value="camera_rgb_frame"/>
<arg name="localization" value="$(arg localization)"/>
<arg name="imu_remove_gravitational_acceleration" value="false"/>
</include>
</launch>
</launch>
@@ -6,16 +6,16 @@
<!-- Change Optimizer/Strategy below between 1 (g2o) and 2 (GTSAM), and landmark_angular_variance between 0.005 (optimize rotation) and 9999 (optimize only tag's XYZ) -->
<!-- $ roslaunch realsense2_camera rs_camera.launch align_depth:=true -->
<!-- $ roslaunch rtabmap_ros test_apriltag_ros.launch rgb_topic:=/camera/color/image_raw camera_info_topic:=/camera/color/camera_info -->
<!-- $ roslaunch rtabmap_ros rtabmap.launch depth_topic:=/camera/aligned_depth_to_color/image_raw rgb_topic:=/camera/color/image_raw camera_info_topic:=/camera/color/camera_info rviz:=true rtabmapviz:=false args:="-d -Optimizer/Strategy 1" landmark_angular_variance:=9999 -->
<!-- $ roslaunch rtabmap_examples test_apriltag_ros.launch rgb_topic:=/camera/color/image_raw camera_info_topic:=/camera/color/camera_info -->
<!-- $ roslaunch rtabmap_launch rtabmap.launch depth_topic:=/camera/aligned_depth_to_color/image_raw rgb_topic:=/camera/color/image_raw camera_info_topic:=/camera/color/camera_info rviz:=true rtabmap_viz:=false args:="-d -Optimizer/Strategy 1" landmark_angular_variance:=9999 -->
<arg name="camera_frame_id" default="camera_color_optical_frame"/>
<arg name="rgb_topic" default="/camera/rgb/image_rect_color" />
<arg name="camera_info_topic" default="/camera/rgb/camera_info" />
<!-- Set parameters -->
<rosparam command="load" file="$(find rtabmap_ros)/launch/tests/tag_settings.yaml" ns="apriltag_ros_continuous_node" />
<rosparam command="load" file="$(find rtabmap_ros)/launch/tests/tags.yaml" ns="apriltag_ros_continuous_node" />
<rosparam command="load" file="$(find rtabmap_examples)/launch/config/tag_settings.yaml" ns="apriltag_ros_continuous_node" />
<rosparam command="load" file="$(find rtabmap_examples)/launch/config/tags.yaml" ns="apriltag_ros_continuous_node" />
<node pkg="apriltag_ros" type="apriltag_ros_continuous_node" name="apriltag_ros_continuous_node" clear_params="true" output="screen">
<remap from="image_rect" to="$(arg rgb_topic)" />
@@ -5,7 +5,7 @@
Make sure to disable the IR emitter or put a tape on the IR emitter to
avoid VINS tracking the fixed IR points (that would cause large drifts) -->
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="rviz" default="false"/>
<arg name="depth_mode" default="true"/>
<arg name="odom_strategy" default="9"/> <!-- default VINS -->
@@ -34,7 +34,7 @@
<!-- RTAB-Map: depth mode -->
<!-- We have to launch stereo_odometry externally from rtabmap.launch so that rtabmap can use RGB-D input -->
<group ns="rtabmap">
<node if="$(arg depth_mode)" pkg="rtabmap_ros" type="stereo_odometry" name="stereo_odometry" args="--Optimizer/GravitySigma 0.3 --Odom/Strategy $(arg odom_strategy) --OdomVINS/ConfigPath $(find vins)/../config/realsense_d435i/realsense_stereo_imu_config.yaml" output="screen">
<node if="$(arg depth_mode)" pkg="rtabmap_odom" type="stereo_odometry" name="stereo_odometry" args="--Optimizer/GravitySigma 0.3 --Odom/Strategy $(arg odom_strategy) --OdomVINS/ConfigPath $(find vins)/../config/realsense_d435i/realsense_stereo_imu_config.yaml" output="screen">
<remap from="left/image_rect" to="/camera/infra1/image_rect_raw"/>
<remap from="right/image_rect" to="/camera/infra2/image_rect_raw"/>
<remap from="left/camera_info" to="/camera/infra1/camera_info"/>
@@ -44,7 +44,7 @@
<param name="wait_imu_to_init" value="true"/>
</node>
</group>
<include if="$(arg depth_mode)" file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include if="$(arg depth_mode)" file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg name="rtabmap_args" value="--delete_db_on_start --Optimizer/GravitySigma 0.3"/>
<arg name="rgb_topic" value="/camera/color/image_raw"/>
<arg name="depth_topic" value="/camera/aligned_depth_to_color/image_raw"/>
@@ -53,12 +53,12 @@
<arg name="approx_sync" value="false"/>
<arg name="frame_id" value="camera_link"/>
<arg name="imu_topic" value="/rtabmap/imu"/>
<arg name="rtabmapviz" value="$(arg rtabmapviz)"/>
<arg name="rtabmap_viz" value="$(arg rtabmap_viz)"/>
<arg name="rviz" value="$(arg rviz)"/>
</include>
<!-- RTAB-Map: Stereo mode -->
<include unless="$(arg depth_mode)" file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include unless="$(arg depth_mode)" file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg name="rtabmap_args" value="--delete_db_on_start --Optimizer/GravitySigma 0.3 --Odom/Strategy $(arg odom_strategy) --OdomVINS/ConfigPath $(find vins)/../config/realsense_d435i/realsense_stereo_imu_config.yaml"/>
<arg name="left_image_topic" value="/camera/infra1/image_rect_raw"/>
<arg name="right_image_topic" value="/camera/infra2/image_rect_raw"/>
@@ -68,7 +68,7 @@
<arg name="frame_id" value="camera_link"/>
<arg name="imu_topic" value="/rtabmap/imu"/>
<arg name="wait_imu_to_init" value="true"/>
<arg name="rtabmapviz" value="$(arg rtabmapviz)"/>
<arg name="rtabmap_viz" value="$(arg rtabmap_viz)"/>
<arg name="rviz" value="$(arg rviz)"/>
</include>
@@ -14,7 +14,7 @@
</include>
<group ns="camera">
<node pkg="nodelet" type="nodelet" name="points_xyz" args="load rtabmap_ros/point_cloud_xyz camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="points_xyz" args="load rtabmap_util/point_cloud_xyz camera_nodelet_manager">
<remap from="depth/image" to="depth_registered/image_raw"/>
<remap from="depth/camera_info" to="depth_registered/camera_info"/>
<remap from="cloud" to="/voxel_cloud" />
@@ -26,7 +26,7 @@
</node>
<group if="$(arg nodelet)">
<node if="$(arg rgbd)" pkg="nodelet" type="nodelet" name="rgbdicp_odometry" args="load rtabmap_ros/rgbdicp_odometry camera_nodelet_manager">
<node if="$(arg rgbd)" pkg="nodelet" type="nodelet" name="rgbdicp_odometry" args="load rtabmap_odom/rgbdicp_odometry camera_nodelet_manager">
<remap from="scan_cloud" to="/voxel_cloud"/>
<remap from="depth/image" to="depth_registered/image_raw"/>
<remap from="rgb/camera_info" to="rgb/camera_info"/>
@@ -41,7 +41,7 @@
<param name="Icp/PM" type="string" value="$(arg pm)"/>
<param name="Icp/PMOutlierRatio" type="string" value="0.65"/>
</node>
<node unless="$(arg rgbd)" pkg="nodelet" type="nodelet" name="icp_odometry" args="load rtabmap_ros/icp_odometry camera_nodelet_manager" output="screen">
<node unless="$(arg rgbd)" pkg="nodelet" type="nodelet" name="icp_odometry" args="load rtabmap_odom/icp_odometry camera_nodelet_manager" output="screen">
<remap from="scan_cloud" to="/voxel_cloud"/>
<param name="frame_id" type="string" value="camera_link"/>
@@ -57,7 +57,7 @@
</group>
<group unless="$(arg nodelet)">
<node if="$(arg rgbd)" pkg="rtabmap_ros" type="rgbdicp_odometry" name="rgbdicp_odometry" output="screen">
<node if="$(arg rgbd)" pkg="rtabmap_odom" type="rgbdicp_odometry" name="rgbdicp_odometry" output="screen">
<remap from="scan_cloud" to="/voxel_cloud"/>
<remap from="depth/image" to="depth_registered/image_raw"/>
<remap from="rgb/camera_info" to="rgb/camera_info"/>
@@ -72,7 +72,7 @@
<param name="Icp/PM" type="string" value="$(arg pm)"/>
<param name="Icp/PMOutlierRatio" type="string" value="0.65"/>
</node>
<node unless="$(arg rgbd)" pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node unless="$(arg rgbd)" pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="/voxel_cloud"/>
<param name="frame_id" type="string" value="camera_link"/>
@@ -95,5 +95,5 @@
args="0 0 0 0 0 0 map odom 100" />
<!-- Visualization RVIZ -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_launch)/launch/config/rgbd.rviz"/>
</launch>
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<launch>
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<include file="$(find azure_kinect_ros_driver)/launch/driver.launch">
<arg name="point_cloud" value="false"/>
@@ -11,7 +11,7 @@
<group ns="rtabmap">
<node pkg="nodelet" type="nodelet" name="points_xyz" args="standalone rtabmap_ros/point_cloud_xyz" output="screen">
<node pkg="nodelet" type="nodelet" name="points_xyz" args="standalone rtabmap_util/point_cloud_xyz" output="screen">
<remap from="depth/image" to="/depth_to_rgb/image_raw"/>
<remap from="depth/camera_info" to="/depth_to_rgb/camera_info"/>
<remap from="cloud" to="voxel_cloud" />
@@ -23,7 +23,7 @@
<param name="approx_sync" type="bool" value="false"/>
</node>
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="voxel_cloud"/>
<param name="frame_id" type="string" value="camera_base"/>
@@ -37,7 +37,7 @@
<param name="OdomF2M/ScanMaxSize" type="string" value="5000"/>
</node>
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" output="screen" args="-d">
<param name="frame_id" type="string" value="camera_base"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgb" type="bool" value="false"/>
@@ -56,7 +56,7 @@
<param name="Icp/MaxTranslation" type="string" value="0.5"/>
</node>
<node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen">
<node if="$(arg rtabmap_viz)" name="rtabmap_viz" pkg="rtabmap_viz" type="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="camera_base"/>
<param name="subscribe_rgb" type="bool" value="false"/>
<param name="subscribe_depth" type="bool" value="false"/>
@@ -9,7 +9,7 @@
<arg name="rgb_topic" default="/camera/rgb/image_rect_color" />
<arg name="depth_topic" default="/camera/depth_registered/image_raw" />
<arg name="camera_info_topic" default="/camera/rgb/camera_info" />
<arg name="rtabmapviz" default="true" />
<arg name="rtabmap_viz" default="true" />
<arg name="rviz" default="false" />
<!-- Kinect -->
@@ -33,7 +33,7 @@
<node type="periodic_snapshotter" pkg="laser_assembler" name="periodic_snapshotter"/>
<!-- RTAB-Map -->
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg name="rtabmap_args" value="$(arg rtabmap_args)"/>
<arg name="queue_size" value="30" />
@@ -44,7 +44,7 @@
<arg name="subscribe_scan_cloud" value="true"/>
<arg name="scan_cloud_topic" value="/assembled_cloud2"/>
<arg name="rtabmapviz" value="$(arg rtabmapviz)"/>
<arg name="rtabmap_viz" value="$(arg rtabmap_viz)"/>
<arg name="rviz" value="$(arg rviz)"/>
</include>
@@ -7,9 +7,9 @@
-->
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="map_assembler" name="map_assembler">
<node pkg="rtabmap_util" type="map_assembler" name="map_assembler">
<remap from="mapData" to="mapData"/>
<param name="regenerate_local_grids" value="true"/>
</node>
</group>
</launch>
</launch>
@@ -1,25 +1,25 @@
<?xml version="1.0"?>
<launch>
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg name="rtabmap_args" value="
--delete_db_on_start
--RGBD/OptimizeMaxError 0
--Optimizer/Iterations 0
--RGBD/ProximityBySpace false"/>
<arg name="rtabmapviz" value="false"/>
<arg name="rtabmap_viz" value="false"/>
</include>
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="map_optimizer" name="map_optimizer"/>
<node pkg="rtabmap_util" type="map_optimizer" name="map_optimizer"/>
<node pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" output="screen">
<node pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" output="screen">
<remap from="mapData" to="mapData_optimized"/>
<param name="frame_id" value="camera_link"/>
<param name="subscribe_depth" value="false"/>
</node>
<node pkg="rtabmap_ros" type="map_assembler" name="map_assembler">
<node pkg="rtabmap_util" type="map_assembler" name="map_assembler">
<remap from="mapData" to="mapData_optimized"/>
</node>
</group>
</launch>
</launch>
@@ -2,11 +2,11 @@
<launch>
<!-- Use stereo_outdoorA.bag for testing -->
<include file="$(find rtabmap_ros)/launch/demo/demo_stereo_outdoor.launch"/>
<include file="$(find rtabmap_demos)/launch/demo_stereo_outdoor.launch"/>
<group ns="/stereo_camera" >
<node pkg="nodelet" type="nodelet" name="obstacles_manager" args="manager"/>
<node pkg="nodelet" type="nodelet" name="disparity2cloud" args="load rtabmap_ros/point_cloud_xyz obstacles_manager">
<node pkg="nodelet" type="nodelet" name="disparity2cloud" args="load rtabmap_util/point_cloud_xyz obstacles_manager">
<remap from="disparity/image" to="disparity"/>
<remap from="disparity/camera_info" to="right/camera_info_throttle"/>
<remap from="cloud" to="cloudXYZ"/>
@@ -16,7 +16,7 @@
<param name="max_depth" type="double" value="4"/>
</node>
<node pkg="nodelet" type="nodelet" name="obstacles_detection" args="load rtabmap_ros/obstacles_detection obstacles_manager">
<node pkg="nodelet" type="nodelet" name="obstacles_detection" args="load rtabmap_util/obstacles_detection obstacles_manager">
<remap from="cloud" to="cloudXYZ"/>
<param name="frame_id" type="string" value="base_footprint"/>
@@ -26,4 +26,4 @@
</node>
</group>
</launch>
</launch>
@@ -6,7 +6,7 @@
Hand-held 3D lidar mapping example using only a Ouster OS-1 (no camera).
Prerequisities: rtabmap should be built with libpointmatcher
Example:
$ roslaunch rtabmap_ros test_ouster.launch os1_hostname:=os1-XXXXXXXXXXXX.local os1_udp_dest:=192.168.1.XXX
$ roslaunch rtabmap_examples test_ouster.launch os1_hostname:=os1-XXXXXXXXXXXX.local os1_udp_dest:=192.168.1.XXX
$ rosrun rviz rviz -f map
$ Show TF and /rtabmap/cloud_map topics
ISSUE: You may have to reset odometry after receiving the first cloud if the map looks tilted. The problem seems
@@ -20,7 +20,7 @@
<arg unless="$(arg use_sim_time)" name="os1_udp_dest"/>
<arg name="frame_id" default="os1_sensor"/>
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="scan_20_hz" default="true"/>
<param if="$(arg use_sim_time)" name="use_sim_time" value="true"/>
@@ -42,14 +42,14 @@
<param name="world_frame" value="enu"/>
<param name="publish_tf" value="false"/>
</node>
<node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_ros/imu_to_tf imu_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_util/imu_to_tf imu_nodelet_manager">
<remap from="imu/data" to="/os1_cloud_node/imu/data"/>
<param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/>
<param name="base_frame_id" value="$(arg frame_id)"/>
</node>
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="/os1_cloud_node/points"/>
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
@@ -81,7 +81,7 @@
<param name="OdomF2M/ScanMaxSize" type="string" value="15000"/>
</node>
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" output="screen" args="-d">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgb" type="bool" value="false"/>
@@ -126,7 +126,7 @@
<param name="Icp/CorrespondenceRatio" type="string" value="0.4"/>
</node>
<node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen">
<node if="$(arg rtabmap_viz)" name="rtabmap_viz" pkg="rtabmap_viz" type="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -8,7 +8,7 @@
Example:
$ roslaunch rtabmap_ros test_ouster_gen2.launch sensor_hostname:=os-XXXXXXXXXXXX.local udp_dest:=192.168.1.XXX
$ roslaunch rtabmap_examples test_ouster_gen2.launch sensor_hostname:=os-XXXXXXXXXXXX.local udp_dest:=192.168.1.XXX
$ rosrun rviz rviz -f map
RVIZ: Show TF and /rtabmap/cloud_map topics
@@ -29,7 +29,7 @@
$ http PUT http://os-XXXXXXXXXXXX.local/api/v1/time/ptp/profile <<< '"default-relaxed"'
$ sudo ptp4l -i eth0 -m -f ~/os.conf -S
$ roslaunch rtabmap_ros test_ouster_gen2.launch sensor_hostname:=os-XXXXXXXXXXXX.local udp_dest:=192.168.1.XXX ptp:=true
$ roslaunch rtabmap_examples test_ouster_gen2.launch sensor_hostname:=os-XXXXXXXXXXXX.local udp_dest:=192.168.1.XXX ptp:=true
-->
@@ -40,7 +40,7 @@
<arg unless="$(arg use_sim_time)" name="udp_dest"/>
<arg name="frame_id" default="os_sensor"/>
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="deskewing" default="true"/>
<arg name="slerp" default="false"/>
<arg name="scan_20_hz" default="true"/>
@@ -72,14 +72,14 @@
<param name="world_frame" value="enu"/>
<param name="publish_tf" value="false"/>
</node>
<node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_ros/imu_to_tf imu_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_util/imu_to_tf imu_nodelet_manager">
<remap from="imu/data" to="$(arg imu_topic)/filtered"/>
<param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/>
<param name="base_frame_id" value="$(arg frame_id)"/>
</node>
<!-- Lidar Deskewing -->
<node if="$(arg deskewing)" pkg="nodelet" type="nodelet" name="lidar_deskewing" args="standalone rtabmap_ros/lidar_deskewing" output="screen">
<node if="$(arg deskewing)" pkg="nodelet" type="nodelet" name="lidar_deskewing" args="standalone rtabmap_util/lidar_deskewing" output="screen">
<param name="wait_for_transform" value="0.01"/>
<param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/>
<param name="slerp" value="$(arg slerp)"/>
@@ -90,7 +90,7 @@
<arg unless="$(arg deskewing)" name="scan_topic_deskewed" default="$(arg scan_topic)"/>
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="$(arg scan_topic_deskewed)"/>
<remap from="imu" to="$(arg imu_topic)/filtered"/>
<param name="frame_id" type="string" value="$(arg frame_id)"/>
@@ -122,7 +122,7 @@
<param name="OdomF2M/ScanMaxSize" type="string" value="15000"/>
</node>
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" output="screen" args="-d">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgb" type="bool" value="false"/>
@@ -171,14 +171,14 @@
<param name="Icp/CorrespondenceRatio" type="string" value="0.2"/>
</node>
<node if="$(arg assemble)" pkg="rtabmap_ros" type="point_cloud_assembler" name="point_cloud_assembler" output="screen">
<node if="$(arg assemble)" pkg="rtabmap_util" type="point_cloud_assembler" name="point_cloud_assembler" output="screen">
<remap from="cloud" to="$(arg scan_topic_deskewed)"/>
<remap from="odom" to="odom"/>
<param name="assembling_time" type="double" value="1" />
<param name="fixed_frame_id" type="string" value="" />
</node>
<node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen">
<node if="$(arg rtabmap_viz)" name="rtabmap_viz" pkg="rtabmap_viz" type="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -8,7 +8,7 @@
</include>
<group ns="camera">
<node pkg="nodelet" type="nodelet" name="data_throttle" args="load rtabmap_ros/data_throttle camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="data_throttle" args="load rtabmap_legacy/data_throttle camera_nodelet_manager">
<remap from="rgb/image_in" to="rgb/image_rect_color"/>
<remap from="depth/image_in" to="depth_registered/image_raw"/>
<remap from="rgb/camera_info_in" to="depth_registered/camera_info"/>
@@ -16,7 +16,7 @@
<param name="decimation" type="int" value="2"/>
</node>
<node pkg="nodelet" type="nodelet" name="points_xyzrgb" args="load rtabmap_ros/point_cloud_xyzrgb camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="points_xyzrgb" args="load rtabmap_util/point_cloud_xyzrgb camera_nodelet_manager">
<remap from="rgb/image" to="rgb/image_out"/>
<remap from="depth/image" to="depth/image_out"/>
<remap from="rgb/camera_info" to="rgb/camera_info_out"/>
@@ -28,7 +28,7 @@
<param name="normal_k" type="int" value="6"/>
</node>
<node pkg="nodelet" type="nodelet" name="points_xyz" args="load rtabmap_ros/point_cloud_xyz camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="points_xyz" args="load rtabmap_util/point_cloud_xyz camera_nodelet_manager">
<remap from="depth/image" to="depth/image_out"/>
<remap from="depth/camera_info" to="rgb/camera_info_out"/>
<remap from="cloud" to="/voxel_cloud_xyz" />
@@ -58,7 +58,7 @@
</group>
<node pkg="nodelet" type="nodelet" name="standalone_nodelet" args="manager" output="screen"/>
<node pkg="nodelet" type="nodelet" name="stereo_throttle" args="load rtabmap_ros/stereo_throttle standalone_nodelet">
<node pkg="nodelet" type="nodelet" name="stereo_throttle" args="load rtabmap_legacy/stereo_throttle standalone_nodelet">
<remap from="left/image" to="/stereo_camera/left/image_rect_color"/>
<remap from="right/image" to="/stereo_camera/right/image_rect"/>
<remap from="left/camera_info" to="/stereo_camera/left/camera_info_throttle"/>
@@ -68,7 +68,7 @@
<param name="approx_sync" type="bool" value="false"/>
</node>
<node pkg="nodelet" type="nodelet" name="points_xyzrgb" args="load rtabmap_ros/point_cloud_xyzrgb standalone_nodelet">
<node pkg="nodelet" type="nodelet" name="points_xyzrgb" args="load rtabmap_util/point_cloud_xyzrgb standalone_nodelet">
<remap from="left/image" to="/stereo_camera/left/image_rect_color_throttle"/>
<remap from="right/image" to="/stereo_camera/right/image_rect_throttle"/>
<remap from="left/camera_info" to="/stereo_camera/left/camera_info_throttle_throttle"/>
@@ -15,7 +15,7 @@
Rename all child_frame_id "/kinect" to "/kinect_gt" Tf in the bag
using test_prior_rename_kinect_bag_tf.py in this directory!
$ roslaunch rtabmap_ros test_prior.launch
$ roslaunch rtabmap_examples test_prior.launch
$ chmod +x test_prior_tf_to_pose.py
$ ./test_prior_tf_to_pose.py
$ rosbag play -.-clock rgbd_dataset_freiburg3_long_office_household_tf_renamed.bag
@@ -25,7 +25,7 @@
<!-- Choose visualization -->
<arg name="rviz" default="true" />
<arg name="rtabmapviz" default="false" />
<arg name="rtabmap_viz" default="false" />
<!-- TF FRAMES -->
<node pkg="tf" type="static_transform_publisher" name="world_to_map"
@@ -34,7 +34,7 @@
<group ns="rtabmap">
<!-- Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<node pkg="rtabmap_odom" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<remap from="rgb/image" to="/camera/rgb/image_color"/>
<remap from="depth/image" to="/camera/depth/image"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
@@ -45,7 +45,7 @@
</node>
<!-- Visual SLAM -->
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
<node name="rtabmap" pkg="rtabmap_slam" type="rtabmap" output="screen" args="--delete_db_on_start">
<param name="subscribe_depth" type="bool" value="true"/>
<param name="frame_id" type="string" value="kinect"/>
@@ -63,7 +63,7 @@
</node>
<!-- Visualisation -->
<node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(find rtabmap_ros)/launch/config/rgbd_gui.ini" output="screen">
<node if="$(arg rtabmap_viz)" pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" args="-d $(find rtabmap_examples)/launch/config/rgbd_gui.ini" output="screen">
<param name="subscribe_depth" type="bool" value="true"/>
<param name="subscribe_laserScan" type="bool" value="false"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -79,6 +79,6 @@
</group>
<node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbdslam_datasets.rviz"/>
<node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_examples)/launch/config/rgbdslam_datasets.rviz"/>
</launch>
@@ -11,7 +11,7 @@
<arg name="compressed_rate" default="0"/>
<group ns="camera">
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager" output="screen">
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_sync/rgbd_sync camera_nodelet_manager" output="screen">
<remap from="rgb/image" to="rgb/image_rect_color"/>
<remap from="depth/image" to="depth_registered/image_raw"/>
<remap from="rgb/camera_info" to="rgb/camera_info"/>
@@ -23,7 +23,7 @@
<group ns="rtabmap">
<!-- RGB-D Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<node pkg="rtabmap_odom" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<param name="subscribe_rgbd" type="bool" value="true"/>
<remap if="$(arg compressed)" from="rgbd_image" to="/camera/rgbd_image/compressed"/>
<remap unless="$(arg compressed)" from="rgbd_image" to="/camera/rgbd_image"/>
@@ -32,7 +32,7 @@
<param name="frame_id" type="string" value="camera_link"/>
</node>
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
<node name="rtabmap" pkg="rtabmap_slam" type="rtabmap" output="screen" args="--delete_db_on_start">
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
<param name="frame_id" type="string" value="camera_link"/>
@@ -41,7 +41,7 @@
<remap unless="$(arg compressed)" from="rgbd_image" to="/camera/rgbd_image"/>
</node>
<node pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" output="screen">
<node pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" output="screen">
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
<param name="frame_id" type="string" value="camera_link"/>
@@ -19,21 +19,21 @@
<group ns="camera">
<!-- Use RGBD synchronization -->
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_sync/rgbd_sync camera_nodelet_manager">
<remap from="rgb/image" to="$(arg rgb_topic)"/>
<remap from="depth/image" to="$(arg depth_topic)"/>
<remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
</node>
<!-- RGB-D Odometry -->
<node pkg="nodelet" type="nodelet" name="rgbd_odometry" args="load rtabmap_ros/rgbd_odometry camera_nodelet_manager $(arg odom_args)">
<node pkg="nodelet" type="nodelet" name="rgbd_odometry" args="load rtabmap_odom/rgbd_odometry camera_nodelet_manager $(arg odom_args)">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
</node>
<!-- RTAB-Map -->
<node pkg="nodelet" type="nodelet" name="rtabmap" args="load rtabmap_ros/rtabmap camera_nodelet_manager $(arg rtabmap_args)">
<node pkg="nodelet" type="nodelet" name="rtabmap" args="load rtabmap_slam/rtabmap camera_nodelet_manager $(arg rtabmap_args)">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
@@ -41,7 +41,7 @@
</node>
<!-- Visualisation -->
<node pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" output="screen">
<node pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -7,7 +7,7 @@
already created with one of the Kinect using mapping tutorial:
http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping
$ roslaunch freenect_launch freenect.launch depth_registration:=true
$ roslaunch rtabmap_ros rtabmap.launch args:="-d"
$ roslaunch rtabmap_launch rtabmap.launch args:="-d"
-->
@@ -24,7 +24,7 @@
<arg name="device_id" value="#2" />
</include>
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg name="namespace" value="rtabmap1"/>
<arg name="localization" value="true" />
<arg name="frame_id" value="camera1_link" />
@@ -34,10 +34,10 @@
<arg name="depth_topic" value="/camera1/depth_registered/image_raw" />
<arg name="camera_info_topic" value="/camera1/rgb/camera_info" />
<arg name="rtabmapviz" value="false"/>
<arg name="rtabmap_viz" value="false"/>
</include>
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<include file="$(find rtabmap_launch)/launch/rtabmap.launch">
<arg name="namespace" value="rtabmap2"/>
<arg name="localization" value="true" />
<arg name="frame_id" value="camera2_link" />
@@ -47,10 +47,10 @@
<arg name="depth_topic" value="/camera2/depth_registered/image_raw" />
<arg name="camera_info_topic" value="/camera2/rgb/camera_info" />
<arg name="rtabmapviz" value="false"/>
<arg name="rtabmap_viz" value="false"/>
</include>
<!-- Visualization RVIZ -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_ros)/launch/config/rgbd.rviz"/>
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find rtabmap_launch)/launch/config/rgbd.rviz"/>
</launch>
@@ -8,11 +8,11 @@
</include>
<arg name="depth" default="/camera/depth_registered/image_raw" />
<arg name="model" default="$(find rtabmap_ros)/launch/calibration/distortion_model_PS1080.bin" /> <!-- XTION Live Pro -->
<arg name="model" default="$(find rtabmap_examples)/launch/config/distortion_model_PS1080.bin" /> <!-- XTION Live Pro -->
<group ns="camera">
<!-- Undistort depth image -->
<node pkg="nodelet" type="nodelet" name="undistort" args="load rtabmap_ros/undistort_depth camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="undistort" args="load rtabmap_legacy/undistort_depth camera_nodelet_manager">
<remap from="depth" to="$(arg depth)"/>
<param name="model" value="$(arg model)"/>
</node>
@@ -19,14 +19,14 @@
<group ns="camera">
<!-- Use RGBD synchronization -->
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_ros/rgbd_sync camera_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="load rtabmap_sync/rgbd_sync camera_nodelet_manager">
<remap from="rgb/image" to="$(arg rgb_topic)"/>
<remap from="depth/image" to="$(arg depth_topic)"/>
<remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
</node>
<!-- RGB-D Odometry -->
<node pkg="nodelet" type="nodelet" name="rgbd_odometry" args="load rtabmap_ros/rgbd_odometry camera_nodelet_manager $(arg odom_args)">
<node pkg="nodelet" type="nodelet" name="rgbd_odometry" args="load rtabmap_odom/rgbd_odometry camera_nodelet_manager $(arg odom_args)">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
@@ -34,7 +34,7 @@
</node>
<!-- RTAB-Map -->
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" args="$(arg rtabmap_args)" output="screen">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" args="$(arg rtabmap_args)" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
<param name="approx_sync" type="bool" value="false"/>
@@ -42,7 +42,7 @@
</node>
<!-- Visualisation -->
<node pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" output="screen">
<node pkg="rtabmap_viz" type="rtabmap_viz" name="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_rgbd" type="bool" value="true"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -6,12 +6,12 @@
Hand-held 3D lidar mapping example using only a Velodyne PUCK (no camera).
Prerequisities: rtabmap should be built with libpointmatcher
Example:
$ roslaunch rtabmap_ros test_velodyne.launch
$ roslaunch rtabmap_examples test_velodyne.launch
$ rosrun rviz rviz -f map
$ Show TF and /rtabmap/cloud_map topics
-->
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="use_imu" default="false"/> <!-- Assuming IMU fixed to lidar with /velodyne -> /imu_link TF -->
<arg name="imu_topic" default="/imu/data"/>
<arg name="scan_20_hz" default="false"/> <!-- If we launch the velodyne with "rpm:=1200" argument -->
@@ -59,14 +59,14 @@
<param name="world_frame" value="enu"/>
<param name="publish_tf" value="false"/>
</node>
<node if="$(arg use_imu)" pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_ros/imu_to_tf imu_nodelet_manager">
<node if="$(arg use_imu)" pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_util/imu_to_tf imu_nodelet_manager">
<remap from="imu/data" to="$(arg imu_topic)/filtered"/>
<param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/>
<param name="base_frame_id" value="$(arg frame_id)"/>
</node>
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="$(arg scan_topic)"/>
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
@@ -111,7 +111,7 @@
<param if="$(arg deskewing)" name="OdomLOAM/ScanPeriod" type="string" value="0"/>
</node>
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" output="screen" args="-d">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgb" type="bool" value="false"/>
@@ -155,7 +155,7 @@
<param name="Icp/CorrespondenceRatio" type="string" value="$(arg loop_ratio)"/>
</node>
<node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen">
<node if="$(arg rtabmap_viz)" name="rtabmap_viz" pkg="rtabmap_viz" type="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -165,7 +165,7 @@
<remap from="odom_info" to="odom_info"/>
</node>
<node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_ros/point_cloud_assembler" output="screen">
<node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_util/point_cloud_assembler" output="screen">
<remap if="$(arg deskewing)" from="cloud" to="odom_filtered_input_scan"/>
<remap unless="$(arg deskewing)" from="cloud" to="$(arg scan_topic)"/>
<remap from="odom" to="odom"/>
@@ -7,12 +7,12 @@
Prerequisities: rtabmap should be built with libpointmatcher
We use D435i imu only for lidar deskewing and icp_odometry guess in this example.
Example:
$ roslaunch rtabmap_ros test_velodyne_d435i_deskewing.launch
$ roslaunch rtabmap_examples test_velodyne_d435i_deskewing.launch
$ rosrun rviz rviz -f map
$ Show TF and /rtabmap/cloud_map topics
-->
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="scan_20_hz" default="false"/> <!-- If we launch the velodyne with "rpm:=1200" argument -->
<arg name="deskewing" default="true"/>
<arg name="slerp" default="false"/> <!-- If true, a slerp between the first and last time will be used to deskew each point, which is faster than using tf for every point but less accurate -->
@@ -71,14 +71,14 @@
<param name="world_frame" value="enu"/>
<param name="publish_tf" value="false"/>
</node>
<node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_ros/imu_to_tf imu_nodelet_manager">
<node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_util/imu_to_tf imu_nodelet_manager">
<remap from="imu/data" to="$(arg imu_topic)/filtered"/>
<param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/>
<param name="base_frame_id" value="$(arg frame_id)"/>
</node>
<!-- Lidar Deskewing -->
<node if="$(arg deskewing)" pkg="nodelet" type="nodelet" name="lidar_deskewing" args="standalone rtabmap_ros/lidar_deskewing" output="screen">
<node if="$(arg deskewing)" pkg="nodelet" type="nodelet" name="lidar_deskewing" args="standalone rtabmap_util/lidar_deskewing" output="screen">
<param name="wait_for_transform" value="0.01"/>
<param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/>
<param name="slerp" value="$(arg slerp)"/>
@@ -89,7 +89,7 @@
<arg unless="$(arg deskewing)" name="scan_topic_deskewed" default="$(arg scan_topic)"/>
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="$(arg scan_topic_deskewed)"/>
<remap from="imu" to="$(arg imu_topic)/filtered"/>
<param name="guess_frame_id" type="string" value="$(arg frame_id)_stabilized"/>
@@ -131,7 +131,7 @@
<param if="$(arg deskewing)" name="OdomLOAM/ScanPeriod" type="string" value="0"/>
</node>
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" output="screen" args="-d">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgb" type="bool" value="true"/>
@@ -177,7 +177,7 @@
<param name="Icp/CorrespondenceRatio" type="string" value="$(arg loop_ratio)"/>
</node>
<node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen">
<node if="$(arg rtabmap_viz)" name="rtabmap_viz" pkg="rtabmap_viz" type="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -187,7 +187,7 @@
<remap from="odom_info" to="odom_info"/>
</node>
<node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_ros/point_cloud_assembler" output="screen">
<node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_util/point_cloud_assembler" output="screen">
<remap from="cloud" to="$(arg scan_topic_deskewed)"/>
<remap from="odom" to="odom"/>
<param if="$(arg scan_20_hz)" name="max_clouds" type="int" value="20" />
@@ -12,7 +12,7 @@
$ Show TF and /rtabmap/cloud_map topics
-->
<arg name="rtabmapviz" default="true"/>
<arg name="rtabmap_viz" default="true"/>
<arg name="scan_20_hz" default="false"/> <!-- If we launch the velodyne with "rpm:=1200" argument -->
<arg name="deskewing" default="true"/>
<arg name="slerp" default="false"/> <!-- If true, a slerp between the first and last time will be used to deskew each point, which is faster than using tf for every point but less accurate -->
@@ -68,7 +68,7 @@
</group>
<!-- Lidar Deskewing -->
<node if="$(arg deskewing)" pkg="nodelet" type="nodelet" name="lidar_deskewing" args="standalone rtabmap_ros/lidar_deskewing" output="screen">
<node if="$(arg deskewing)" pkg="nodelet" type="nodelet" name="lidar_deskewing" args="standalone rtabmap_util/lidar_deskewing" output="screen">
<param name="wait_for_transform" value="0.01"/>
<param name="fixed_frame_id" value="$(arg odom_frame_id)"/>
<param name="slerp" value="$(arg slerp)"/>
@@ -79,7 +79,7 @@
<arg unless="$(arg deskewing)" name="scan_topic_deskewed" default="$(arg scan_topic)"/>
<group ns="rtabmap">
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen">
<node pkg="rtabmap_odom" type="icp_odometry" name="icp_odometry" output="screen">
<remap from="scan_cloud" to="$(arg scan_topic_deskewed)"/>
<param name="guess_frame_id" type="string" value="$(arg odom_frame_id)"/>
<param name="frame_id" type="string" value="$(arg frame_id)"/>
@@ -119,7 +119,7 @@
<param if="$(arg deskewing)" name="OdomLOAM/ScanPeriod" type="string" value="0"/>
</node>
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d">
<node pkg="rtabmap_slam" type="rtabmap" name="rtabmap" output="screen" args="-d">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="subscribe_depth" type="bool" value="false"/>
<param name="subscribe_rgb" type="bool" value="false"/>
@@ -162,7 +162,7 @@
<param name="Icp/CorrespondenceRatio" type="string" value="$(arg loop_ratio)"/>
</node>
<node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen">
<node if="$(arg rtabmap_viz)" name="rtabmap_viz" pkg="rtabmap_viz" type="rtabmap_viz" output="screen">
<param name="frame_id" type="string" value="$(arg frame_id)"/>
<param name="odom_frame_id" type="string" value="odom"/>
<param name="subscribe_odom_info" type="bool" value="true"/>
@@ -172,7 +172,7 @@
<remap from="odom_info" to="odom_info"/>
</node>
<node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_ros/point_cloud_assembler" output="screen">
<node pkg="nodelet" type="nodelet" name="point_cloud_assembler" args="standalone rtabmap_util/point_cloud_assembler" output="screen">
<remap from="cloud" to="$(arg scan_topic_deskewed)"/>
<remap from="odom" to="odom"/>
<param if="$(arg scan_20_hz)" name="max_clouds" type="int" value="20" />
+6
View File
@@ -11,10 +11,16 @@
<buildtool_depend>catkin</buildtool_depend>
<depend>roscpp</depend>
<depend>rtabmap_conversions</depend>
<exec_depend>rtabmap_costmap_plugins</exec_depend>
<exec_depend>rtabmap_msgs</exec_depend>
<exec_depend>rtabmap_ros</exec_depend>
<exec_depend>rtabmap_rviz_plugins</exec_depend>
<exec_depend>rtabmap_viz</exec_depend>
<exec_depend>rtabmap_demos</exec_depend>
<exec_depend>robot_localization</exec_depend>
</package>
@@ -31,7 +31,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <rtabmap_msgs/MapData.h>
#include <rtabmap_msgs/Info.h>
#include <rtabmap_ros/MsgConversion.h>
#include <rtabmap_conversions/MsgConversion.h>
#include <rtabmap_msgs/AddLink.h>
#include <rtabmap_msgs/GetMap.h>
@@ -48,11 +48,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/*
* Test:
* $ roslaunch rtabmap_ros demo_robot_mapping.launch
* $ roslaunch rtabmap_demos demo_robot_mapping.launch
* Disable internal loop closure detection, in rtabmapviz->Preferences:
* ->Vocabulary, set Max words to -1 (loop closure detection disabled)
* ->Proximity Detection, uncheck proximity detection by space
* $ rosrun rtabmap_ros external_loop_detection_example
* $ rosrun rtabmap_examples external_loop_detection_example
* $ rosbag play --clock demo_mapping.bag
*/
@@ -76,7 +76,7 @@ void mapDataCallback(const rtabmap_msgs::MapDataConstPtr & mapDataMsg, const rta
ROS_INFO("Received map data!");
rtabmap::Statistics stats;
rtabmap_ros::infoFromROS(*infoMsg, stats);
rtabmap_conversions::infoFromROS(*infoMsg, stats);
bool smallMovement = (bool)uValue(stats.data(), rtabmap::Statistics::kMemorySmall_movement(), 0.0f);
bool fastMovement = (bool)uValue(stats.data(), rtabmap::Statistics::kMemoryFast_movement(), 0.0f);
@@ -91,7 +91,7 @@ void mapDataCallback(const rtabmap_msgs::MapDataConstPtr & mapDataMsg, const rta
std::map<int, rtabmap::Transform> poses;
std::multimap<int, rtabmap::Link> links;
std::map<int, rtabmap::Signature> signatures;
rtabmap_ros::mapDataFromROS(*mapDataMsg, poses, links, signatures, mapToOdom);
rtabmap_conversions::mapDataFromROS(*mapDataMsg, poses, links, signatures, mapToOdom);
if(!signatures.empty() &&
signatures.rbegin()->second.sensorData().isValid() &&
@@ -125,7 +125,7 @@ void mapDataCallback(const rtabmap_msgs::MapDataConstPtr & mapDataMsg, const rta
{
rtabmap::Link link(fromId, toId, rtabmap::Link::kUserClosure, t, regInfo.covariance.inv());
rtabmap_msgs::AddLinkRequest req;
rtabmap_ros::linkToROS(link, req.link);
rtabmap_conversions::linkToROS(link, req.link);
rtabmap_msgs::AddLinkResponse res;
if(!addLinkSrv.call(req, res))
{
@@ -197,11 +197,11 @@ int main(int argc, char** argv)
std::map<int, rtabmap::Transform> poses;
std::multimap<int, rtabmap::Link> links;
rtabmap::Transform mapToOdom;
rtabmap_ros::mapGraphFromROS(mapRes.data.graph, poses, links, mapToOdom);
rtabmap_conversions::mapGraphFromROS(mapRes.data.graph, poses, links, mapToOdom);
int addedNodes = 0;
for(size_t i=0; i<mapRes.data.nodes.size(); ++i)
{
rtabmap::Signature s = rtabmap_ros::nodeDataFromROS(mapRes.data.nodes.at(i));
rtabmap::Signature s = rtabmap_conversions::nodeDataFromROS(mapRes.data.nodes.at(i));
rtabmap::SensorData compressedData = s.sensorData();
s.sensorData().uncompressData();
if(loopClosureDetector.process(s.sensorData(), rtabmap::Transform()))
+1
View File
@@ -67,3 +67,4 @@ install(FILES
nodelet_plugins.xml
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
+5
View File
@@ -13,7 +13,12 @@
<depend>dynamic_reconfigure</depend>
<depend>image_transport</depend>
<depend>nodelet</depend>
<depend>rtabmap_conversions</depend>
<depend>rtabmap_msgs</depend>
<export>
<nodelet plugin="${prefix}/nodelet_plugins.xml" />
</export>
</package>