The Pixhawk autopilot that comes with our BlueROVs is intended to run ArduSub, but you could potentially run a different firmware if you want to write one yourself. Most likely it would be easier to make modifications to ArduSub than making a new firmware from scratch though.
I don’t have much personal experience with ROS, but there’s a mavros package that allows you to send and receive mavlink messages while using ROS. ArduSub communicates and is controlled using mavlink messages, so you should be able to use ROS to do at least most things you can normally do when controlling the ROV through a ground control software like QGroundControl.
I’m not certain what you’re asking here. My best guess is that you’re after the mavlink protocol, but you shouldn’t need to understand all or even most of it - you should be able to search for and use messages from the common message set as you require particular functionality (data or control), and sometimes from the additional messages provided by the ardupilotmega message set.
thank you very much for your kind answer.
So I understood mavlink messages are used to transfer data between topside computer and companion computer, and in order for me to use it, [pymavlink] or other api should be used depending on my needs.
Mavlink messages are used to transfer commands and sensor data between the ‘topside computer’ and the Pixhawk. The companion computer makes that possible, and also provides additional functionality like the companion web interface and the video stream, along with some other things.
I’m not sure - I haven’t used it before. Perhaps @patrickelectric can provide more information, but I’m not certain.