Archive for the ‘The Lab’ Category

Hackerboat Autonomous Test

Posted by Pierce Nichols on 17 April 2017

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.

2017 Apr 09 intended and actual course.

2017 Apr 09 intended and actual course.

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:
Leviathan Security

If you'd like to help us get around the world, please contribute to our Patreon:

October 9th Test

Posted by Pierce Nichols on 28 October 2016

This was our smoothest test to date, and as a result, our shortest. We had two primary goals:

  • Demonstrate that our new hardware stack works as intended
  • Steer a given compass course

We succeeded in both, and found that we could easily tune the steering PID loop to steer a straight course. We also had our operations streamlined to the point where there was very little standing around and figuring out what to do compared to previous tests. However there were a couple of flies in the ointment. First, my R/C controller started sounding its range alarm at what looked like a quarter mile, which was not as far as I had expected. Second, I made a coding error in the latest revision of the code that resulted in a blank GPS log, so no map trace of this test.

The ease of running this test means that we can test pretty much any weekend day that has good weather. We're working hard on getting our waypoint navigation and telemetry code working for our next test.

Hackerboat Progress

Posted by Pierce Nichols on 26 August 2016

Since the last update, we've gotten in the water one more time (in late July) and we've made some substantial design changes. First off, here's a video of my talk at Toorcamp that Alex was kind enough to put together:

During our July launch, we discovered a pretty serious limitation in our comms -- we lose connection on the 900 MHz at anything over about a quarter of a mile. You can really see it in our composite map from our October, June, and July launches:

Hackerboat Test Map

The placemark farther from the shore, at the top of the ramp, is our shore station for the October and June launches, while the one out on the point was our ground station in July. If you measure on the map, you will see we maxed out about a quarter mile from the shore station, which is a massive bummer. OTOH, we were able to bring the boat back to the dock under its own power in July, which was a nice change.

One of our big takeaways from this was that our system needed some major overhauling, and we decided to redo it from the ground up (again). Among other things, we decided to move the REST interface off the boat and on to a control server. This allows us to more easily use cellphone and satellite communications, since most of those systems are designed to exclude inbound communications. The biggest changes are as follows:

  • Remove the Arduino and go to a Beaglebone-only system. The BBB has the I/O capability to carry the whole load and it removes a major complication in the software. The difference in power consumption is not that high at the stage we are operating at today.
  • Add a cellphone module. We are going to be using an Adafruit Fona in the longer term, but in the shorter term, one of our supporters has promised us the use of a portable hotspot.
  • Replace the Wifi dongle with a Ubiquiti Nanostation. I already have the NanoStation, and this should end our odd dongle problems and provide a network access point for the onboard network. To this end, the new motherboard includes a boost converter to provide 15VDC PoE to the Nanostation.
  • Reconfigure the enable/stop function to be driven by a latching relay in a new power distribution box. This arrangement allows us to make the stop button enact a hard cut of all motor and actuator power.
  • Power distribution box with per-system power switches
  • Beaglebone reset switch and console accessible from outside the drybox.
  • New drybox and connectors. We'll be using SP-13s, since they are about the least expensive waterproof connectors available on eBay.
  • IMG_20160820_171611

  • Add an RC input to give us finer manual control. We bought a Turnigy 9XR with an FrSky XJT/X8R radio combo. Among the nice features of this radio, it has a serial output called S.BUS, an RSSI output, and telemetry back to the shore unit. We chose this one because the 9XR's firmware is open source and it has an embarrassment of buttons, switches and knobs.
  • Mast-mounted omnidirectional status lights. This also neatly solves our running lights issue for longer range operations.
  • The control server will be in the cloud, and the boat will contact it for commands.
  • Use of KML as our internal representation for waypoints. This makes designing the interface super easy, since we can use a Google Maps plugin directly. The resulting files can be readily managed with github.

Our top priority right now is getting the new hardware squared away, along with its software. We're also going to try to get the next rev of the sails done before mid-September. This is especially important because I realized I made a serious math error that overestimated the necessary power of the tail by a factor of four or five. Redoing it means I can get the tail right this time.

I will also be at XOXO in a couple of weeks and at the Open Source Hardware Summit at the beginning of October -- if you are going to be there, please come say hi. Hackerboat will also have a booth at Seattle Mini MakerFaire on Sep 17-18. We'll definitely be outside, although not quite sure of where yet.

Hackerboat launch!

Posted by Pierce Nichols on 26 June 2016

We launched the boat for a test on Saturday, 25 June 2016. I'll write bigger post later, but in the meantime, here's some awesome drone video shot by 3ric.

This is a bit late in coming, because Makerfaire ate my brain and there were some temporary blog issues. Toorcamp is next week and we're hoping that we can get some nice autonomous trips in while we are there.

At the end of our last episode, we had filled in the rough areas around the hatches, sanded, and primed the boat. The 'bright orange' paint looked a bit more ketchup red in the can, even after thinning for application. This, as it happens, is also the first time I've gone about thinning paint before applying it, and I'm kicking myself for only now discovering what a difference it makes.

Getting two coats of the orange paint on the boat stretched over a couple of weekends. This is because we needed to hand-sand between coats and because getting the boat outside while it's sunny turned out to be a bit of a production. At the end of painting, we even put a nice black diode stripe on the bow so we can tell what direction it's going even if it's several hundred yards away. That was a problem when we took it out last October.

That's enough talking; here are some nice pictures of the boat after we were mostly done:





Tag Cloud