Sailbot

This is the first year my high school competed in the international robotics competition, Sailbot. Sailbot is a competition that started in 2006 in Kingston, Canada where universities and colleges had the difficult task of either building or converting a 1 meter or 2 meter boat into an autonomous boat that could navigate the waters via GPS waypoints. This is the first year that they invited local high schools to compete in the event. As team captain I assembled a team of my friends that had various strengths, from a CAD expert to a sailor and everything in between. Our group advisor, Sarah Leadbeater, got our team a grant for $1500 from our local education foundation.

After long research our group came to the consensus that we wanted to buy a boat and then convert it, which seemed like the most viable option with our budget and time. So we picked the Vela one meter boat as our base. During our April break we all met together and got down to work assembling the boat.

Since I was the one that knew Arduino I helped pick out the electrical components. There was a couple of different options we could have done. One of the other high school teams, Gloucester High, used the YoYo board and a android phone to get GPS and Compass data. Since I have never experimented with that route I decided we should just get an Arduino uno with a GPS shield and a compass. So we bought the Sparkfun GPS shield so I didn't have to worry about soldering such small wires. Once I assembled the shield and plugged the EM406-A gps in, it was just a matter of downloading the TinyGPS library and uploading the example code. In a matter of minutes I was retrieving the waypoints of our room! Success! Next I moved onto the compass module. We used the Parallax HM55b compass module because we already had one available from our robotics lab. I consulted the data sheet online and one of my teammates and I connected it to a breadboard and again loaded up the example code to test it out. After adjusting a couple of wires, it worked and the serial monitor was giving us degrees.

I had to display some of our work at our high school in front of teachers, so I decided I would use the compass in conjunction with processing to give a visual of how the compass worked. I used an arduino uno and the HM55b on a breadboard connected to my computer. The arduino code gave readings and then sent it over serial from the arduino ide to the processing ide. The processing code would use the degrees and display on a makeshift compass. The code worked, however with a delay of one to two seconds.

Another major variable that we needed to take into account for was wind direction. Even with the best GPS and Compass sensors, we were not going to get anywhere unless we knew where the wind was coming from. Since we had to work within our budget, we created our own wind vane with our school's 3d printer. After countless designs are CAD expert came up with a sufficient design and then we printed it. The wind vane was a rotary encoder with a plastic piece on top. The way it worked was the wind would blow and push the rotary encoder and then by doing some simple math we were able to determine where the wind was coming from.

The picture on the left is our test route to see if our GPS code is functional. The GPS code first gets all sensor information, then it calculates the distance between waypoint 1 and waypoint 2. Next it tells the boat to drive that distance, i.e. commanding the servos to go a certain direction. Then it does the same until all waypoints have been used. The picture on the right is part of the competition in which we had to use our GPS code to go around certain buoys.

Our competition went very well! We got second place for the 1 meter class, beating Tufts University and Gloucester High school. Our team was ecstatic and very proud. Our hard work paid off and we will most definitely compete in the next Sailbot competition again.