Robot pose is off when using robot localization with fused IMU and Odometry

asked 2022-10-17 16:18:28 -0500

chm007 gravatar image

updated 2022-10-17 20:02:24 -0500

Hello All,

I am working on a 3-wheeled omnidirectional robot and trying to fuse IMU and Odometry using robot localization for better robot pose. My odometry is working well and I verified the axis of the IMUs align physically with the robot odometry, x forward and checked that when the the robot rotates anticlockwise yaw from my topic /imu/rpy is positive. However I am still having problems getting good robot pose while robot is navigating.

The minute the robot rotates along the Z axis, it begins to loose sense of its pose/orientation. In fact oddly enough the robot pose seems better without fusing IMU. Because I want the robot to navigate small areas I really want to get the benefit of better pose by fusing IMU and Odometry. Any thoughts on what I am doing wrong? Also I supposed to stop my odometry nod from publishing base---->odom TF? See my IMU topic, odom topic EKF and AMCL config below:

image description

image description

EKF Config

//silent_tf_failure: false
sensor_timeout: 0.1
two_d_mode: true

transform_time_offset: 0.0

transform_timeout: 0.5

print_diagnostics: true

debug: false

debug_out_file: /home/ubuntu/robot_localizationfile.txt

publish_tf: true

publish_acceleration: false

initial_state: [ 1.0, -4.0, 0.0,
                 0.0,  0.0, 0.0,
                 0.0,  0.0, 0.0,
                 0.0,  0.0, 0.0,
                 0.0,  0.0  0.0]


map_frame: map              # Defaults to "map" if unspecified
odom_frame: odom            # Defaults to "odom" if unspecified
base_link_frame: base_link  # Defaults to "base_link" if unspecified
world_frame: odom           # Defaults to the value of odom_frame if unspecified but if map specified USE MAP (Check AMCL)

odom0: /odom

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

odom0_queue_size: 2

odom0_nodelay: false

odom0_differential: false

odom0_relative: false

odom0_pose_rejection_threshold: 5
odom0_twist_rejection_threshold: 1


imu0: /imu
imu0_config: [false, false, false,
              false, false, false,
              false, false, false,
              false, false,  true,
              true,  true,  false]

imu0_differential: false


process_noise_covariance: [0.05, 0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0.05, 0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0.06, 0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0.03, 0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0.03, 0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0.06, 0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0.025, 0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0.025, 0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0.04, 0,    0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0.01, 0,    0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0.01, 0,    0,    0,    0,
                           0,    0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0.02, 0 ...
(more)
edit retag flag offensive close merge delete

Comments

Sorry, may I request you replace images with text? Text is better suited for indexing and may help future readers.

ravijoshi gravatar image ravijoshi  ( 2022-10-18 06:55:33 -0500 )edit