We are trying to provide an external control to the system. We can't use ArduPilot omni controls for navigation in autonomous because it does not allow our boat to move sideways. We needed another option to send PWM values to the ArduPilot firmware, and our plan was to put down waypoints in ROS2 and send PWM values direct to ArduPilot on a bridge. (DDS or MAVROS)

I have been googling the difference between these two systems for use in a robotic boat. I've seen posts like the one below comparing the two, but they are all at least a year old. https://answers.ros.org/question/384837/how-to-build-a-drone-with-ros2-and-indoor-navigation-function/ https://www.youtube.com/watch?v=qhLATrkA_Gw&t=2s

Has DDS updated to the point where we can send multiple commands at once to the flight controller, or to the point where it is comparable to MAVROS?

Update: I have found the MAVROS GitHub and see that it supports ROS2. https://github.com/mavlink/mavros I do not yet know what this means for whether MAVROS or DDS is better for our case.


1 Answer 1


External control for a skid-steer or diff-drive rover using DDS with ArduPilot was added here: https://github.com/ArduPilot/ardupilot/pull/25204.

It does not support omni-vehicles, but could be extended to do so. If you would like the feature added please raise a feature request on https://github.com/ArduPilot/ardupilot and include ROS or DDS in the topic.

There is also support for simulating boats in Gazebo with ArduPilot, so it should be possible to create a model for your vehicle to test the controller, but we'd require more details of its thruster set up first.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.