How do I make sure works the robot_pose_ekf working correctly with imu sensor.

asked 2021-11-01 04:15:14 -0500

apprentice_user gravatar image

updated 2022-04-30 13:45:34 -0500

lucasw gravatar image

I want to use the output of robot_pose_ekf (/odom_combined) with gmapping. I subscribe to published odometry (/odom) and imu (/imu_data) topics. I am running node robot_pose_ekf and it gives me odom_combined output. The launch file is as follows.

<launch>
<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
<param name="output_frame" value="odom_combined"/>
<param name="base_footprint_frame" value="base_footprint"/>
<param name="freq" value="50.0"/>
<param name="sensor_timeout" value="1.0"/>  
<param name="odom_used" value="true"/>
<param name="imu_used" value="true"/>
<param name="vo_used" value="false"/>
<remap from="imu" to="combined_odometry/odom" />
</node>
</launch>

when i start driving my robot and check it out, i see no difference between odometry and odom_combined. as if it didn't include the imu data in the calculation at all. I am also doing this conversion.

rosrun tf2_ros static_transform_publisher 0 0 0 0 0 0 odom odom_combined

I see that the imun has no link in the node tree. image description

and I'm adding my tf tree below. Can anyone tell me where I'm doing wrong. I spent a long time on this.

image description

edit retag flag offensive close merge delete