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

Revision history [back]

click to hide/show revision 1
initial version

As soon as you appropriately attached a tf frame_id to data. There is no longer any difference between an NED frame and an ENU frame. All data can be transformed in or out of any connected frame.

If you have a data source that works in NED, you can just create the frame which is attached to the tf tree to orient correctly for that sensor. The best example of this is that cameras typically have an *_optical frame attached which is Z forward as that's how vision algorithms users thing about things. But once that frame is attached to the tf tree. It will be transformed into any working frame you desire and no process downstream will care if the original frame was NED, ENU, or Z forward as long as the data is accurately registered with the coordinate frame it's labeled with and that's attached to the tf tree.

If you want to process all data in an NED frame for a flight controller just attach a frame to the standard base_link that's rotated appropriately to be my_frame_NED and transform any data into that coordinate frame.

My point is that you should not try to create a new separate tree with parallel versions of every frame. As long as you have everything well connected in tf rviz and all the other data processing will not care if that data started with NED or ENU.

For adding an NED sensor and an NED processing frame you'd just need the following two additions to the tf tree.

map -> odom -> base_link -> (many frames) -> my_ned_sensor_frame 
                                \_ my_custom_processing_frame (maybe NED)