odom: fixed large delay, fixed map Tf frame published with wrong stamp.

This commit is contained in:
matlabbe
2022-10-01 11:22:26 -07:00
parent c0259f31a2
commit 4fb73b4279
28 changed files with 298 additions and 298 deletions
+22 -20
View File
@@ -6,9 +6,9 @@ RTAB-Map's ROS2 package (branch `ros2`). **ROS2 Foxy minimum required**: current
`rtabmap.launch` is also ported to ROS2 with same arguments. If you see [ROS1 examples](http://wiki.ros.org/rtabmap_ros/Tutorials/HandHeldMapping) like this:
```bash
$ roslaunch zed_wrapper zed_no_tf.launch
roslaunch zed_wrapper zed_no_tf.launch
$ roslaunch rtabmap_ros rtabmap.launch \
roslaunch rtabmap_ros rtabmap.launch \
rtabmap_args:="--delete_db_on_start" \
rgb_topic:=/zed/zed_node/rgb/image_rect_color \
depth_topic:=/zed/zed_node/depth/depth_registered \
@@ -22,9 +22,9 @@ $ roslaunch rtabmap_ros rtabmap.launch \
The ROS2 equivalent is (with those [lines](https://github.com/stereolabs/zed-ros2-wrapper/blob/b512dce6ad4565f4770273995b147122e735ca0f/zed_wrapper/config/common.yaml#L58-L60) set to false to avoid TF conflicts):
```bash
$ ros2 launch zed_wrapper zed.launch.py
ros2 launch zed_wrapper zed.launch.py
$ ros2 launch rtabmap_ros rtabmap.launch.py \
ros2 launch rtabmap_ros rtabmap.launch.py \
rtabmap_args:="--delete_db_on_start" \
rgb_topic:=/zed/zed_node/rgb/image_rect_color \
depth_topic:=/zed/zed_node/depth/depth_registered \
@@ -33,7 +33,8 @@ $ ros2 launch rtabmap_ros rtabmap.launch.py \
approx_sync:=false \
wait_imu_to_init:=true \
imu_topic:=/zed/zed_node/imu/data \
qos:=1
qos:=1 \
rviz:=true
```
`qos` (Quality of Service) argument should match the published topics QoS (1=RELIABLE, 2=BEST EFFORT). ROS1 was always RELIABLE.
@@ -41,35 +42,35 @@ $ ros2 launch rtabmap_ros rtabmap.launch.py \
* RTAB-Map ROS2 package:
```bash
$ cd ~/ros2_ws
$ git clone https://github.com/introlab/rtabmap.git src/rtabmap
$ git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
$ export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB)
$ colcon build --symlink-install
cd ~/ros2_ws
git clone https://github.com/introlab/rtabmap.git src/rtabmap
git clone --branch ros2 https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
export MAKEFLAGS="-j6" # Can be ignored if you have a lot of RAM (>16GB)
colcon build --symlink-install
```
* To build with `rgbd_cameras>1` support and/or `subscribe_user_data` support:
```bash
$ colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON
colcon build --symlink-install --cmake-args -DRTABMAP_SYNC_MULTI_RGBD=ON -DRTABMAP_SYNC_USER_DATA=ON
```
# Example with Turtlebot3
1. Launch Turtlebot3 simulator:
```bash
$ export TURTLEBOT3_MODEL=waffle
$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
$ export TURTLEBOT3_MODEL=waffle
$ ros2 run turtlebot3_teleop teleop_keyboard
export TURTLEBOT3_MODEL=waffle
ros2 run turtlebot3_teleop teleop_keyboard
```
2. Launch RTAB-Map:
```
$ ros2 launch rtabmap_ros turtlebot3_scan.launch.py
ros2 launch rtabmap_ros turtlebot3_scan.launch.py
# OR with rtabmap.launch.py
$ ros2 launch rtabmap_ros rtabmap.launch.py \
ros2 launch rtabmap_ros rtabmap.launch.py \
visual_odometry:=false \
frame_id:=base_footprint \
subscribe_scan:=true depth:=false \
@@ -78,13 +79,14 @@ $ ros2 launch rtabmap_ros rtabmap.launch.py \
scan_topic:=/scan \
qos:=2 \
args:="-d --RGBD/NeighborLinkRefining true --Reg/Strategy 1" \
use_sim_time:=true
use_sim_time:=true \
rviz:=true
```
3. Launch navigation (`nav2_bringup` package should be installed):
```
$ ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True
$ ros2 launch nav2_bringup rviz_launch.py
ros2 launch nav2_bringup navigation_launch.py use_sim_time:=True
ros2 launch nav2_bringup rviz_launch.py
```
See [launch/ros2](https://github.com/introlab/rtabmap_ros/tree/ros2/launch/ros2) subfolder for some other ROS2 examples with turtlebot3 in simulation and a RGB-D camera.