We finally managed to get something like an autonomous test off with the boat on Sunday, Apr 09, 2017. The boat mostly worked and our new chase boat arrangements worked great. However, we had some issues with the waypoint navigation so I can't really call it a success. We even got some nice 360 degree video of the TSV Disputed Right of Way cruising along beside the chase boat, Underworld. You can also see the large bulk freighter we took a quick loop around. We have a bunch of other video we need to edit as well.
As you can see from this map, things didn't go quite to plan. Our intended course is the yellow line on the map and our actual course is in blue. The thing we immediately noticed was that the boat fled the waypoints like they were radioactive. It took us a bit to clue in to this, so the boat ended up on the rocks just south of the launch ramp. Luckily, the 100' of floating line we attached to the stern of the boat for just this sort of event allowed us to pull it off. Since it's not a fast boat and it is tough, there was no damage except to the paint and our pride. Naturally, we had an attentive audience for the grounding.
Since the first waypoint is relatively close to shore (it's the more northerly of the two ends of the yellow line) and we initially ran into shore, we hypothesized that the issue might be that the GPS was reading wrong. Therefore, we deleted the first waypoint and restarted everything. The result was the long angled blue path... again, away from the waypoint like it was poisonous. However, you can see that there's an angle of about 16 degrees between the reciprocal of the intended course (in yellow) and the straight segment of the blue track. This is almost exactly equal to the local magnetic declination, and therefore means we're not taking it into account properly when setting our course.
Our mission logs tell the story of why we ended up fleeing the waypoints -- the polarity of our rudder was backwards. As a result, it steered away from the target course instead of towards it. The reason this resulted in the boat steering a reciprocal course is because the boat is programmed to steer in the direction that will bring it back on course the fastest. Obviously, this direction reverses as you pass through the reciprocal course. The result is stable steering... in exactly the wrong direction. Now that I know, I've written a functional test routine so we can test this on the actual boat in the shop before we lug it down to the water.
Another minor thing to notice is the apparent bouncing around on land. That's entirely an artifact of the GPS -- our boat was stationary on shore for about 20-30 minutes while we were waiting for the chase boat to make it from the marina at the south end of Harbor Island out to Don Armeni. It should serve as a warning to anyone for interested in using GPS for precise absolute positioning for autonomous vehicles -- there is a lot of noise in the signal unless you are using DGPS or the like. Not usually much of an issue out on the water, but it may be more problematic for ground and air vehicles.
The chase boat really freed us from a lot of operational difficulties -- we were not bound by radio range and we had the ability to fix difficulties. For example, we managed to tangle our catch line in the prop twice... the chase boat meant we were able to rapidly untangle it and return to testing. On the other hand, the logistics involved in getting the boat crew and everyone else lined up are non-trivial; it took six weeks to get everyone and the code all lined up. I think now that we've done it once the next time will be easier, but I'm looking forward to the point where the boat is reliable enough we can just send it out on its own and don't have to be out on the water with it.
The problems unearthed during the test are relatively trivial to fix. More important, however, is improving our logging and interfaces along with building a simulator so we can 'pre-run' our tests before we go out on the water. I've checked in a bunch of interface and logging improvements already and I'm working on the simulator. We'll start simple -- just integrate the rudder and throttle into a position from a starting point and make sure it does what we think it ought to.
I'll be giving a talk on Project Ladon at MakerFaire Bay Area in May. I don't know exactly when except that it will be some time on May 20 or 21 -- watch this space for more details.
Many thanks to Ratha for volunteering to bring Underworld out to serve as our chase boat.
None of this could happen without our sponsors and patrons. In no particular order:
If you'd like to help us get around the world, please contribute to our Patreon: https://www.patreon.com/hackerboat