Covariance is growing unbounded in robot_localization

asked 2022-09-14 12:59:20 -0500

elgarbe gravatar image

updated 2022-09-15 07:10:28 -0500

ravijoshi gravatar image

Hi, I'm building a custom robot (3 wheel, differential drive). It has an IMU, reporting acceleration, angular velocity and magnetic field; wheels encoders that reports wheels velocities; a GPS reporting position. I'm running two instance of RL, the first one for odm->base_link use imu and wheel encoders:

 odom0: /chori/odom
  odom0_config: [false, false, false,
                 false, false, false,
                 true,  true,  false,  #true,  true,  true,
                 false, false, false,
                 false, false, false]
  odom0_queue_size: 10
  odom0_nodelay: true
  odom0_differential: false
  odom0_relative: false

# imu configure:
  imu0: /imu/data
  imu0_config: [false, false, false,    # x, y, z,
                false, false,  true,    # roll, pitch, yaw
                false, false, false,    # vx, vy, vz
                false, false,  true,   # vroll, vpitch, vyaw
                true,  false,  false]    # ax, ay, az  
  imu0_nodelay: false
  imu0_differential: false
  imu0_relative: false
  imu0_queue_size: 10

I just trust on encoders velocities, the yaw (imu_filter_madwick), the v_yaw (giroscope) and linear acceleration in X axis.

Then I have the second instance tha use the same sensors but adds the gps published by the navsta_transform node.

I have two main odometry messages, /odometry/filtered and /odometry/filtered_map . The second one reporting map->base_link odometry. I was expecting that map->base_link message have a bounded value in their covariance because of the GPS. But it's not. Position covariance slowly grow unbounded. I'm wondering why is that?

thank and best regards

edit retag flag offensive close merge delete


Please include your full configuration for both EKFs and navsat_transform_node, as well as a sample message from each sensor input.

Tom Moore gravatar image Tom Moore  ( 2023-03-09 08:45:27 -0500 )edit