turtlebot3 with ekf_localization_node

asked 2021-05-03 11:39:45 -0500

rezenders gravatar image

updated 2021-05-03 11:45:14 -0500

Hello everyone,

I am trying to use trutlebot to map a large environment and for that I need to have a good quality odometry. Thus, I am using the ekf_localization_node to fuse the data from /odom with an IMU. However, my setup is resulting in overlapping data from from /odom and /odomety/filtered, I read a few questions related to this and tried changing a few parameters of the efk node without success. After a while I realized that the pose published in the /odom topic has zero covariance and I wonder if this may be the cause of this problem. Can anyone help me out? Should I modify the openCR code to include covariance?

The ekf params that I am using:

frequency: 30

silent_tf_failure: false

sensor_timeout: 0.1


two_d_mode: true


transform_time_offset: 0.0


transform_timeout: 0.0


print_diagnostics: true


debug: false


debug_out_file: /path/to/debug/file.txt


publish_tf: false


publish_acceleration: false

permit_corrected_publication: false

map_frame: map             
odom_frame: odom            
base_link_frame: base_footprint  
world_frame: odom          


odom0: /odom

odom0_config: [true,  true,  false,
               false, false, true,
               true, false, 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,
              true,  true,  true,
              true,  true,  true]
imu0_nodelay: false
imu0_differential: false
imu0_relative: true
imu0_queue_size: 5
imu0_pose_rejection_threshold: 0.8                 # Note the difference in parameter names
imu0_twist_rejection_threshold: 0.8                #
imu0_linear_acceleration_rejection_threshold: 0.8  #


imu0_remove_gravitational_acceleration: true

use_control: false

stamped_control: false

control_timeout: 0.2
control_config: [true, false, false, false, false, true]
acceleration_limits: [1.3, 0.0, 0.0, 0.0, 0.0, 3.4]
deceleration_limits: [1.3, 0.0, 0.0, 0.0, 0.0, 4.5]
acceleration_gains: [0.8, 0.0, 0.0, 0.0, 0.0, 0.9]
deceleration_gains: [1.0, 0.0, 0.0, 0.0, 0.0, 1.0]

process_noise_covariance: [0.1, 0,    0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0.1, 0,    0,    0,    0,    0,     0,     0,    0,    0,    0,    0,    0,    0,
                           0,    0,    0.1, 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,    0,    0,
                           0,    0,    0,    0,    0,    0,    0 ...
(more)
edit retag flag offensive close merge delete