I am trying to realize an autonomous drone and I would like to test my scripts and their integration with the BlueOS software before committing to any hardware, just a proof of concept before continuing.
I would like to know whether you believe that an autonomous drone can be realized using BlueOS and Ardusub, I’ve seen a few discussions on the topic and I believe so.
However, most importantly, I would like to ask whether someone has ever tried to compose and install the whole BlueOS software inside wsl on Windows 11 as I’m have some trouble and I’m not 100% sure of how the software works yet and what I should modify (if anything).
I would then like to be able to simulate the drone as a local network with Qgroundcontrol/cockpit and Ardusub if possible.
I have seen a few similar discussions but I don’t think that any of those really matches, I might be wrong.
Hi @Frandre47 -
It’s definitely possible to run ArduSub as an autonomous vehicle, with your own python code or a LUA script managing the operation of the vehicle.
However, developing and testing that with Windows 11 / WSL is going to be extremely challenging - I would strongly recommend against it. You can run BlueOS on a Raspberry Pi, even without a Navigator attached, and install a SITL (software in the loop) autopilot firmware, on the Autopilot Firmware page. From there, you can connect QGC or Cockpit, and “drive” your virtual vehicle manually, and test any automation approaches. If you insist on doing this in Windows, it may be possible to run BlueOS as a docker container in docker desktop?
This project will soon have a guide with more details on the process, at least with a LUA script. This github repo is where the relevant LUA script (and accompanying video recording extension) live!
Thank you so much! Both the video and the repo are surely related to what I’m trying to build and are a great starting point.
Thanks for the hindsight, I will refrain myself from trying pointlessly and just simulate the control software separately.
However, I now have a few more questions related to how BlueOS works. Looking at the source code I believe that is possible to have BlueOS and ArduSub installed on the Raspberry Pi 4 of the BlueROV2 and to have it run autonomously with no internet, tether or satellite connection (with the needed custom autopilot/mission scripts, similarly to what shown in the video you shared). Am i wrong?
I was planning on having a separate computer as the “custom autopilot scripts”, handling some type of live trajectory generation and collision avoidance. And then feeding the waypoints to ArduSub via the Raspberry Pi 4, utilizing MAVlink and using the guided mode of ArduSub. Maybe you also know whether this is a sensible (and valid) idea, worth experimenting or not.
I also have an unrelated question: from my understanding the BlueROV2 utilizes the Raspberry Pi 4 as both the main BlueOS and ArduSub controller board, am I missing something? There is no microcontroller in the picture, correct?
This is probably possible via a custom installation, but I’m not sure if anyone has done it through Windows + WSL. There may be some extra networking or VM permissions configuration required for the services to run properly.
As tony mentioned, that should also in principle be possible - BlueOS comes with ArduPilot’s SITL included, so if you’re able to get the network configuration working appropriately then you should be able to make the relevant connections to your control station software (like Cockpit or QGC).
Correct - ArduSub can run autonomous missions (although you’ll likely want/need some kind of positioning system to fully enable that).
As I understand it this is at least a somewhat common approach with ArduPilot vehicles more generally, although I’m unsure how much it has been done with ArduSub specifically. It may also be possible to use the Raspberry Pi as the source of trajectory generation, depending on what kind of information you’re processing or sampling to create that.
That is correct if you are using a Navigator flight controller board, as it basically just connects sensors to the pins of a Raspberry Pi running ArduSub (within BlueOS). Independent flight controller boards do have microcontrollers that run the autopilot firmware, so can offload some of the processing at the expense of some of the convenience (in which case BlueOS just connects to them).
I’ll let you, and the community, know if I am successful using the custom installation. I’ll keep this discussion updated and share all the installation problems/doubts and successes.