ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

robot_localization non uniform inaccurate odometry

asked 2018-04-04 02:13:01 -0600

mewbot gravatar image

updated 2018-04-04 10:10:08 -0600

Im running a simulation in Gazebo combining the odomery data (coming from the differential drive plugin) and the imu data (from GazeboRosImuSensor plugin). Im quite new to ROS and im totally confused with the ENU and NED frames ..

This is what I did 1)placed the IMU in its neutral position

2)setup a static transform broadcaster which broadcasts my base_link to odom frame here i made the rotation.

I have rolled it by 180 and yaw by 90 . this is the code snippet in my launch file

<node pkg="tf" type="static_transform_publisher" name="imu_tf_publisher" args="0 0 0 1.57 0 3.14 base_link imu_link 10"/>

I tested the IMU and it shows correct accelerations as shown ( . )

This is my paramter config file for the robot_localization package

odom0_config: [false,  false,  false,
               false, false, false,
               true, true, false,
               false, false, true,
               false, false, false]
imu0_config: [false, false, false,
              false, false, true,
              false, false, false,
              false, false, true,
              true, true, false]

odom0_queue_size: 2
imu0_queue_size: 5

odom0_nodelay: false
imu0_nodelay: false

odom0_differential: false
imu0_differential: false

odom0_relative: false
imu0_relative: false

The problem is that the filtered odometry data is moving at 90 degees to original raw odometry data image description

edit retag flag offensive close merge delete


What do you mean by stop for sometime? Can you post some more details as to what happens when it stops?

Akash Purandare gravatar image Akash Purandare  ( 2018-04-04 02:36:12 -0600 )edit

I plot the odometry data in rviz, The raw odometry data used to move with the robot in the circle but the filtered one stops for few seconds .

I solved this issue . turned out i forgot to comment out example imu configs in tthe paramete file But still i have the problem of wrong imu orientation

mewbot gravatar image mewbot  ( 2018-04-04 09:59:15 -0600 )edit

when i move the bot forward the filtered data is moving at 90 degrees see this The red line is raw odometry data. the green is the filtered one.

mewbot gravatar image mewbot  ( 2018-04-04 10:05:44 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-05-22 04:03:21 -0600

Tom Moore gravatar image

I feel like this is a duplicate question and I answered something that was pretty much identical recently, but the EKF is combining measurements from two data sources: your IMU and your odometry. You are fusing the absolute yaw value from your IMU, and velocity data from your odometry. So your EKF output poses will have the same "shape" as your raw odometry, but will be at the heading provided by your IMU. If your EKF output was identical to your odometry input, you wouldn't need a filter.

edit flag offensive delete link more

Question Tools



Asked: 2018-04-04 02:13:01 -0600

Seen: 406 times

Last updated: May 22 '18