Re: RTAB-Map with D435i on a UR10
Posted by
matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/RTAB-Map-with-D435i-on-a-UR10-tp6568p6578.html
Hi Robert,
It is possible to use the manipulator arm's TF for odometry. Also, as we can assume that there is no drift, we can disable loop closure detection to save resources and cpu time.
What does /world -> /base_link represent in your setup? For the link between the end effector and the camera, a static_transform_publisher can be used, or the urdf of the arm can be modified to include the joint and link directly.
The config of rtabmap node could look like this:
<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" args="--delete_db_on_start">
<remap from="rgb/image" to="/camera/color/image_raw"/>
<remap from="depth/image" to="/camera/aligned_depth_to_color/image_raw"/>
<remap from="rgb/camera_info" to="/camera/color/camera_info"/>
<param name="frame_id" value="base_link"/>
<param name="odom_frame_id" value="base_link"/> <!-- fake fixed odometry -->
<param name="approx_sync" value="false"/> <!-- D435i has exact synchronized frames -->
<param name="Rtabmap/DetectionRate" value="2"/> <!-- increase to make the map faster -->
<param name="Kp/MaxFeatures" value="-1"/> <!-- disable loop closure detection -->
<param name="RGBD/ProximityDetectionBySpace" value="false"/> <!-- disable proximity detection -->
<param name="RGBD/LinearUpdate" value="0.0"/> <!-- always add new frames even if we don't move... arm is fixed -->
<param name="RGBD/AngularUpdate" value="0.0"/>
</node>
You can also play with the Grid/ parameters if you need an OctoMap with finer cells for example (default 5 cm).
$ rtabmap --params | grep Grid/
To reuse a previous map, remove "--delete_db_on_start" and set "Mem/IncrementalMemory" to false.
cheers,
Mathieu