DIY Robot-boat at AUVSI’s Autonomous Surface Vehicle Competition 2009
Posted by aonomus on June 24, 2009
So the major project that I have been involved in recently was working on an autonomous surface vehicle (ASV) that was entered in AUVSI’s 2009 ASV competition. Given a small team (6 people, 2 builders), under $1000, and about 30 days we built what would be considered a feat of bodging and hacks based on extreme ingenuity and resourcefulness.
Note that of the four people in the photo above, it consists of (from left to right) a comp sci masters student on exchange, a political science student, a broadcast technician, and a chemistry/biology student.
So the idea of the ASV competition is to create an autonomous boat which can complete a series of tasks: speed gates (hold a straight heading at max speed), buoy navigation and obstacle avoidance (vision system), dock with target (GPS, vision system, etc), fire at pirate targets (with a water gun), and retreive a life ring buoy. Entrants into the competition are evaluated on design, presentation, cost, weight, systems, and methodology amongst other criteria, as well as the crafts ability to complete the course. Overall most universities took similar approaches with relatively high end equipment and sensors due to sponsorship, time frame, and professional support whereas our craft (the University of Toronto entry) took the exact opposite approach, doing it as fast, and cheap as humanly possible.
Our boat initially took shape as a catamaran design to increase lateral stability (monohulls such as kayaks are designed to turn quickly, but require a human to stabilize them). While the pontoons could be purchased, in the interest of minimizing costs and giving ourselves flexibility, we fabricated the pontoons ourselves using extruded closed cell polystyrene foam (used for insulating basement foundations amongst other things). Essentially, rough shapes were cut, layered, glued with construction adhesive, and then shaped using a hot wire.
In the photo above you can see we roughly eyeballed the shape of the hull as everything was/is meant as proof of concept that the foam can be used for flotation, but given time and resources a little more effort could have gone into the design. For a frame we decided another common material, ABS drain pipe and plumbing fittings which proved to be more than sturdy enough to handle the weight of the rest of the craft above it or any forces encountered during movement and steering.
Once we had the pontoons cut and shaped and mocking up the rest of the frame for floatation tests, we found that simply sealing the foam with some sort of epoxy would not give the durability we wanted, so the next step was making the boat durable enough to take some serious hits. After having clad it in aluminum and added a gratuitous amount of sheet metal screws for looks, we added stair nosings (also known as corner guards) as bumpers to decrease the effect of any impacts with solid objects.
At this point the boat started to look more like a battleship from the waterline. Regardless we powered on with the build, deciding on a large Pelican case for the entire electronics package. Additionally our boat would only have a single motor for propulsion (a downfall on our part, but more on that later), a Bass Pro Shops trolling motor. The trolling motor after disassembled down to just the motor + shaft was mounted in a set of bearings which fit the shaft, and plumbing fittings perfectly, and in the above photo the steering shaft was already mocked up.
In the electromechanical realm, we had to design a directional steering rig with a trolling motor, controllers and interface, as well as an optional (but more or less required by necessity) remote control system, and both wired (physical switch) and wireless emergency stop system.
For driving the motors, I built my own motor drivers from scratch (right down to etching the boards) in a H bridge configuration using IRF540/IRF9540, unfortunately under a 15A load from the trolling motor, the TO-220 packaged fets couldn’t dissipate the heat quickly enough, requiring a more robust and simpler design, however the original H bridge was retained for steering. The new simplified motor driver involved using a pair of relays to select direction, and 3 N-channel fets in parallel for more than enough current capacity.
Soon enough we had the entire electronics board laid out and mounted. Since space was readily available, we decided to show all the electronics and leave them relatively visible. The boards from left to right are the main propulsion driver, steering driver, motor controller with arduino, and emergency stop arduino.
The steering system was set up using a servo control, essentially a potentiometer monitors the absolute position of the steering shaft, and controls the steering motor in the correct direction until the direction required is reached. The advantage of this is that even if there is slippage in the gearing or if the force of turning changes the angle, the motor controller will correct for any changes in angle. We chose to use a windshield wiper motor with a worm gear drive so that there is no holding force required to maintain steering in a particular direction. Just to MacGyver it, the steering feedback potentiometer is mounted on a hockey stick (we have to make it somehow eh?)
Two interesting hacks were our wireless systems, namely the remote control, and wireless emergency stop systems. The remote control system was initially based off a $20 toy boat remote control and proved to be too short ranged for open water tests, however it proved to be a simple hack. The toy boat transmitter and reciever had the TX-2 and RX-2 chips in each and essentially had digital input and digital output allowing for direct connection to the motor control arduino. While it was a good hack, it had limited range (maybe 15ft in good conditions) and didn’t give proportional control, and later on site we decided to add proportional control via a proper 72MHz FM system (over the 27MHz AM system that we abandoned).
The wireless emergency stop system was a important decision, it had to be cheap, and still have good range with resistance to interference and/or jamming. Instead of a simple modulated carrier or being tied to the remote control system, we chose a quick and simple method. Cordless phones already use frequency bands that aren’t terribly busy, select open channels, and handle DTMF. In order for the emergency stop to be triggered, you would have to have the right frequency, modulation, and the correct DTMF tone to trigger it.
I built a DTMF decoder board connected to an arduino which also simulated the line voltage to get the phone to work, the cordless handset was the remote trigger which controlled the arduino and triggered a relay. The entire emergency stop system was wired with a latching relay so if either physical or remote systems opened the circuit holding the relay closed, it lost power. As a late addition we added a 2m handheld reciever which gave us even more range, however we found that on-site when on land both systems worked fine, but when on water, some odd interference prevented either system from working together.
Throughout our development we discovered that Pelican cases contain a large amount of carbon either as a plastic colourant/additive, or as a carbon reinforcment mesh, both attenuating any radio frequency coming into the case, so an external 1/4wave ground plane antenna was a quick solution to the problem, at 900MHz, it was small enough to be unobtrusive.
At this point, most of the systems on the craft were working, with a Macbook running linux acting as the brains using a webcam and GPS for navigation. From the build perspective, there aren’t terribly many more details. More pictures can be found here.
And on a funny note, while we only placed 6/8 due to crappy GPS accuracy, we got the MacGyver award for using everything from a cordless phone, barbeque tongs, lawnmower wheels, plumbing pipe and styrofoam to come up with a autonomous boat in 1 month under $800USD.