For several years we’ve been using Gumstix single board computers running Linux at the heart of our sailing robots. We used one of these for our transatlantic attempt on Pinta. In the last few months we’ve been hearing a lot of promising talk about the Raspberry Pi, another single board computer with similar specs to the Gumstix but a much lower price. Back in May we finally got hold of a Raspberry Pi and decided to see if we could replace the Gumstix in one of our robot boats. It turned out to be pretty easy!
In our small MOOP boats, the Gumstix is just used for processing and all the low level I/O takes place on a PIC microcontroller. The PIC is linked to the Gumstix via a single serial port. The Raspberry Pi has a 26 pin header which breaks out the serial port (at 3.3 volt logic levels), some GPIO pins and provides pins which can be used to power the board. So we reused an old connector from a PC motherboard and hooked up the Raspberry Pi to the PIC’s serial port and the 5 volt regulated power supply that had powered the Gumstix. We hooked the Raspberry Pi up to a miniature WiFi access point, so we could login remotely using SSH from a WiFi enabled laptop. For the initial setup we plugged in a USB keyboard an a small HDMI monitor, but these were just for setting things up and aren’t needed long term.
Getting the software turned out to be really simple. The Debian Wheezy image for the Raspberry Pi included the GCC compiler. Our Gumstix code is written in C, but normally cross compiled for the Gumstix. A simple edit to the Makefile to change the compiler from the cross compiler to just “gcc” and we we’re able to recompile the code and run it on the Raspberry Pi. The only slight hiccup was that for some historical reason the code depends on the ncurses library, so we had to plug the Pi up to the internet and install the libncurses-dev package. It was really nice to have the compiler actually running on the robot. This is something that’s possible on the Gumstix using a newer version of the operating system, but we’d never had this option. It now means that when we are debugging in the field, we can switch from one laptop to another and just keep the code on the robot and do any editing required there. With the code compiled the control system ran just fine on the Raspberry Pi the first time. However on a second try there seemed to be a problem with the serial communications, messages from the Pi to the PIC were received without any problem but the responses were getting corrupted. On trying again a few weeks later this problem seemed to go away. Maybe it was just a loose connection on the Raspberry Pi’s serial port RX line.
Overall we’re pretty impressed with the Raspberry Pi and its potential for robotics. When compared with the Gumstix its pretty close, but not quite as versatile for I/O. However a Gumstix (Verdex Pro, Netpro and Breakout-vx) board costs us over £200 including import duty, a Raspberry Pi costs about £30. The Raspberry Pi has more RAM, a faster CPU, HDMI output, 2 proper USB 2.0 ports (the Gumstix has 1 USB 1.1 port that uses a mini USB connector). However the Raspberry Pi only has 1 serial port and 8 general purpose IO lines (GPIO), while the Gumstix has 3 serial ports and over 20 GPIO lines. For our MOOP robots, this isn’t a problem as they just need one serial port going to the PIC microcontroller. But, some of our other robots use a lot of the GPIO lines to create a parallel bus to the PIC or they use all the serial ports to talk to other peripherals. Now we can expand the I/O on the Raspberry Pi with USB serial converters, but these can experience higher and less predictable latency which isn’t acceptable for some of the high precision navigation we do with some of our robots. The Raspberry Pi’s power consumption is also a little higher than the Gumstix. According to our variable power supply the Gumstix uses between 200 and 300 milliamps at 5 volts. When the network or CPU are used its nearer 300, when its idle its around 200. The Raspberry Pi seems to need a constant 350 milliamps, although some people have managed to change its linear regulator for a switch mode power supply and this might make things more equal.
We demo’ed the Raspberry Pi MOOP at the Aberystwyth University’s Computer Science Show and Tell on May 11th 2012 and then again at the Machnylleth Raspberry Jam on July 21st 2012.
Unfortunately the boat has a bit of damage to its sail attachment right now, but hopefully we’ll get it fixed soon and we might try and sail a Raspberry Pi powered sailing robot at the World Robotic Sailing Championships in September this year.
Here’s a little video from the Machynlleth Raspberry Jam showing the boat (go to about 3:35).
Just a quick post to say we (Aberystwyth University) are hosting this year’s World Robotic Sailing Championships in Cardiff from the 17th to 21st of September.
If you’d like to come and compete or to present a conference poster, then please register by August 10th 2012. If you don’t have a boat, then don’t worry! We’ve got a new event this year called the Hacker Challenge, where teams collaborate with each other to build a boat from spare parts they’ve brought with them or that they buy or borrow from others. On the last day we’ll have a quick set of presentations and some races for these boats.
If you just want to come and watch, we’ll have details about this soon and of course there will be plenty of details posted on the event webpage during the competition.
Also if you’d like to help support the event financially, then please consider donating some money on our Crowed Funder page – http://www.crowdfunder.co.uk/investment/world-robotic-sailing-championships-2012-1133.
Yesterday BBC’s coast program showed a short piece about our 3.65 metre long robot boat, BeagleB. We filmed this last August when we tried to sail BeagleB out to patches buoy (about 8 nm west of Aberystwyth) and back. It was also the day we launched our 72 cm MOOP boat on its little journey around Cardigan bay, unfortunately the BBC didn’t show the footage of this.
For anyone who missed it, here’s the video from Coast:
The Microtransat team from ENSTA-Bretagne in Brest, France launched their Microtransat 2011 entry this weekend. See their facebook page at for more details. You can track the boat’s position on the Microtransat website. We are currently experiencing some problems with microtransat.org, so please visit for the time being.
Unfortunately the MOOPs little journey didn’t quite go as planned. After sailing east for a few hours to begin with, the boat then headed north, then west heading further out to sea than the start point. Then after a few loops she headed north towards the Llyn penninsula, just after 20:00 UTC on the 4th of September we received a message from the SPOT tracker showing the boat to only be a few hundred metres offshore near Porth Ceiriad beach. This is a popular, but remote surfing beach with sand across the middle but rocky cliffs on either side. The beach is about 2 hours drive away from Aberystwyth and unfortunately other commitments meant we couldn’t go and look for her until Wednesday 7th.
We got there about an hour after low tide and attempted to walk along the beach towards the last reported position of the MOOP. Unfortunately there isn’t much of a beach in that area, just lots of large rocks. With an incoming tide and increasingly slow progress over the rocks we were forced to turn back, having only been able to get about 500 metres from the last reported position. There was something white visible through the binoculars, which might have been the sail, but it could have been a buoy from a lobster pot or something else which had washed up. Given the size of the rocks on the beach, the boat could easily be hidden between two of them or smashed to pieces by them. It might have been damaged and then dragged back out to sea again. It doesn’t look like we’ll ever find out.
At approximately 15:30 today we launched the MOOP from a point about 5 nautical miles West of Aberystwyth. We aimed her east towards Ynyslas beach, north of Aberystwyth in the hope that we might recover her easily in a day or so. If we do it will be a good sign that the simple controller works at sea, at least over short distances. We might then try for a longer journey out across the Irish sea. We’ve already had a few messages from the SPOT tracker and its looking like the boat is on course for coming back to the beach.
Over the last month we’ve been preparing one of our 72 cm long Miniature Ocean Observation Platform (MOOP) boats for a sea voyage. Up until now these boats have only been sailed over short distances, mostly in lakes and under close supervision.
For the last month as part of a project we’ve been trying to build a really simplistic controller for the boat, to see how little we can get away with while sailing it at sea. We tried to build a purely analogue controller, which we could keep the boat on course with respect to a given compass heading. It used a pair of opamps to compare the output of the compass (which was a PWM signal transformed into an analogue voltage) with a potentiometer. One of the opamp outputs would drive the rudder motor (a servo without its control board) left, the other right. Unfortunately there was a problem with this circuit which we could never get to the bottom of. This was causing the opamps to short circuit and blow up under certain circumstances. So we decided to replace the opamp system with just a basic microcontroller, which just read the compass and set the position of a rudder servo. The target heading is determined by turning a potentiometer, which is read through one of the microcontroller’s analogue inputs. The sail is just fixed in a beam reach position and is made from part of the cloth from Pinta’s original sail (which we placed before her transatlantic attempt). There are 5 size F 13 amp hour, 1.2 volt NiMH batteries, we think these should be enough for a week or two of sailing. The only other component in the boat is a SPOT satellite tracker, which has its own microcontroller that presses its “ok” button every hour causing it to transmit its location. The SPOT uses its own batteries, so even if the main batteries go flat it should continue to transmit.
Tomorrow we plan to launch the boat from a few miles offshore and sail her back onto the large sandy beach at Ynyslas, a few miles north of Aberystwyth.
It will soon be 1 year since we launched Pinta and then lost contact with her. Unfortunately the last we heard was a SPOT message on September 29th. So instead of just leaving this blog with no further updates we are changing the scope of it slightly to include the progress of all the robotic sailing boats being operated by the Department of Computer Science in Aberystwyth University. These range from the 72cm long MOOPs (Miniature Ocean Observation Platforms) to new and a currently unnamed 2 metre boat and the 3.65m long BeagleB. Watch this space for updates on all of these!
Its now been 10 days since the last transmission from Pinta. Therefore under Microtransat rules we are now disqualified. Here are two maps showing Pinta’s progress. The first shows the progress during the first 49 hours when the Iridium modem was still sending hourly position updates. The second shows the complete route including the two weeks after the Iridium messages ceased. The maps are coloured to show the speed of the boat, these speeds are simply based on the time and distance between each point and therefore are an underestimate as the boat never travels in a perfectly straight line. Thanks go to OpenStreetMap/OpenCycleMap and gpsvisualizer.com for creating these maps.
It has now been over 36 hours since the last message from the Spot tracker. So we really have no idea where Pinta is. Based on previous speed measurements she *probably* couldn’t have made it to land by now but its not totally impossible. Ever since we launched the reliability of the Spot hasn’t been as good as we’d hoped for. Between the time we launched and now 32.5% of all messages that we expected have failed to deliver. If you discount the last 36 hours then this rate drops to around 27%. Things have got a lot worse in the last few days though, between the 17th and 26th only 6 messages failed to arrive. On the 27th we lost 2 messages, on the 28th we lost 3 and on the 29th another 2.
There are lots of potential causes for this, here’s a list of just a few that we’ve thought of:
- Pinta has sunk or been run over by a ship. Although there’s very little shipping in that area and most of it sails closer to land than Pinta’s last known position.
- The keel has broken off and Pinta has capsized.
- The Spot has fallen off and sunk or is floating (attached to some foam) but no longer attached to the boat. If this happened gradually it might account for the deteriorating message reliability in the last few days.
- Water has entered the Spot box and damaged the electronics. The timings of the messages we have received suggest that the PIC which controls the Spot hasn’t been rebooting and it was very well sealed.
- The Spot has run out of battery. This is unlikely unless we miscalculated or overlooked something. We’ve run several long term (up to a month) tests on the Spot and found that it lasts about a month on a pair of AA lithium batteries when transmitting every hour. The Spot on Pinta has 6 batteries and only transmits every 6 hours.
- The Spot (globalstar) satellite is having trouble. This has happened before and wouldn’t be a total surprise although its now been going on a long time. If anyone knows of a webpage where you can find out the status of the Globalstar satellites we’d be interested in seeing it.
- The higher the waves, the harder it is to transmit. We’ve had problems before when buildings, bits of car, trees, mountains etc have obscured the Spot’s sky view and this has caused messages to fail. It is possible that waves can cause the same problem. The problem is threefold. Firstly the rocking motion might mean any attempt to send data to the satellite is interrupted. The wave period has typically been between 6 and 10 seconds, which should be a lot longer than it takes to send a message. Second if transmission occurs when the boat is in the trough of a wave (especially when wavelengths are very short) it effectively has a wall of water on either side of it which will block transmissions. Finally the boat is likely to be heeled on one side a lot of the time which will reduce the amount of sky seen by the Spot’s antennas.
- Spot don’t like us automatically pressing the buttons on their unit and have decided to cut us off. If they have, they’ve not told us!
To see if there was any correlation between wave height and Spot reliability the graph below shows median daily wave heights (in metres) from the closest functioning data buoy to Pinta. This was the M3 data buoy (located near Mizen Head) until September 18th and the K4 data buoy (about 150nm WNW of Westport, 54.550 N 12.367 W) after this date. Unfortunately for much of the time the M1 databuoy to the west of Galway would have been more appropriate but it is not currently functional. The graph also shows the number of Spot messages received each day. This should almost never be more than 4, although as the interval between messages is actually slightly less than 6 hours there have been two days when we expected to receive 5 messages in one day but never actually achieved this. This analysis is probably too simplistic as it doesn’t consider the heading of the boat in relation to the waves and wind which will have a big influence on the angle of heel and the rocking motion of the boat. However, there does appear to be a (inverse) correlation. If we look at the 15th of September the waves increase to 4 metres and the Spot goes from getting 4 to 2 messages. As the waves die down during the 16th and 17th the Spot increases back to 4 messages a day and maintains this until the 22nd when the waves again increase and the number of messages drops. On the 25th the trend breaks as both the waves and number of Spot messages drops, but the Spot recovers again on the 26th while the waves are still relatively small. Since the 27th the waves have again increased in height and the Spot has again decreased in reliability. This still needs to be tested properly with a correlation coefficient but it looks like there might at least be something to the “big waves stop the spot from working” hypothesis. On reflection it is quite impressive looking at the wave graph that a 3 metre dinghy intended for sailing around very calm waters has survived for 17 days in waves almost never less than 2 metres high and sometimes over 4 metres (and with a period range of only 6-10 seconds).