Part one of the project. I decided to use ArduPilot Rover as the software ecosystem , at least initially, since it is very mature and has already got autonomous sailing functionality built in.
Before starting on the sailing boat, I decided make an autonomous electric boat to master the basics. The electric boat was actually constructed from foam board and I didn't initially expect it to survive very long, but in fact it has survived for quite a while now. Pic attached. I called the boat Zippy. Here is a video of Zippy in action.
The hardware for Zippy consists of :
- A Flight controller of the type used in quadcopters. In fact Ardupilot is very good in the range of flight controllers it will work with.https://ardupilot.org/copter/docs/common-autopilots.html. I used an OpenPilot Revolution ("Revo") which I was given a few years ago and never used. I should probably get a flight controller with an SD card at some point, though it should be possible to attach one to the Revo via a spare SPI port that is used for the onboard telemetry link that was never fitted. The Revo has a 3d gyro, 3d accelerometer, a 3d compass and a barometer, and an STM32F4 mcu. Rover is much less computationally expensive than a quadcopter and is certainly adequae for the task. Since power use will be critical, it may be necessary to go to a lower power microcontroller such as the STM32L4
- Telemetry radio. This is used to communicate to the ground station software. I used a pair of 3DR "Sik" telemetry radios.
- GPS. Ardupilot will automatically figure out what GPS is attached. Currently I believe it is a NEO-6M, but it would be worth trying later ones which should provide more accurate position, especially since the pond I am currrently using for testing is quite small.
- RC system. I used an Frsky D4R-II receiver, since the Revo is only set up to use PPM RC receiver input. I hope to try to get it to accept the "SBUS" inverted serial protocol at some point too.
- Electric motor. I used a 1000kV "inrunner" brushless motor with a P35 style prop. Actually this is a lovely motor for this task and I would love to get another one. I think it is a Keda motor. http://kedamodel.com/product/b28.html
- Electric speed controller. Ideally a boat speed controller should have reverse but currently an aeroplane speed controller is used. Lost the label, but think it is a Turnigy 20A speed controller.
- Voltage converter. The Battery used is 12 volt so an efficient way to convert to lower voltage sis required to power the flight controller, rc receiver, GPS etc. I originally used the output of the speed controller but it eventually overheated and expired on me!
- Battery. I used a 2200 maH 3S "Lipo" battery. These size of battery are ubiquitous and provide a good running time on one charge. I
Zippy has been out sailing on the lake quite a few times now. I have been using the APM planner as the Ground station. It looks like APM Planner may be near obsolete, but I am using an old 32 bit netbook at the lake with the Desktop version of Raspberry Pi OS installed. I will have to try the alternative Mission Planner, but it requires Mono to run on Linux and is another hurdle. There are other GCS about too. I may also try QGroundcontrol.