Rtabmap.cpp warning has been encourted while executing the gazebo

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

Rtabmap.cpp warning has been encourted while executing the gazebo

Dong Jin Yook
Hi,

This warning has been encountered while executing the gazebo. It frequently occurs
Have you any idea of what am I doing wrong?
Thanks in advance!
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:39.868) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
[ INFO] [1479217719.893882823, 245.169000000]: rtabmap (155): Rate=1.00s, Limit=0.700s, RTAB-Map=0.1006s, Maps update=0.0037s pub=0.0085s (local map=138, WM=138)
[ INFO] [1479217722.177303515, 246.241000000]: rtabmap (156): Rate=1.00s, Limit=0.700s, RTAB-Map=0.2064s, Maps update=0.0038s pub=0.0102s (local map=139, WM=139)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ INFO] [1479217724.720255827, 247.480000000]: rtabmap (157): Rate=1.00s, Limit=0.700s, RTAB-Map=0.1399s, Maps update=0.0037s pub=0.0107s (local map=140, WM=140)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:47.026) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:47.029) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
[ INFO] [1479217727.058582424, 248.666000000]: rtabmap (158): Rate=1.00s, Limit=0.700s, RTAB-Map=0.0862s, Maps update=0.0036s pub=0.0117s (local map=141, WM=141)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:48.931) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
[ INFO] [1479217729.007049282, 249.694000000]: rtabmap (159): Rate=1.00s, Limit=0.700s, RTAB-Map=0.1392s, Maps update=0.0244s pub=0.0130s (local map=142, WM=142)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:50.827) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
[ INFO] [1479217730.881531259, 250.784000000]: rtabmap (160): Rate=1.00s, Limit=0.700s, RTAB-Map=0.1460s, Maps update=0.0040s pub=0.0095s (local map=143, WM=143)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:52.565) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
[ INFO] [1479217732.615963818, 251.892000000]: rtabmap (161): Rate=1.00s, Limit=0.700s, RTAB-Map=0.1104s, Maps update=0.0037s pub=0.0105s (local map=144, WM=144)
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
[ WARN] (2016-11-15 22:48:54.297) Rtabmap.cpp:2006::process() Local scan matching rejected: Cannot compute transform (converged=false var=1.000000)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

My launch file


<launch>
    
  <!-- Choose between RGB-D and stereo -->      
  <arg name="rgbd"                    default="true"/>
  <arg name="stereo"                  default="false"/>
 
  <!-- Choose visualization -->
  <arg name="rtabmapviz"              default="true" /> 
  <arg name="rviz"                    default="false" />
  
  <!-- Localization-only mode -->
  <arg name="localization"            default="false"/>
  
  <!-- Corresponding config files -->
  <arg name="cfg"                     default="" /> <!-- To change RTAB-Map's parameters, set the path of config file (*.ini) generated by the standalone app -->
  <arg name="gui_cfg"                 default="~/.ros/rtabmap_gui.ini" />
  <arg name="rviz_cfg"                default="-d $(find rtabmap_ros)/launch/config/rgbd.rviz" />
  
  <arg name="frame_id"                default="base_link"/>     <!-- Fixed frame id, you may set "base_link" or "base_footprint" if they are published -->
  <arg name="namespace"               default="rtabmap"/>
  <arg name="database_path"           default="~/.ros/rtabmap.db"/>
  <arg name="queue_size"              default="10"/>
  <arg name="wait_for_transform"      default="0.2"/>
  <arg name="rtabmap_args"            default="--delete_db_on_start"/>              <!-- delete_db_on_start, udebug -->
  <arg name="launch_prefix"           default=""/>              <!-- for debugging purpose, it fills launch-prefix tag of the nodes -->
  <arg name="approx_sync"             default="true"/>         <!-- if timestamps of the stereo images are not synchronized -->
  
  <arg name="rgb_topic"               default="/my_p3dx/kinect/rgb/image_raw" />
  <arg name="depth_topic"             default="/my_p3dx/kinect/depth/image_raw" />
  <arg name="camera_info_topic"       default="/my_p3dx/kinect/rgb/camera_info" />
  
  <arg name="subscribe_scan"          default="true"/>
  <arg name="scan_topic"              default="/scan"/>
   
  <arg name="odom_topic"              default="/odom"/>         <!-- Odometry topic used if visual_odometry is false -->
  <arg name="odom_args"               default="$(arg rtabmap_args)"/>

  <node pkg="tf" type="static_transform_publisher" name="camera_base_link"  args="0 0 0 0 0 0 /kinect_link        /camera_depth_frame 30"/>
  <node pkg="tf" type="static_transform_publisher" name="camera_base_link1" args="0 0 0 0 0 0 /kinect_link        /camera_rgb_frame 30"/>
  <node pkg="tf" type="static_transform_publisher" name="camera_base_link2" args="0 0 0 0 0 0 /camera_depth_frame /camera_depth_optical_frame 30"/>
  <node pkg="tf" type="static_transform_publisher" name="camera_base_link3" args="0 0 0 0 0 0 /camera_rgb_frame   /camera_rgb_optical_frame 30"/>

  <node pkg="depthimage_to_laserscan" type="depthimage_to_laserscan" name="depthimage_to_laserscan">
    <remap from="image" to="/my_p3dx/kinect/depth/image_raw"/>
    <remap from="camera_info" to="/my_p3dx/kinect/depth/camera_info"/>
  </node>

  <include file="$(find pioneer_nav)/Navigation/Common/simple_navigation_p3at.launch"/>

  <!-- Nodes -->
  <group ns="$(arg namespace)">
    <!-- Visual SLAM (robot side) -->
    <!-- args: "delete_db_on_start" and "udebug" -->
    <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg rtabmap_args)" launch-prefix="$(arg launch_prefix)">

      <param name="subscribe_depth"               type="bool"     value="$(arg rgbd)"/>
      <param name="subscribe_scan"                type="bool"     value="$(arg subscribe_scan)"/>
      <param name="frame_id"                      type="string"   value="$(arg frame_id)"/>
      <param name="wait_for_transform_duration"   type="double"   value="$(arg wait_for_transform)"/>
      <param name="database_path"                 type="string"   value="$(arg database_path)"/>
      <param name="config_path"                   type="string"   value="$(arg cfg)"/>
      <param name="queue_size"                    type="int"      value="$(arg queue_size)"/>
      <param name="grid_size"                     type="double"   value="50"/>
      <param name="map_filter_radius"             type="double"   value="0.2"/>  <!-- Filter nodes before creating the maps. --> 
      
      <remap from="rgb/image"       to="$(arg rgb_topic)"/>
      <remap from="depth/image"     to="$(arg depth_topic)"/>
      <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
      
      <remap from="scan"            to="$(arg scan_topic)"/>
      <remap from="odom"            to="$(arg odom_topic)"/>
      
      <!-- 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)"/>
    <param name="Mem/SaveDepth16Format"        type="bool"  value="false"/>

    <param name="RGBD/ProximityBySpace"        type="string" value="true"/>   <!-- Local loop closure detection (using estimated position) with locations in WM -->
    <param name="RGBD/AngularUpdate"           type="string" value="0.01"/>    <!-- Update map only if the robot is moving -->
    <param name="RGBD/LinearUpdate"            type="string" value="0.01"/>    <!-- Update map only if the robot is moving -->
    <param name="RGBD/OptimizeFromGraphEnd"    type="string" value="false"/>  <!-- Set to false to generate map correction between /map and /odom -->
    <param name="Optimizer/Slam2D"             type="string" value="true"/>
    <param name="Reg/Strategy"                 type="string" value="1"/>      <!-- Loop closure transformation refining with ICP: 0=Visual, 1=ICP, 2=Visual+ICP -->
    <param name="Reg/Force3DoF"                type="string" value="true"/> 
    <param name="Vis/MinInliers"               type="string" value="5"/>      <!-- 3D visual words minimum inliers to accept loop closure -->
    <param name="Vis/InlierDistance"           type="string" value="0.1"/>    <!-- 3D visual words correspondence distance -->
    <param name="Rtabmap/TimeThr"              type="string" value="700"/>
    <param name="Mem/RehearsalSimilarity"      type="string" value="0.45"/>
    <param name="Kp/MaxDepth"                  type="string" value="4.0"/>
    <param name="Icp/CoprrespondenceRatio"     type="string" value="0.3"/>
    <param name="Grid/FromDepth"               type="string" value="false"/>
    </node>

    <!-- Visualisation RTAB-Map -->
    <node if="$(arg rtabmapviz)" pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(arg gui_cfg)" output="screen" launch-prefix="$(arg launch_prefix)">
      <param name="subscribe_depth"             type="bool"     value="$(arg rgbd)"/>
      <param name="subscribe_scan"              type="bool"     value="$(arg subscribe_scan)"/>
      <param name="frame_id"                    type="string"   value="$(arg frame_id)"/>
      <param name="wait_for_transform_duration" type="double"   value="$(arg wait_for_transform)"/>
      <param name="queue_size"                  type="int"      value="$(arg queue_size)"/>
    
      <remap from="rgb/image"       to="$(arg rgb_topic)"/>
      <remap from="depth/image"     to="$(arg depth_topic)"/>
      <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
      
      <remap from="scan"            to="$(arg scan_topic)"/>
      <remap from="odom"            to="$(arg odom_topic)"/>

    </node>
    
  </group>
  
  <!-- Visualization RVIZ -->
  <node if="$(arg rviz)" pkg="rviz" type="rviz" name="rviz" args="$(arg rviz_cfg)"/>
  <node if="$(arg rviz)" pkg="nodelet" type="nodelet" name="points_xyzrgb" args="standalone rtabmap_ros/point_cloud_xyzrgb">

    <remap from="rgb/image"         to="$(arg rgb_topic)"/>
    <remap from="depth/image"       to="$(arg depth_topic)"/>
    <remap from="rgb/camera_info"   to="$(arg camera_info_topic)"/>
    <remap from="cloud"             to="voxel_cloud" />

    <param name="decimation"  type="double" value="2"/>
    <param name="voxel_size"  type="double" value="0.02"/>
    <param if="$(arg stereo)" name="approx_sync" type="bool"   value="$(arg approx_sync)"/>
  </node>

</launch>
Reply | Threaded
Open this post in threaded view
|

Re: Rtabmap.cpp warning has been encourted while executing the gazebo

matlabbe
Administrator
Hi,

With laser scans created from kinect, because of the limited field of view, I recommend to disable local scan matching for proximity detection:
<param name="RGBD/ProximityPathMaxNeighbors" type="string" value="0"/> 

If you are on 0.11.8, disable the whole proximity detection:
<param name="RGBD/ProximityBySpace" type="string" value="false"/> 

cheers,
Mathieu