Ask Your Question

Selecting map/odom frames for GPS/IMU

asked 2016-05-19 18:14:22 -0500

Venkat Ganesh gravatar image

updated 2016-05-20 11:50:25 -0500

Hello forum,

I am working on a project where I need to combine LIDAR scans and camera images from a drone. An INS mounted on the drone provides GPS and IMU information. I read REP 105 and tf tutorials multiple times and explored ROS answers on these packages. I believe I understand the concepts but I have some doubts in terms of application.

Let's say I have a camera_frame, lidar_frame and imu_frame, all of which are attached to base_link. I can infer the transforms from these frames to the base_link since I know their offsets from the base_link origin (robot geometrical center).

As per my understanding, I can avoid discrete jumps due to GPS by setting world_frame = odom. Also, I set the imu_frame = odom.

Please verify this statement: Since I know the transform between imu_frame and base_link, I also know the
odom->base_link (since imu_frame = odom).

  1. Does this also means I know where my robot is in the world_frame (since world_frame= odom)?
  2. How do I use the map frame (if at all)? If I am using the GPS, should I be using world_frame= map?

I know I might be wrong with my understanding of these concepts and their application. I'd really appreciate any input from the good folk here at ROS Answers to help me better understand these fundamental tf concepts. Thanks!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-06-14 03:50:28 -0500

Tom Moore gravatar image

As per my understanding, I can avoid discrete jumps due to GPS by setting world_frame = odom. Also, I set the imu_frame = odom.

No. What the documentation is trying to get across is that data that is subject to discrete jumps, like GPS data, should not be fused into your state estimate if your world frame is set to odom. Changing the frame to odom won't fix the behavior of the GPS data. However, if you are only running a single EKF instance and your world_frame is the same as your odom_frame, then it won't hurt anything. You'll just have to deal with your position jumping around.

Also, do not make the frame_id of your IMU data "odom." Create a base_link->imu transform, and make the frame_id of your IMU data imu.

There are numerous ROS answers questions regarding the map/odom/base_link frames and the way they're handled by robot_localization:

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-05-19 18:14:22 -0500

Seen: 1,292 times

Last updated: Jun 14 '16