New ROS Enhancement Proposal for Marine Robotics

To start off the discussion, I wanted to make note of a few things:

  1. REP 103 currently includes a section noting the use of suffixes for frames that deviate from the existing ROS conventions (e.g., _ned). Instead of describing a completely new convention, we could instead standardize the use of the “suffixed” frames. The benefit is that there isn’t any confusion regarding which convention is used.
  2. There are some folks that use NED for Cartesian representations of geographic locations for surface vessels. Is this the standard? If so, it may be valuable to include a separate section distinguishing underwater vehicles from surface vessels.
  3. The coordinate frames used in marine robotics largely overlap with those described in REP 105. However, @rolker mentioned that tides can add a bit of difficulty into their use for surface vessels. In particular, he proposes:

I’ve thought about this for surface vehicles where tides add an extra bit of difficulty. I haven’t tested the idea, but here are some suggestions:

  • have “map” be relative to a chart datum, so it can be used as the frame for S57 data
  • for gps data with altitude relative to the ellipsoid, have a “map_ellipsoid” frame with “map” as the parent.
  • have frame to express tides, such as “map_tide” that has “map” as a parent. A mechanisim would be needed to update the map_tide to map offset
  • “odom” would have “map_tide” as parent
  • an optional “base_link_no_heave” could exist between “base_link” and “odom” for platforms where heave is measured.

EDIT: Updated to use Roland’s handle