Robot Pollution-Detection Boat

An autonomous solar-powered boat to provide quantitative data regarding pollution indicators (e.g. dissolved oxygen) in bodies of water

Similar projects worth following
I have envisaged the deployment of autonomous solar-powered boats to potentially polluted sites such as rivers, reservoirs, and lakes. These boats will be of sufficiently low-cost (£350) and low-maintenance (e.g. sensors recalibrated yearly) for them to be used by individual citizen
scientists. The boats will have on-board a wide variety of sensors allowing data for
physico-chemical properties which correlate with water health to be obtained (dissolved oxygen, ph, temperature, conductivity,depth,turbidity) and shared on web in real-time after being uploaded via cellular networks (or held in memory cards and retrieved later). Navigation using gps -randomly visiting waypoints corresponding to safe areas (i.e. away from banks) throughout bodies of water, with last-resort collision-detection accomplished with ultrasonic sensors.

Why am I excited about these boats?

I'm excited about these boats for a number of reasons! They are low-cost and open-source: so any interested person or NGO can purchase the parts, and put them together at an affordable cost! They are solar-powered and completely autonomous: so once they are launched they can be left alone! They require minimal maintenance: sensors will need to be recalibrated only yearly! They have a full complement of available sensors to monitor water-health: the only thing lacking are sensors to monitor bacteria in the water. They can provide real-time data corresponding to water-health, transmitted via cellular data networks, which can subsequently be shared on websites!

I would like to see these boats deployed by local people in their nearby lakes and reservoirs: perhaps to provide evidence that a suspicious factory really is altering the physicochemical properties of the water! The boats, for instance, could be programmed to 'hang out' near the factory outlets/runoffs! Another task I would like to see the boats undertake is a complete sampling of a river from source to sea: this might not be a task for which real-time monitoring via cellular networks is appropriate, but the boats can easily be adapted to log data and dock at assigned ports to physically off-load memory cards.

At present the robot pollution-detection boat has three systems:

  1. Autonomous navigation and collision-detection system
  2. Water-health sensor platform
  3. Propulsion and hull

1. - Autonomous Navigation and Collision-Detection System


This employs the arduino uno microcontroller, with a motor shield, and a GPS shield. For collision-detection an ultrasonic distance sensor is installed at the front of the boat. The motor shield drives a servo to control the rudder, and a motor to power the propeller


Outline of autopilot navigation

  1. Parse GPS’s output NMEA sentences with GPS.parse(GPS.lastNMEA()) to obtain GPS.latitude, GPS.longitude and GPS.angle
  2. Set current latitude and longitude e.g. currentlat = GPS.latitude currentlon = GPS.longitude
  3. Set the waypoint we want to reach next e.g. destlat for destination latitude, destlon for destination longitude
  4. Calculate distance from currentlat and currentlon to the destlat and destlon using haversine formula
  5. Calculate bearing/heading from currentlon to destlon (heading)
  6. Compare bearing/heading that was calculated with current bearing from gps (i.e. GPS.angle = currentheadingfromgps)
  7. currentheadingfromgps - heading value will inform us of how to turn the rudder e.g if going straight we can do myservo.write(90)
  8. Keep turning the rudder until currentheadingfromgps comes within 1 degree of heading, then stop turning
  9. Keep propeller going until distance to waypoint is <=0.5 metres, then stop propeller
  10. Remain at waypoint for desired length of time (1hr?) then repeat

Next we might want to employ the PID (proportional-integral-derivative) control method to keep the boat on a more accurate path to the waypoint; although I am dubious if it's really necessary for this project!

2. -Water-health sensor platform

This sensor platform which utilizes the arduino mega will contain sensors for water health, a GSM shield to transmit the data from sensors to a PC and ultimately the internet, and a solar panel for power


-Why monitor DO?

Most polluted rivers suffer from low levels of dissolved oxygen. Dissolved oxygen in a river can vary from 0 to 18mg/L. It’s generally accepted that 4-5mg/L are required to support a healthy population of fish; anything below 3mg/L will not be enough to ensure survival of fish, and levels lower than 4mg/L will negatively impact fish reproduction. All species have their own particular DO requirments: worms and fly larvae and algae can for instance tolerate low DO, whilst larger fish may require > 6mg/L


Factors which affect levels of dissolved-oxygen

  1. Water temperature: higher temperatures will ‘push’ out the oxygen due to increased movement of water molecules [Note: polluted rivers...
Read more »

  • 1 × Adafruit Motor/Stepper/Servo Shield for Arduino v2 Kit (v2.3)
  • 1 × Adafruit Ultimate GPS Logger Shield - Includes GPS Module
  • 1 × Arduino Uno
  • 1 × Ultrasonic distance sensor
  • 1 × Servo for rudder control HK15138 Standard Analog Servo 38g/4.3kg/0.17s

View all 17 components

  • Prototype 1.0 (land-based)

    Neil K. Sheridan09/08/2015 at 19:35 0 comments

    The first prototype of the robot pollution-detection boat is land-based and will test the autonomous navigation software and GPS by following pre-set paths around a car park. Subsequently, the last-resort ultrasonic sensor based collision detection will be tested by introducing obstacles

    The electronics are being mounted on a 4WD chassis (DFRobot 4WD Arduino Mobile Platform)

  • Propulsion and directional-control of the boat: parts selection

    Neil K. Sheridan08/10/2015 at 19:18 0 comments

    I have decided to attempt to use the following parts for propulsion:

    • Turnigy D2830-11 1000kv Brushless Motor (for moving the propeller)
    • HK15138 Standard Analog Servo (for moving the rudder)
    • Metal Push Rods M2.2xL300 (link servo to rudder)
    • Pin Horns (connect rods to rudder)
    • 10x6 Propeller Standard (for air propulsion)

    It's intended to 3d print the propeller, push rods, and pin horns eventually!

  • Investigating hull designs

    Neil K. Sheridan08/07/2015 at 20:54 0 comments

    I have been looking at what kind of size of hull will be appropriate for the boat using the DELFTship software

View all 3 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates