Error: Very large angular variance

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

Error: Very large angular variance

kolohe113
Hi! I am running Rtabmap with ROS Kinetic, Ubuntu 16.04. whenever I ran Rtabmap's launch file, I got this warning:

Memory.cpp:810::addSignatureToStm() Very large angular variance (67953.453125) detected! Please fix odometry twist covariance, otherwise poor graph optimizations are expected and wrong loop closure detections creating a lot of errors in the map could be accepted.

I am using the Realsense 435 for camera topics;  Hokuyo UST-20LX for scan, and turtlebot for wheel odometry.

Here is my Rtabmap launch file:

<div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><launch>
  <arg name="gui_cfg"              default="~/.ros/rtabmap_gui.ini" />
  <arg name="launch_prefix"        default=""/> 
  <arg name="output"              default="screen"/>


  <group ns="rtabmap">
        <node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="--delete_db_on_start">
      <param name="frame_id" type="string" value="base_link"/>

      <param name="subscribe_depth" type="bool" value="true"/>
      <param name="subscribe_scan" type="bool" value="true"/>

      <remap from="odom" to="/wheel_odom"/>
      <remap from="scan" to="/scan"/>


      <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="queue_size" type="int" value="10"/>

      <!-- RTAB-Map's parameters -->
      <param name="RGBD/NeighborLinkRefining" type="string" value="true"/>
      <param name="RGBD/ProximityBySpace"  type="string" value="true"/>
      <param name="RGBD/AngularUpdate"    type="string" value="0.01"/>
      <param name="RGBD/LinearUpdate"      type="string" value="0.01"/>
      <param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/>
      <param name="Reg/Force3DoF"      type="string" value="true"/> <!--same as optimizer/slam2D -->
      <param name="Reg/Strategy"          type="string" value="1"/> <!-- 1=ICP -->
      <param name="Reg/Force3DoF"          type="string" value="true"/>
      <param name="Vis/MinInliers"        type="string" value="5"/>
      <param name="Vis/InlierDistance"    type="string" value="0.1"/>
      <param name="Rtabmap/TimeThr"        type="string" value="700"/>
      <param name="Mem/RehearsalSimilarity"   type="string" value="0.45"/>
      <param name="Grid/CellSize" type="string" value="0.05"/> <!-- 5cm voxel default-->
      <param name="Kp/MaxFeatures" type="string" value="400"/>
        <param name="Optimizer/Strategy" type="string" value="0"/> <!-- 0 is TORO, Default G20-->
        <param name="RGBD/OptimizeMaxError" type="string" value="0"/> <!--When using TORO, seto to 0,otherwise set to 1-->
        <param name="Kp/DetectorStrategy" type="string" value="6"/> <!--0=SURF 1=SIFT 2=ORB 3=FAST/FREAK 4=FAST/BRIEF 5=GFTT/FREAK 6=GFTT/BRIEF(default) 7=BRISK 8=GFTT/ORB 9=KAZE-->
        <param name="RGBD/LoopClosureReextractFeatures" type="string" value="true"/> <!--extract features even if there are some already in the node-->
        <param name="Grid/FromDepth" type="string" value="false"/> <!--suppress warning (subscribe_scan=true)-->
        <param name="RGBD/ProximityPathMaxNeighbors" type="string" value="10"/> <!--suppress warning (subscribe_scan = true and Reg/Strategy=1-->
        <param name="Vis/FeatureType" type="string" value="6"/> <!--suppress warning,want to be same as KP/detectorstrategy -->
        </node>

        <!-- Visualisation RTAB-Map -->
        <node pkg="rtabmap_ros" type="rtabmapviz" name="rtabmapviz" args="-d $(arg gui_cfg)" output="$(arg output)" launch-prefix="$(arg launch_prefix)">

  <param name="subscribe_rgbd"    type="bool"   value="false"/>
  <param name="subscribe_scan"    type="bool"   value="true"/>
  <param name="subscribe_scan_cloud" type="bool"   value="false"/>
  <param name="frame_id"          type="string" value="base_link"/>
  <param name="odom_frame_id"    type="string" value=""/>
  <param name="wait_for_transform_duration" type="double"   value="0.2"/>
  <param name="queue_size"        type="int"        value="10"/>
  <param name="approx_sync"      type="bool"   value="true"/>
   



      <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"/>

 
 
  <remap from="scan"                to="/scan"/>

  <remap from="odom"                to="/wheel_odom"/>
        </node>

  <node pkg="tf" type="static_transform_publisher"  name="base_to_laser"
      args="0.0 0.0 0.3 0 0 0 /base_link /laser 100" />

  <node pkg="tf" type="static_transform_publisher"  name="base_to_cam"
    args="0.05 0.0 0.3 0.0 0 0 /base_link /camera_link 100" />

  </group>
</launch>
</pre></div>

Any help is appreciated. Thank you!


Reply | Threaded
Open this post in threaded view
|

Re: Error: Very large angular variance

matlabbe
Administrator
Can you show odometry topic?
$ rostopic echo /wheel_odom
Reply | Threaded
Open this post in threaded view
|

Re: Error: Very large angular variance

kolohe113
header: seq: 15209 stamp: secs: 1544815160 nsecs: 587600862 frame_id: "odom" child_frame_id: "base_footprint" pose: pose: position: x: -0.62630556451 y: 0.220102871594 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.956381265923 w: 0.292121334707 covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10000000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10000000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10000000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05] twist: twist: linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0 covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] --- header: seq: 15210 stamp: secs: 1544815160 nsecs: 647584739 frame_id: "odom" child_frame_id: "base_footprint" pose: pose: position: x: -0.62630556451 y: 0.220102871594 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.956381265923 w: 0.292121334707 covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10000000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10000000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10000000000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05] twist: twist: linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0 covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ---
Reply | Threaded
Open this post in threaded view
|

Re: Error: Very large angular variance

matlabbe
Administrator
Hi,

The covariance is ok for 2D slam. Unfortunatly, with the version you are using, the warning appears when any of the angular variance is set high. This has been fixed in recent version where only yaw variance is checked for that warning if Reg/Force3DoF is true. In your case, the warning should not appear. It is safe to ignore the warning in your case (or update rtabmap to newest version from source to suppress this warning).

cheers,
Mathieu