0
$\begingroup$

Rosanswers logo

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!


Originally posted by Venkat Ganesh on ROS Answers with karma: 57 on 2016-05-19

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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:

http://answers.ros.org/question/222702/how-to-use-resulting-map-odom-frame-data-from-ekf-filter-of-robot_localization-package/

http://answers.ros.org/question/203989/map-frame-from-robot_localization/


Originally posted by Tom Moore with karma: 13689 on 2016-06-14

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.