Archive for the ‘The Lab’ Category

June Autonomous Test

Posted by Pierce Nichols on 15 July 2017

On June 11, we took the boat out for another autonomous test. We fixed the earlier issues with the rudder, so it steered more or less in the right direction. Here's what our course looked like:

2017 Jun 11 Test

2017 Jun 11 Test

The blue placemarks are the position and speed reports while the red stars are our waypoints. Our first mission of the day was to film our chase boat repeatedly approaching the test boat with the onboard 360 degree camera. This is to support our work developing optical obstacle dodging so we can let the boat out in the busy waters of the Puget Sound without a chase boat shadowing it. While I think this is the right approach, it's the wrong camera. At the point where the test boat needs to take evasive action, the chase boat is only a dozen or so pixels wide. This isn't enough to generate a good signal out of any algorithm, so we're going to take a different approach and use multiple cameras.

After we did all of our video test cases, we did a circuit of the waypoints from last time. That went well, although we did discover that we still have issues with our compass steering. There are three things wrong that caused use to make those curved courses.

  1. I forgot to add the call to the function that sets the magnetic declination. The result was a westward error of ~16 degrees
  2. The compass was installed about two degrees right of the boat centerline.
  3. There is a small heading dependent error

After that, we did a test of our virtual anchoring (the waypoint marked 'ANCHOR'). We can't really call it dynamic positioning, because we don't have that kind of control authority. The boat did its best to maintain the designated point, which is good enough for now. Once we were satisfied with that, I set it to make another circuit of the waypoints. However, shortly before reaching the third waypoint, we noticed that the boat was slowing markedly. Rather than risk a breakdown in the water, I took over manual control and brought the boat back into shore.

Looking at the data, it looks like we had a couple of problems. First, our little trolling motor is designed to propel a heavier boat at a lower speed. As a result, it's not drawing full current and we're getting less speed out of it than we would have with the right prop. Second, our batteries are nine years old (beggars can't be choosers) and are weak. The fact that we're not drawing full current covered this up until this test because it was longer and faster than our previous ones.

We were looking into buying a new set of batteries, but that would take money away from the sail demonstrator, which is closer to our real intended path. Our original battery donor offered us a new set, so that will put the power boat back in action without much in the way of money or time. However, we will probably not put it back into the water until we're ready to test the obstacle avoidance stuff we've been working on.

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.


Tag Cloud