Node Positioning

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Node Positioning

alexr
Hi Mathieu,

Can you describe how node positions are determined in rtabmap. Between subsequent nodes odometric constraints (edges) are added I understood. Is it possible to force the node formation every "x" meter or so instead of the default behaviour. If so how do I implement it. Also how do I change the size of the node and edge radius in ROS rviz.

Thanks
Alex
------ Alex
Reply | Threaded
Open this post in threaded view
|

Re: Node Positioning

matlabbe
Administrator
Hi Alex,

Nodes' positions are determined by the input odometry. The default behavior is to add a node each second (Rtabmap/DetectionRate=1). To add nodes based on space instead of time, you could try setting Rtabmap/DetectionRate=0 and use RGBD/LinearUpdate and RGBD/AngularUpdate. For example, to add nodes only each 1 meter independently of the rotation:
<node pkg="rtabmap_ros" type="rtabmap" name="rtabmap">
   <param name="Rtabmap/DetectionRate" value="0"/>
   <param name="RGBD/LinearUpdate" value="1"/>
   <param name="RGBD/AngularUpdate" value="0"/>
   ...
</node>
Unless you have a 360 FOV sensor, you may want to use a non-zero RGBD/AngularUpdate to add a new node when the robot is turning.

cheers,
Mathieu