ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

rtabmap: free space behind the walls

asked 2020-06-16 08:30:44 -0500

tonglliyoon gravatar image

I am running rtabmap in gazebo with turtlebot3 without lidar, only with camera. here is my rtabmap parameters: <group ns="rtabmap">

<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg rtabmap_args)">

  <param name="database_path"       type="string" value="$(arg database_path)"/>
  <param name="frame_id"            type="string" value="base_footprint"/>
  <param name="subscribe_depth"     type="bool"   value="true"/>
  <param name="subscribe_rgbd"      type="bool"   value="false"/>
  <param name="subscribe_scan"      type="bool"   value="false"/>

  <!-- Input topics -->
  <remap from="scan"                to="$(arg input_scan)"/>
  <remap from="odom"                to="$(arg input_odom)"/>
  <remap from="rgb/image"           to="$(arg input_image)"/>
  <remap from="depth/image"         to="$(arg input_depth)"/>
  <remap from="rgb/camera_info"     to="$(arg input_camera_info)"/>
  <remap from="rgbd_image"          to="rgbd_image"/>

  <!-- Output topics -->
  <remap from="grid_map" to="/map"/>

  <param name="queue_size" type="int" value="100"/>

  <!-- RTAB-Map's parameters -->
  <param name="RGBD/NeighborLinkRefining" type="string" value="false"/>
  <param name="RGBD/ProximityBySpace"     type="string" value="true"/>
  <param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/>
  <param name="RGBD/AngularUpdate"        type="string" value="0.05"/>
  <param name="RGBD/LinearUpdate"         type="string" value="0.05"/>
  <param name="Optimizer/GravitySigma"    type="string" value="0.1"/>
  <!--param name="Optimizer/Slam2D"          type="string" value="true"/-->
  <param name="Reg/Force3DoF"             type="string" value="true"/>
  <param name="Reg/Strategy"              type="string" value="0"/> <!-- 1=ICP -->
  <param name="Vis/MinInliers"            type="string" value="20"/>
  <param name="Vis/InlierDistance"        type="string" value="0.1"/>
  <param name="Kp/MaxDepth"               type="string" value="0"/>
  <param name="Vis/MaxDepth"              type="string" value="0"/>
  <param name="Rtabmap/TimeThr"           type="string" value="0"/>
  <param name="Rtabmap/DetectionRate"     type="string" value="$(arg rate)" />
  <param name="Mem/RehearsalSimilarity"   type="string" value="0.45"/>
  <param name="Mem/UseOdomGravity=true"   type="string" value="true"/>
  <param name="Grid/MaxObstacleHeight"    type="string" value="0.75" />
  <param name="Grid/NoiseFilteringRadius" type="string" value="0.0"/>
  <param name="Grid/NoiseFilteringMinNeighbors" type="string" value="5.0"/>

  <param name="Grid/FromDepth"            type="bool" value="true" />
  <!--param name="Grid/DepthDecimation"      type="string" value="10"/-->
  <param name="Grid/3D"                   type="bool" value="true" />
  <param name="Grid/RayTracing"           type="bool" value="true" />
  <param name="Grid/NormalsSegmentation"  type="string" value="true" />
  <param name="Grid/MaxGroundHeight"      type="string" value="0.03" />
  <param name="Grid/RangeMax"             type="string" value="5.0" />
  <param name="Grid/FlatObstacleDetected" type="bool" value="true"/>     

  <param name="Icp/VoxelSize"             type="string" value="0.05"/>
  <param name="Icp/MaxCorrespondenceDistance"            type="string" value="0.1"/>

  <!-- Localization mode -->
  <param     if="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="false"/>
  <param unless="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="true"/>
  <param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/>



I have problem that map is exploring with free space behind the walls (marked with red): image description

Space that camera cannot see ... (more)

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-06-30 14:15:28 -0500

matlabbe gravatar image

Is this a simulated or real environment? In real world, it is likely that this will happen with any SLAM approaches (because of metallic surfaces, mirrors, windows, or just odometry drift...). An idea could be to grow the obstacle cells before sending the map to exploration approach, or try to find and clear small clusters of empty space that are not connected to the largest empty space section of the map. Other approach is if the planner cannot plan a path to that goal by passing only by empty space, you can assume that this goal is unreachable, so that empty cells could be cleared or set as unknown.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-06-16 08:30:44 -0500

Seen: 169 times

Last updated: Jun 30 '20