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

robot_localization ignores pose topic

asked 2017-05-02 09:55:05 -0600

Omer gravatar image

updated 2017-06-28 05:15:20 -0600

Tom Moore gravatar image

Hi,

I wish to compare the outputs of two instances of robot localization on Clearpath's Jackal: one that gets IMU and odometry as inputs and another that gets the same IMU and odometry topics but also a pose topic that originates in observations from a UAV that hovers above.

It seems like the second instance ignores the pose topic since the outputs of the two instances are identical: plot of the two outputs of the two instances

Below are the two .yaml config files of the two instances:

robot_localization.yaml

frequency: 50

odom0: /jackal_velocity_controller/odom
odom0_config: [false, false, false,
               false, false, false,
               true, true, true,
               false, false, true,
               false, false, false]
odom0_differential: false

imu0: /microstrain/imu/data 
imu0_config: [false, false, false,
              true, true, true,
              false, false, false,
              true, true, true,
              false, false, false]
imu0_differential: false

odom_frame: odom
base_link_frame: base_link
world_frame: odom

robot_localization_collaborative.yaml

frequency: 50
publish_tf: false

odom0: /jackal_velocity_controller/odom
odom0_config: [false, false, false,
               false, false, false,
               true, true, true,
               false, false, true,
               false, false, false]
odom0_differential: false

pose0: /ugv_pose_from_air 
pose0_config: [true, true, false,
               false, false, false,
               false, false, false,
               false, false, false,
               false, false, false]
pose0_differential: false

imu0: /microstrain/imu/data 
imu0_config: [false, false, false,
              true, true, true,
              false, false, false,
              true, true, true,
              false, false, false]
imu0_differential: false

odom_frame: odom
base_link_frame: base_link
world_frame: odom

Sample UAV pose message:

header: 
  seq: 329
  stamp: 
    secs: 1493723176
    nsecs: 773633956
  frame_id: /bebop/odom
pose: 
  pose: 
    position: 
      x: 0.470266436343
      y: 1.16011254862
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: 0.0
      w: 0.0
  covariance: [1.0652132368969054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.1711349408952507, 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.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, 0.0]

I uploaded a bag file and sample messages of the three EKF input topics here.

My code is available in GitHub.

Thanks!

edit retag flag offensive close merge delete

Comments

Could it be that your world_frame in robot_localization_collaborative.yaml should be set to the map_frame and not odom. This is very similar to GPS integration.. I think... two separate EKFs, one is continuous, the other is fusing continuous+externally gathered pose data. See link text

bluehash gravatar image bluehash  ( 2017-05-02 10:25:02 -0600 )edit

Thanks @bluehash. I now tried setting world_frame to map_frame (both are set to map). In addition, I set publish_tf to true in order to have a map -> base_link TF. This didn't change anything (i.e. the trajectories are still identical). Any other ideas?

Omer gravatar image Omer  ( 2017-05-05 11:19:12 -0600 )edit

Hi! I have a very similar problem to yours. I'm using pose data in the map->odom instance of ekf_localization and it ignores my pose data. My pose data is being published in the map frame which has a well-defined transform to all other links. Is there anything I'm missing out on? Thank you!

Karthikeya Parunandi gravatar image Karthikeya Parunandi  ( 2018-04-12 16:02:30 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-06-28 05:17:01 -0600

Tom Moore gravatar image

Your UAV-based pose has a frame_id of bebop/odom. You need to provide a bebop/odom->odom transform, or the EKF won't know how to use the data, and will ignore it.

edit flag offensive delete link more

Comments

I have a very similar problem. I'm using pose data in the map->odom instance of ekf_localization_node and it ignores my pose data. My pose data is being published in the map frame which already has a well-defined transform to all other links. Is there anything I'm missing out on?

Karthikeya Parunandi gravatar image Karthikeya Parunandi  ( 2018-04-12 16:04:17 -0600 )edit

Ask a question and post your EKF config and sample messages, please.

Tom Moore gravatar image Tom Moore  ( 2018-04-13 06:37:43 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2017-05-02 09:55:05 -0600

Seen: 591 times

Last updated: Jun 28 '17