Rejected loop closure 93 -> 173: Too large rotation detected! [closed]
Hi,
I am doing 3D mapping with Kinect 360 camera using RTABMAP. Mapping starts well and then I start getting this two errors:
"[ WARN] (2020-07-22 14:50:09.654) Rtabmap.cpp:2144::process() Rejected loop closure 93 -> 173: Too large rotation detected! (pitch=0.000000, yaw=0.000000) max is -1.628242"
[ WARN] (2020-07-22 14:57:33.872) Rtabmap.cpp:2144::process() Rejected loop closure 57 -> 99: Not enough inliers after bundle adjustment 0/20 (matches=70) between 57 and 99
They occur in between lots of successful readings. For moving a robot I use:
rostopic pub -1 cmd_vel geometry_msgs/Twist '[0.1, 0, 0]' '[0, 0, 0]'
and for rotation I use:
rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]' '[0, 0, 0.1]'
I am using Pioneer 3-AT with ROS Melodic.
Here is my Gazebo world: https://imgur.com/a/B1bPeDE Here are my map when it is still correct: https://imgur.com/a/4Iqg4Tg, and when error occurs: https://imgur.com/a/vv7x60W
Here is my rtabmap.launch file:
<launch>
<param name="/use_sim_time" value="true"/>
<node pkg="nodelet" type="nodelet" name="rgbd_sync" args="standalone rtabmap_ros/rgbd_sync" output="screen">
<remap from="rgb/image" to="/camera/rgb/image_raw"/>
<remap from="depth/image" to="/camera/depth/image_raw"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
<remap from="rgbd_image" to="rgbd_image"/> <!-- output -->
<!-- Should be true for not synchronized camera topics
(e.g., false for kinectv2, zed, realsense, true for xtion, kinect360)-->
<param name="approx_sync" value="true"/>
<param name="queue_size" type="int" value="10"/>
</node>
<!-- Odometry -->
<node pkg="rtabmap_ros" type="rgbd_odometry" name="rgbd_odometry" output="screen">
<!--param name="subscribe_rgbd" type="bool" value="true"/-->
<remap from="rgb/image" to="/camera/rgb/image_raw"/>
<remap from="depth/image" to="/camera/depth/image_raw"/>
<remap from="rgb/camera_info" to="/camera/rgb/camera_info"/>
<param name="frame_id" type="string" value="base_link"/>
<remap from="rgbd_image" to="rgbd_image"/>
<param name="publish_tf" type="bool" value="false"/>
<param name="queue_size" type="int" value="10"/>
</node>
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true" output="screen">
<param name="map_frame" value="map"/>
<param name="odom_frame" value="odom"/>
<param name="base_link_frame" value="base_link"/>
<param name="world_frame" value="map"/>
<param name="odom0" value="odom"/>
<param name="pose0" value="rtabmap/localization_pose"/>
<!-- The order of the values is x, y, z, roll, pitch, yaw, vx, vy, vz, vroll, vpitch, vyaw, ax, ay, az. -->
<rosparam param="odom0_config">[true, true, false,
false, false, true,
false, false, false,
false, false, false,
false, false, false]</rosparam>
<rosparam param="pose0_config">[
true, true, false,
false, false, true,
false, false, false,
false, false, false,
false, false, false] </rosparam>
<param name="odom0_differential" value="true"/>
<param name="pose0_differential" value="false"/>
<param name="odom0_relative" value="true"/>
<param name="pose0_relative" value="false"/>
<param name="odom0_queue_size" value="5"/>
<param name="pose0_queue_size" value="2"/> ...