Posted by
KasaIvas on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Using-RTAB-with-Manipulator-tp11147p11162.html
Hi,
"base_link" is a fixed base and the transformation "world"->"base_link" is an identity, there is no movement between the two. So far I have been using "Fake Odometry" by setting the frame_id and odom_frame_id equal to base_link. I have added the frame "map" as "map_frame_id" and the static transformation "map->world".
Below is the
launch file "slam_rtab.launch.py" and the
new tf tree (sorry for the comments in Italian):
slam_rtab.pyframes_2025-05-09_CON_MAP_page-0001.jpgI don't think this setup is useful for my purpose (estimating the pose of the end-effector=tool_link and control based on pose estimation error), but I'm still fighting with various warnings:
1) [move_group]: Message Filter dropping message: frame 'depth_camera_optical_link' at time 370.825 for reason 'discarding message because the queue is full'
2) [rtabmap_viz-13] [ WARN] (2025-05-09 15:47:28.326) MainWindow.cpp:1976::processStats() Processing time (2.017118s) is over detection rate (1.000000s), real-time problem!
3) [rtabmap]: rtabmap (60): Rate=1.00s, Limit=0.000s, Conversion=0.0005s, RTAB-Map=2.2644s, Maps update=0.0001s pub=0.0018s delay=1.3160s (local map=1, WM=1)
4) If I set "'RGBD/LinearUpdate': '0.0'" and "'RGBD/AngularUpdate': '0.0'" I inexplicably get "[ WARN] (2025-05-12 17:11:46.634) SensorData.cpp:762::uncompressDataConst() Requested laser scan data, but the sensor data (182) doesn't have laser scan."
Log of the RTAB part only + planning execution in MoveIt (before this MoveIt and Gazebo start):
log_RTAB.txt_______________________________
1) What changes if I put "wrist_link" or "tool_link" as "frame_id"? Where can I find the pose estimate for these frames?
2) Are these the octomap topics you mean?
/octomap_binary
/octomap_empty_space
/octomap_full
/octomap_global_frontier_space
/octomap_grid
/octomap_ground
/octomap_obstacles
/octomap_occupied_space
I also saw that I can use this
https://github.com/Notou/Moveit-External-Octomap-Updater to bring the RTAB octomap into MoveIt and not use its native one.
One last piece of information, the
camera I'm using is Gazebo's (libgazebo_ros_camera.so) and its update_rate is set to 10Hz.
_________________________________________________
UPDATE 16-05
- I think I eliminated the "..queue is full" warnings by changing the QoS values: 'qos_image': 2, 'qos_camera_info': 2. In fact "depth_camera_controller" had "Reliability: RELIABLE" and "rtabmap" had "Reliability: BEST_EFFORT".
- I also changed the following parameters to lighten the simulation: 'Mem/ImagePreDecimation': '4', 'Grid/RayTracing': 'false', 'Grid/CellSize': '0.1'.
- Finally I decreased the detection rate to 'Rtabmap/DetectionRate': '0.3', so update every 3.33s. I get "[INFO] [1747316578.407095878] [rtabmap]: rtabmap (1): Rate=3.33s, Limit=0.000s, Conversion=0.0086s, RTAB-Map=0.3603s, Maps update=0.0003s pub=0.0001s delay=0.2880s (local map=1, WM=1)" and I don't get the "... real-time problem!" warning anymore.
- I put 'RGBD/LinearUpdate': '0.0' and 'RGBD/AngularUpdate': '0.0', I think I'll leave out the laser scan warnings.
- The only warning I still get is
"[move_group-7] [INFO] [1747316592.865220175] [move_group]: Message Filter dropping message: frame 'depth_camera_optical_link' at time 374.105 for reason 'the timestamp on the message is earlier than all the data in the transform cache'", but I only get this at startup and not during the simulation. [Note: I do NOT get this warning if I do NOT start RTAB-Map].