visual odometry starts drifting, in rtabmap
I have rgbd-camera(D435i), wheel odometer, imu and rtkgps. i have activated visual odometry in rtabmap:
<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"/>
<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" />
<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"/>
<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" />
<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" />
<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" />
<arg name="camera_info_topic" value="/camera/color/camera_info" />
<arg name="depth_topic" value="/camera/depth/image_rect_raw" />
<arg name="approx_rgbd_sync" value="false" />
<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="gen_depth_fill_holes_error" value="0.3" />
<arg if="$(arg icp_odometry)" name="icp_odometry" value="true" />
<arg if="$(arg icp_odometry)" name="odom_guess_frame_id" value="odom" />
<arg if="$(arg icp_odometry)" name="vo_frame_id" value="icp_odom" />
<arg unless="$(arg slam2d)" name="wait_imu_to_init" value="true" />
<arg if="$(arg lidar3d)" name="odom_args" value="--Icp/CorrespondenceRatio 0.01"/>
</include>
but when i want to do mapping, map is start drifting, even ...
Can you show your TF tree?