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

robot_localization using dual node drifts

asked 2017-11-25 21:54:00 -0600

Ago gravatar image

I'm trying to use dual ekf node to do transform for my robot.

I'm using params file:

ekf_odom:
    frequency: 30
    sensor_timeout: 0.1
    two_d_mode: false
    transform_time_offset: 0.0
    transform_timeout: 0.0
    print_diagnostics: true
    debug: false
    publish_tf: true

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

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

    imu0: imu/data_raw
    imu0_config: [false, false, false,
                true,  true,  true,
                false, false, false,
                true,  true,  true,
                true,  true,  true]
    imu0_nodelay: false
    imu0_differential: false
    imu0_relative: false
    imu0_queue_size: 10
    imu0_remove_gravitational_acceleration: true


ekf_map:
    publish_tf: true

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

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

    odom1: odometry/gps
    odom1_config: [true,  true,  false,
                 false, false, false,
                 false, false, false,
                 false, false, false,
                 false, false, false]
    odom1_queue_size: 10
    odom1_nodelay: true
    odom1_differential: false
    odom1_relative: false

    imu0: imu/data_raw
    imu0_config: [false, false, false,
                false,  false,  true,
                false,  false,  false,
                false,  false,  false,
                false,  false,  false]
    imu0_nodelay: false
    imu0_differential: false
    imu0_relative: false
    imu0_queue_size: 10
    imu0_remove_gravitational_acceleration: true

    use_control: false


navsat_transform:
    frequency: 30
    delay: 3.0
    magnetic_declination_radians: 0 # 
    yaw_offset: 0 #1.570796327  # IMU reads 0 facing magnetic north, not east
    zero_altitude: true
    broadcast_utm_transform: true
    publish_filtered_gps: true
    use_odometry_yaw: false
    wait_for_datum: false

The problem I am having is that GPS is off about 0.01m. Now this will change the ekf state where the offset is accumulated. My robot is stationary (no moving) and within 10 seconds, it is off my 1 meter.

This is run in simulator, GPS and IMU data are almost ideal. How should I setup my robot_localization so that I wouldn't have such a drift? It seems that it tries to compensate the offset, but with every step, the offset gets bigger.

I have tried several things. What strangely helps a bit is to change world_frames in the conf. If GPS would be used in the node where world_frame is odom, then odom itself is drifting, but base_footprint stays put.

All this happens when the robot stays at (0, 0).

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-11-26 19:42:37 -0600

Ago gravatar image

I was including odometry from wrong ekf node into navsat. The launch file with better results:

  <node pkg="robot_localization" type="ekf_localization_node" name="ekf_map" clear_params="true">
    <remap from="odometry/filtered" to="odometry/filtered_map"/>
  </node>

  ....

  <node pkg="robot_localization" type="navsat_transform_node" name="navsat_transform" clear_params="true>
    <remap from="odometry/filtered" to="odometry/filtered_map"/>
  </node>
edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2017-11-25 21:54:00 -0600

Seen: 937 times

Last updated: Nov 26 '17