Down the line I want to be able to interrupt the BlueBoat while already on a mission, and direct it to go somewhere else. I want to do this by adding a companion raspberry pi (with its own antenna to receive new GPS data/way points) to the BlueBoat. The idea is the antenna would receive new coordinates, the companion pi would process that data, and then send a wp command to change the mission on the BlueBoat’s pi using mavproxy/mavlink for communication. The boat is running the stock Navigator + Raspberry Pi with ArduRover.
Right now I am at the start of the project, and I’ve never used mavproxy or mavlink before, so I’m mostly trying to understand the best way to send wp commands while the autopilot is already running. I would really appreciate any advice if there’s anyone who’s done this before.
Sounds like a cool project! I would point out that BlueOS is built from the ground up to make integrating custom applications easy, so a separate Pi to send GPS commands would be very redundant!
Instead, you could develop a BlueOS extension that sends whatever new waypoints as desired, from the onboard existing Raspberry Pi…
However, if you have a communication link to the system, you can also accomplish your goal of routing to a new waypoint with the default ArduRover software and either QGround Control or Cockpit as a GCS, simply by right clicking and choosing “go to” at any time.
So I guess the question is, how are you determining the “somewhere else” you’d like the vehicle to go?
Thank you for the response and advice Tony! I’m working on a small part of a larger project to look at swarming with BlueBoats. My main job is to deal with the GPS data from my boat and accepting new way point commands from other boats or computers. I figured the easiest way to get the GPS data from my boat would be to unplug the existing GPS from the navigator board and slip a raspberry pi in between them, before sending the data back to the navigator board. I think that raspberry pi is needed for the purpose of sending my location and receiving the location of other boats through the extra antenna that I’m adding, so it would already be on the boat anyways. As for actually determining where else I want to the boat to go, I’ve been told that’s a problem for later, I just need to figure out how we will input a new location once we find one.
I thought about doing the BlueOS extension at the beginning of my project, but I’m not sure that I have the skills to make one. The coding I’ve done has only ever worked with the robot itself, not an OS. I wouldn’t be opposed to trying that method, since it would probably be easier for the swarming project once I actually get it working.
I’d strongly recommend against this! It would be akin to building a robot to sit in a car and drive it, rather than programming the computer of a car that already has “self-driving” support. Think about scaling for your swarm too - easier to build standard BlueBoats and enable your application solely through software setup!
There is only one way to find out! In the age of llm AI, I think everyone has the skills to make a BlueOS extension. Lately, it has been taking me only minutes to make one! By pointing your AI at the documentation, and examples that talk to the GPS (via the Mavlink2Rest interface, a muuuuch less complex way of getting vehicle data like gps position from the autopilot with no configuration changes), you’ll be up and running in no time. And if you have issues, we’re happy to support you here on the forums!
Each BlueBoat has an IP - in your swarm they will need to be configured not to conflict. An extension could ping all devices on the subnet, and then hit up the mavlink2rest interface of each one to create a list of where the other units are. Each vehicle would need to have its ID changed too - checkout this reference doc for multi vehicle operations config information.
Pymavlink in your extension should allow you to command vehicle position, change flight modes, and arm/disarm the vehicle.
I’ve got a background in swarms so would love to see a BlueBoat based one! How many vehicles are you planning to use? Anything less than 5 doesn’t seem much like a swarm imho….