Robot localization package with wheel encoders and IMU not working correctly.

asked 2019-04-12 13:34:56 -0500

Dhagash Desai gravatar image

updated 2019-04-13 07:48:30 -0500

Hello Everyone,

I have difficulty in getting robot localisation node working I have a planar robot equipped with razor IMU and wheel encoders. I followed the tutorial given in the docs and first created the exactly same file given there with launch parameters of /odom and /imu like shown below:

<rosparam param="odom0_config">[false, false, false,
                                false, false, false,
                                true, true, false,
                                false, false, true,
                                false, false, false]</rosparam>

<rosparam param="imu0_config">[false, false, false,
                                false, false, true,
                                false, false, false,
                                false, false, true,
                                true, false, false]</rosparam>

Also with parameters like two_d_mode set to true. Here when my robot was stationary /odom topic from wheel encoders published correct reading i.e. zero in both x and y. But the /odometry filtered value got updated on its knows getting as high as possible and increasing and the robot is stationary.

Then I changed the configuration of only odom_config keeping imu_config as it. The updated odom_config is shown below:

<rosparam param="odom0_config">[true, true, false,
                                false, false, false,
                                false, false, false,
                                false, false, false,
                                false, false, false]</rosparam>

With the above config file I am getting reasonable values of odometry in /odometry/filtered topic but it keeps on jumping in seconds like if /odom topic is showing value of x = 1.0 then odometry/filtered keeps on changing form x = 1.61 to 1.93 which creates error in map. Can anybody tell me what's the problem going on?

Suggested Edit:

Bag file of odom,imu and filltered odometry data

Full configration of robot localisation I am using.

Thank You, Dhagash Desai

edit retag flag offensive close merge delete

Comments

most sources of error when using the state estimation nodes of robot_localization is your sensor topics. Check you wheel odometry and imu topics for correct output. Also make sure the values you want to fuse are present in the respective topic, so for example in your first configuration for the odom0_config you are trying to fuse x and y velocities and a yaw angle, you will want to make sure that your wheel odometry topic correctly provides this information.

Your question can be better answered with some more information, you should provide your full configuration parameters for the robot_localization node and even a rosbag of your odometry + imu topic

agurman gravatar image agurman  ( 2019-04-12 23:42:48 -0500 )edit

Updated the answer please help me to solve the problem.

Thanks, Dhagash

Dhagash Desai gravatar image Dhagash Desai  ( 2019-04-13 05:56:31 -0500 )edit

@agurman can you help?

Dhagash Desai gravatar image Dhagash Desai  ( 2019-04-16 16:03:50 -0500 )edit