Openocean-messages: First class message interoperability

Based on discussions at OCEANS26 Monterey, I’ve started a project openocean-messages: GitHub - openocean-software/openocean-messages: Generic messages for ocean system and tools to generate native formats · GitHub

This project aims to provide a subset of common messages to improve interoperability between marine robotic systems, regardless of middleware or programming language.

In this repo are generic messages (defined in Protobuf) for ocean systems and tools to generate native formats from these messages.

Messages are automatically converted to the desired output format as a first-class native type, so Protobuf is not needed at runtime for non-Protobuf output types (e.g. ROS Msg).

The output formats currently supported by this project are:

  • Protobuf

    • C++ (built-in)
    • Python (built-in)
    • Rust (prost)
    • C (nanopb)
  • ROS2 Msg

    • Conversion to/from Protobuf optional.
  • LCM types

    • Conversion to/from Protobuf optional.

Feedback is extremely welcome at this point, both architecturally, but also for desired output formats, and message definitions.

So far the message definitions are very thin: I’m working on defining a common set of messages between navigation and a short-horizon decision engine (IvP Helm): openocean-messages/src/openocean/messages at main · openocean-software/openocean-messages · GitHub

1 Like