ROS2 interface definitions for marine robotic systems. This package provides standardized message types for hydraulic control, propulsion, and I/O systems commonly found on ROVs (Remotely Operated Vehicles) and other underwater and autonomous ocean platforms.
RoShip (Robotic Ship) is a collection of standards and supporting software packages for operating robotic systems in marine environments. This interface package contains message definitions organized into domain-specific sub-packages:
- hydraulic_interfaces - Messages for hydraulic valve control systems
- io_interfaces - Messages and services for analog outputs, digital outputs, relay control, raw sensor data, and channel triggering
- propulsion_interfaces - Messages for thruster and propulsion systems
These messages follow ROS2 best practices and conventions:
- Generality: Messages support a wide variety of hardware implementations
- Flexibility: Variable-length arrays allow representation of systems with any number of actuators
- Standards Compliance: Follows ROS2 Message Conventions
- Simplicity: Core messages are intentionally minimal; hardware-specific metadata should be published separately
cd ~/ros2_ws/src
git clone https://github.com/k2oceanic/roship_interfaces.git
cd ~/ros2_ws
colcon build --packages-select roship_interfaces
source install/setup.bashroship_interfaces/
├── hydraulic_interfaces/
│ ├── msg/
│ │ ├── Valve.msg
│ │ ├── ValveStamped.msg
│ │ └── ValvePack.msg
│ ├── CMakeLists.txt
│ └── package.xml
├── io_interfaces/
│ ├── msg/
│ │ ├── RawAnalog.msg
│ │ ├── RawAnalogArray.msg
│ │ ├── RawAnalogStamped.msg
│ │ ├── RawDigital.msg
│ │ ├── RawDigitalArray.msg
│ │ ├── RawDigitalStamped.msg
│ │ └── RawPacket.msg
│ ├── srv/
│ │ └── ChannelTrigger.srv
│ ├── CMakeLists.txt
│ └── package.xml
├── propulsion_interfaces/
│ ├── msg/
│ │ ├── Thrust.msg
│ │ ├── ThrustStamped.msg
│ │ └── ThrustArray.msg
│ ├── CMakeLists.txt
│ └── package.xml
├── LICENSE
└── README.md
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
When proposing new messages or modifications:
- Ensure compatibility with existing ROS2 conventions
- Maintain hardware-agnostic design where possible
- Document design decisions and use cases
- Update this README with message documentation
This package is licensed under the Apache 2.0 License. See LICENSE for details.
- Kristopher Krasnosky - support@seaward.science
1.0.0 - Initial stable release
Developed by Seaward Science.
- Dr. Kristopher Krasnosky (lead software engineer)
- Jake Bonney