The 2nd of October we held a workshop inside Breaking The Surface conference on the Adoption of Conventions in the Underwater ROS Community. Almost thirty attendants from 16 different organizations participated in it. For all those who could not participate, but that are interested in the topics that were discussed, we present here a short summary of what we talked about.
The workshop had the following structure:
- Introduction and participants presentation.
- Survey: How do you use ROS underwater and what you miss from it?
- Open discussion (using the survey results as a starting point).
The discussion focused especially on the standardization of low-level messages that are specific to the marine environment, and also on the need for simulators and various tools.
- Proposal to define new sensor messages for marine related sensors like: DVL, SVS, CTD, modem, USBL, sonars… Consider to put them inside sensor_msgs or in some underwater specific package (e.g. marine_sensor_msgs).
- Proposal to define missing control messages like: Thrust, Waypoint, List of Waypoints, …
- We also talked about other missing messages, that are not only marine related, like: landmark based maps, navigation, vehicle/mission status, etc.
- uuv_simulator looks promising but no participant uses it in their daily routine. Problems defining dynamic parameters and issues between NED (i.e., North East Down standard underwater frame) and ENU (i.e., East North Up, standard Gazebo frame) were commented.
- Problems to simulate perception sensors like sonars, acoustic communications, underwater images were also discussed.
- There is no “generic” solution (i.e., stand alone package) to perform a dynamics simulation with or without Gazebo. Only UUV_Simulator plugin and several custom packages.
- Calibration tools (e.g., TFs, Magnetic Compass, DVL, Controllers …), are missing but will be easier once low level messages are standardized.
- Lots of gateways requested: ROS-MOOS, ROS-DUNE, ROS-MATLAB…
- Mission tools: There are no standard tools to define a mission.
- RViz plugins for marine specific sensors like DVL, Side Scan, Imaging Sonars, … should be done.
- Solutions for checking node status
- Create a list of typical safety errors related to the underwater vehicles to be checked (as a guideline).
We agreed to create a public repository where we can start defining the proposed messages. Once there is agreement on the messages we will decide whether to add them to any existing package (e.g., sensor_msgs, nav_msgs, …) or whether to create one or more new packages.
This same discussion repository can be used to create some safety guidelines: what a checklist should include, which dangerous situations can be detected automatically and how they can be handled…
This package has been created at: https://github.com/udgcirs/marine_ros_conventions_discussion We encourage everybody to check it and add their comments, issues, pull requests, … We need as much feedback as possible to make it complete, generic and useful for the community.