I discovered the ArduPilot project after a couple of months working on a self-made ROV, based on a Raspberry 4 and an Arduino Nano for analog sensors management. I haven’t worked on the software implementation yet, and ArduSub might be of a great help, but a lot of rework would be required for that purpose :
The on-board control software is going to run on the raspberry itself, I am not planning to buy a Pixhawk. The raspberry is connected to an IMU, Arduino and to the motors controllers with its GPIO ports
The two main thrusters are mounted on rotating axes (driven by stepper motors) and a degree of freedom is missing (lateral translation), which implies some rework on the motors control algorithm
I was thinking about developing a web interface for ground control by opening a web server on the Pi, so that I could design it to be used on either a computer or a smartphone even with a VR headset (using a gamepad), I’m not sure whether the QGroundController is suited for this
I’m aware that it could represent a lot of work, but as I developer myself this should be in my skills.
It might also be preferable, though, to simply restart from scratch, depending on how much ArduSub is relying on the usual configuration that uses PixHawk, a companion computer on Pi3+ and a mavlink communication.
What would you guys recommend? Did you heard about some similar projects in the past that could be of any help?
Yes, yes I do! And in fact, it sounds like you might be able to help with my project!!! You should check out this thread: Advice for using/hacking ST16 for Fathom ROV So while the thread starts off as simply how to use the ST16 controller, it has morphed into a lot more. Including some pretty detailed descriptions of the two main open source ROV platforms out there. ArduSUb utilizes the Pi, but so does the Fathom. And while technically not open source, much of the information (maybe even all of it) is out there. Check it out and then post up questions. I am not a developer, but I have been studying it and can possibly give some insight.
Anyways that thread goes into the OpenROV platform, the ArduSub platform, and trying to repair a Fathom platform. A cross between the Fathom and the ArduSub sounds like what you are looking for. But the OpenROV platform utilized a really nice web interface. I suspect the Fathom is actually mostly web based, using the app as a menu interface.
Yep, OpenROV was another option I have been considering. I left it aside as I noticed the project has not been maintained for quite a while, and it lacks documentation and illustrations compared to the ArduSub, which also seems to offer more features. But after a second look, openrov software appears to be closer to my architecture and easier to dive in as the source repo is much smaller, so that’s worth giving a try, picking up some useful features I’d like to keep from the ardusub if any. It would be cool if the OpenROV GUI is already adapted for smartphone screens, I’m not sure about that.
I’ll keep this updated when I make some progress - I need to move forward on the hull design in parallel.
You could host a web GCS on the pi itself. Check out MAVControl and MGroundStation for examples.
MGroundStation has basic MavLink communication and basic joystick support in a PR. It lacks video support, which needs some WebRTC investigation to get working properly.