RTAB-map with robot_localization
I'm building a simple differential drive robot with the kinect+fake laser setup from the tutorials, and now I'm trying to do some navigation with move_base.
my transforms look like this, except instead of IMU I'm combining wheel encoder odometry and visual odometry from RTAB-map.
when visual odometry is used alone, it's mostly fine until the robot gets close to a wall or something. I'm trying to use robot_localization to combine the two odometries and feed it into RTAB-map as /odom_filtered.
en<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">
<param name="frequency" value="20"/>
<param name="sensor_timeout" value="1.5"/>
<param name="two_d_mode" value="true"/>
<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="odom"/>
<param name="transform_time_offset" value="0.0"/>
<param name="odom0" value="/fake_odom"/>
<rosparam param="odom0_config">[false, false, false,
false, false, false,
true, true, false,
false, false, true,
false, false, false]</rosparam>
<param name="odom0_differential" value="true"/>
<param name="odom1" value="/rtabmap/visual_odom"/>
<rosparam param="odom1_config">[true, true, false,
false, false, true,
false, false, false,
false, false, false,
false, false, false]</rosparam>
<param name="odom1_differential" value="false"/>
</node>
With robot_localization, after a while the map looks like this:
the 3d and 2d map becomes chaotic and shifts around each frame.
my view_frames looks like this:
any idea what I'm doing wrong? The visual odometry is only published at around 1hz, could that be a problem?
Can you post sample input messages, as well as your covariance matrices in your
r_l
config?