Roboat 2011

Roboat 2011 is a "robotic-boat" capable of following a route digitized on a Google Earth map by means of GPS and digital compass.
While sailing it acquires depth measurements that eventually can be converted into a bathimetric map.

The video below shows a typical journey made by Roboat.

A PC is linked to Roboat via a radio modem connected to a usb port.

Two applications are visible on the PC screen:
  • Google Earth, showing a map of the area of interest, the route planned for Roboat (a simple loop in this video) and an icon (yellow/red boat) indicating the location and orientation of Roboat.
  • a graphic interface in the upper left corner; this is a utility witten in Python that manages the radio link with Roboat.
Having the route loaded in its local memory, Roboat starts sailing after receiving a start command from the Python interface and begins following the planned route by continuously comparing its location and heading received from the GPS and the digital compass, against the location and direction calculated based on the expected route.

The sailing direction is continuously adjusted by changing the relative speed of the two propellers.

While sailing, Roboat sends its coordinates and heading back to the PC where the location and orientation of the boat icon are updated accordingly.

In the end, Roboat stops automatically when it reaches the last point of the route or after it receives a user command sent from the PC.

Here is a block diagram of the whole system.

The pink rectangle on the left represents the PC laptop with the main applications that manage Roboat.
The blue rectangle on the right represents Roboat with the various devices mounted inside it.

block diagram

The electronic schematic includes the following main blocks:

  • BB1: Radiomodem - XBee Pro 900
  • BB2: Micro SD storage disk (added in a later version)
  • BB3: GPS - EM-406A
  • BB4: Arduino Pro Mini 328, 5 V - 16 MHz
  • BB5: Pololu Dual Motor Driver - VNH2SP30
  • BB6: Digital Compass - HMC6352
  • T2-IC4: 12 V power supply (TIP107-LM2577) to the CruzPro Sonar transducer
The schematic in Eagle format is available for download here: Roboat_2011.sch

This is a typical display on the PC connected to Roboat.

Most of the screen is occupied by Google Earth.
It is possible to plan a new route for Roboat by using the Google Earth feature "Add path", digitizing the new route and then saving it as a ".kml" file.
The yellow-red boat shaped icon displays the location and orientation of Roboat; the figure to the side of the icon displays the water depth measured by Roboat ("0.0" in this case).

In the upper left corner of the screen is the graphic interface from the utility written in Python that manages the link with Roboat.
It has buttons to load a new path in the form of a ".kml" file and to send it to Roboat.
One more button allows to start/stop Roboat and by pressing the arrow keys it is possible to pilot Roboat remotely (forward, left, right, stop).

The Python utility also updates the boat icon in the Google Earth map. It does so by receiving the information of location, heading an water depth from Roboat and updating a ".kml" file accordingly. A Google Earth link points to this file and reads the new information from it once every second.

graphic interface

The following images show Roboat and the various devices installed in it.
Most of the devices are mounted on a breadboard which has allowed a flexible and gradual development of the project.
Image 1
Image 2
Image 3

The code can be downloaded here:
(still under development, very unclean and very few comments)

The zip file contains:
- Arduino code: roboat.pde
- Python code: roboat.pyw
- GoogleEarth files: roboat_placemark.kml, roboat_symbol.png

Here are some images from my first attempt (19 Nov. 2011) to acquire and map depth data from a lake.
The lake is located in Valsain, 60 km north-west of Madrid (10 km from Segovia). Is is an artificial basin bordered by a dam on its northern edge.
I run ROBOAT twice (red and yellow paths), starting from the the dam, sailing towards the southern portion of the lake and then backwards.
The maps appear noisy close to the northern edge, probably because in that area echos from the dam wall were interfering with echos from the lake bottom.
ROBOAT did not acquire data in the southern portion of the lake, therefore the map in this area appears very smooth and without details.

Map 2D
Map 3D
The maps were created using Surfer v.10
A version of the isobath map was exported in *.kmz format, and can be displayed in GoogleEarth.
Click on the map to download the shapefile "Valsain.kmz".
It should display automatically if you have GoogleEarth installed.
Otherwise save it as "Valsain.kmz" and open it in GoogleEarth to visualize it.

Map GoogleEarth

Roboat has been mentioned by Sparkfun Electronics (enjoy the users comments) and BricoGeek.

Tips for the construction of Roboat:


Back to Home Page