Advice on autonomous boat

I am new to this discussion board and ArduPilot in general. I am working on an autonomous boat for my university research, that sends a few water parameters back to a server for real-time access. One of our goals is to have this boat run for several days, by mainly relying on the current of the body of water that it is in for propulsion, and only using an onboard motor to prevent collision or to correct trajectory if it strays to far from a predefined path. I am using a Navio2 shield for raspberry pi 4B to run Ardupilot alongside ROS.

Does this stack sound feasible for what I am asking? If so any advice on integration between ROS and ArduPilot to accomplish these tasks?

Any help is appreciated!


Hi Castillo,
Concerning the Ardupilot software and hardware taking in account that you are using good quality board like Raspberry and Navio I would say that you have a pretty reliable and stable system, I never used Navio but I read really good reviews about it. I use to fly for hours non-stop with Matek FCs and never had any issue so far, this to say the Ardupilot is stable. To be honest I never had a system running for days so I can’t give you a good feedback about it but if you have access to a swimming pool, try it there for a couple of days or more.
BTW I am also working on a boat project that will need to have a fleet of autonomous vessels running non-stop for months and I am also thinking about using Navio for that so, if you can update me about your progresses I will thank you a lot


I would always go for a seperate MCU based FC with a companion computer for many reasons.

  1. Freedom of choice: You can choose both components to your liking/needs. Navio only works with a Raspberry Pi and the Emlid OS image. Same goes for periphals like GPS. No chance to change to a modern chipset with a Navio, except connecting it to the only UART.
    If you need a companion computer with more processing power or just another OS (ROS on Ubuntu i.e.), you are stuck with RPi and Emlids Raspbian OS.

  2. Connectivity: A MCU based FC has more possibilities to connect further components. More UARTS, some have CANbus etc.

  3. Ease of use: Everything is much easier to do with a MCU FC. Firmware updates take seconds. No fiddling around with network interfaces/wifi settings/ssh sessions to just connect to the FC. Navio has no USB client mode and no preconfigured hotspot. A web gui for all the settings, reboot, etc would have also been a good idea.
    With Navio you have to know something about Linux, networking, remote access, file operations, use special Navio related config files/tools all just to get a working FC. I answered countless questions regarding those topics over at the Emlid forum.

  4. Reliability: The chances of something going wrong on a computer based FC like the RPi/Navio combo are much higher. Even it is just a corrupted SD card, you got no FC and no companion computer. There is still no proper way to shutdown the RPi/Navio combo, except through a ssh connection. Every hard power cycle might corrupt the SD card.

  5. Support: The Emlid Raspbian OS image has not been updated for over a year. Their argument is, the user can download and copy new Ardupilot versions by themselves, if they want to use “less stable” versions. All links to the Navio2 have been removed from the emlid website. You can still find it in the store, but there is no link to the Navio documentation. They made a new site, where you can find the links to the documentation. I do not get, why they hide the documentation like this, given that the Navio is a relativly complex device to use.

  6. Personal experience: I never had a Navio2 perform the same as a MCU based FC. GPS reliabilty was always lacking. Compass calibrations would fail, while they worked without a problem with a MCU FC on the same vehicle in the same spot. Corrupted SD cards just after arriving at the field, because the of an accidental power cycle during lipo connection.

1 Like

You are right!!
I use the Matek for years like F765 and more recently the H743 and these FCs are bulletproof. All I bought is working so far.

Ok, gotcha. Is there any advantage for going with a pixhawk Cube Purple over something like the Matek H743?

Cube Purple is a nice compact package if you want a form factor like that with connectors and a housing but it’s an F4 processor with 1 IMU. 2 generations back from the H743 for the processor and the later has 2 IMU’s. Quite a few other integrated features also. Cube Orange would be a better comparison in some respects.

Ok great, thanks for the help!

One last question - Any advice on having the propulsion only turn on when it begins veering off course, or to avoid an obstacle? Is this something best handled in ROS, which feeds velocity commands over to the Autopilot?

I would try if it works by setting the waypoint speed close to the speed of the current the boat is moving with.
This might cause the autopilot to only do course corrections. But someone like Randy @rmackay9 might have more to say to this.

For custom navigation I think putting the boat in Guided mode and then sending it velocity commands from either ROS or Lua scripts should work.

1 Like