Posted by
jakb_2403 on
URL: http://official-rtab-map-forum.206.s1.nabble.com/3D-mapping-with-Turtlebot3-Burger-and-Intel-Realsense-D435-Camera-tp8378.html
Hello, I am trying to use turtlebot3 burger and a single Intel Realsense D435 to map an environment in RTAB-map. Here are the details of my system: Ubuntu 20.04 LTS, ROS Noetic.
I am using gazebo to simulate the described robot, here's what it looks like:
I have launched the mapping process in RTAB-map with the following commands:
roslaunch turtlebot3_description turtlebot3_burger_d435_gazebo_only.launch
This launch file (which you can view
here) launches the robot shown in the image above in a `turtlebot3_house` environment. As I move the robot around using `teleop`, I can monitor the `/camera/depth/image_raw` and the `/camera/color/image_raw` using `rviz` and everything works well - the depth image is accurate and refreshes once every second or so.
I then launch RTAB-map using:
roslaunch rtabmap_ros rtabmap.launch \
args:="-d \
--RGBD/NeighborLinkRefining true \
--Reg/Force3DoF true \
--Reg/Strategy 1 \
--Mem/LaserScanVoxelSize 0.05 \
--Icp/MaxCorrespondenceDistance 0.1 \
--Mem/ImagePreDecimation 2 \
--Mem/ImagePostDecimation 2" \
visual_odometry:=false \
odom_frame_id:=odom \
subscribe_scan:=false \
rgbd_sync:=true \
approx_rgbd_sync:=false \
rgb_topic:=/camera/color/image_raw \
camera_info_topic:=/camera/color/camera_info \
depth_topic:=/camera/depth/image_raw \
depth_camera_info_topic:=/camera/depth/camera_info \
frame_id:=base_footprint
and I get the
following result. I have taken a screen recording and it is sped up to 7x speed.
As you can see the mapping only takes readings of the environment at seemingly random intervals.
This is the RQT graph for that configuration:
I tested this process with an
unmodified Turtlebot3 Waffle using these commands:
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_house.launch
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
roslaunch turtlebot3_bringup turtlebot3_remote.launch model:=waffle
roslaunch rtabmap_ros rtabmap.launch \
args:="-d \
--RGBD/NeighborLinkRefining true \
--Reg/Force3DoF true \
--Reg/Strategy 1 \
--Mem/LaserScanVoxelSize 0.05 \
--Icp/MaxCorrespondenceDistance 0.1 \
--Mem/ImagePreDecimation 3 \
--Mem/ImagePostDecimation 2" \
visual_odometry:=false \
odom_frame_id:=odom \
subscribe_scan:=true \
scan_topic:="/scan" \
rgbd_sync:=true \
approx_rgbd_sync:=false \
rgb_topic:=/camera/rgb/image_raw \
camera_info_topic:=/camera/rgb/camera_info \
depth_topic:=/camera/depth/image_raw \
frame_id:=base_footprint
and it gave me
this result. (In this example the Waffle is using an Intel R200 camera only by setting `subscribe_scan:=false`) Here is the RQT graph for the Turtlebot3 waffle (active nodes only).
In that second video, the robot takes readings of the environment at regular intervals and the map is far more populated.
Here is the RQT graph for that configuration:
Could someone please help me understand why my mapping process isn't taking more readings of the environment? Thank you!