map drifting in rtabmap after visual-odometry activation

asked 2022-01-25 11:23:55 -0600

Delbina gravatar image

updated 2022-01-25 11:24:37 -0600

hi everyone,

I want to uese rgbd camera in rtabmap. so i have activated camera, and visual-odometry. butafter activation, map is start drifting! why? image description

<arg name="navigation"   default="true"/>
  <arg name="localization" default="false"/>
  <arg name="icp_odometry" default="false"/>
  <arg name="rtabmapviz"   default="false"/>
  <arg name="camera"       default="true"/>
  <arg name="lidar2d"      default="false"/>
  <arg name="lidar3d"      default="true"/>
  <arg name="lidar3d_ray_tracing" default="true"/>
  <arg name="slam2d"       default="true"/>       
  <arg name="depth_from_lidar" default="false"/>

  <arg     if="$(arg lidar3d)" name="cell_size" default="0.2"/>
  <arg unless="$(arg lidar3d)" name="cell_size" default="0.05"/>


  <arg if="$(arg lidar2d)" name="lidar_args" default="--Reg/Strategy 1 --RGBD/NeighborLinkRefining true --Grid/CellSize $(arg cell_size) --Icp/PointToPlaneRadius 0"/>
  <arg if="$(arg lidar3d)" name="lidar_args" default="--Reg/Strategy 0 --RGBD/NeighborLinkRefining true --ICP/PM true --Icp/PMOutlierRatio 0.95 --Icp/VoxelSize $(arg cell_size) --Icp/MaxCorrespondenceDistance 0.1 --Icp/PointToPlaneGroundNormalsUp 0.9 --Icp/Iterations 10 --Icp/Epsilon 0.001 --OdomF2M/ScanSubtractRadius $(arg cell_size) --OdomF2M/ScanMaxSize 15000 --Grid/ClusterRadius 1 --Grid/RangeMax 20 --Grid/RayTracing $(arg lidar3d_ray_tracing) --Grid/CellSize $(arg cell_size) --Icp/PointToPlaneRadius 0 --Odom/Strategy 0 --Odom/GuessMotion true --Odom/ResetCountdown 0 --Odom/ScanKeyFrameThr 0.9 --RGBD/ProximityBySpace true"/>


  <!--- Run rtabmap -->
  <remap from="/rtabmap/grid_map" to="/map"/>
  <include file="$(find rtabmap_ros)/launch/mainrtabmap_stereo.launch">
    <arg     if="$(arg localization)" name="args" value="--Reg/Force3DoF $(arg slam2d) $(arg lidar_args)" />
    <arg unless="$(arg localization)" name="args" value="--Reg/Force3DoF $(arg slam2d) $(arg lidar_args) -d" /> <!-- create new map -->
    <arg name="localization"    value="$(arg localization)" />
    <arg name="visual_odometry" value="true" />
    <arg name="approx_sync"     value="$(eval camera or not icp_odometry)" />
    <arg name="imu_topic"       value="/gx5/imu/data" />
    <arg unless="$(arg icp_odometry)" name="odom_topic" value="/odometry/filtered"/>   
    <arg name="frame_id"        value="base_link" />
    <arg name="rtabmapviz"      value="$(arg rtabmapviz)" />
    <arg name="gps_topic"       value="/gps/fix"/>

    <!-- 2D LiDAR -->
    <arg name="subscribe_scan"  value="$(arg lidar2d)" />
    <arg if="$(arg lidar2d)" name="scan_topic"  value="/scan" />
    <arg unless="$(arg lidar2d)" name="scan_topic"  value="/scan_not_used" />    


    <!-- 3D LiDAR -->
    <arg name="subscribe_scan_cloud"  value="$(arg lidar3d)" />
    <arg if="$(arg lidar3d)" name="scan_cloud_topic" value="/velodyne_points" />
    <arg unless="$(arg lidar3d)" name="scan_cloud_topic" value="/scan_cloud_not_used" />

    <!-- If camera is used -->
    <arg name="depth"             value="$(eval camera and not depth_from_lidar)" />
    <arg name="subscribe_rgb"     value="$(eval camera)" />
    <arg name="rgbd_sync"         value="$(eval camera and not depth_from_lidar)" />
    <arg name="rgb_topic"         value="/camera/color/image_raw" />        <!--/camera/rgb/image_rect_color-->
    <arg name="camera_info_topic" value="/camera/color/camera_info" />             <!--/camera/rgb/camera_info-->
    <arg name="depth_topic"       value="/camera/depth/image_rect_raw" />   <!--/camera/depth_registered/image_raw-->  
    <arg name="approx_rgbd_sync"  value="false" />

   <!-- If depth generated from lidar projection (in case we have only a single RGB camera with a 3D lidar) -->
    <arg name="gen_depth"                  value="$(arg depth_from_lidar)" />
    <arg name="gen_depth_decimation"       value="4" />
    <arg name="gen_depth_fill_holes_size"  value="3" />
    <arg name="gen_depth_fill_iterations"  value="1" />
    <arg name ...
(more)
edit retag flag offensive close merge delete