Underwater Harvesting ROV
The purpose of this project was to develop a remotely operated, semi-autonomous underwater robot responsible for harvesting particles from the floor of a body of water along a pre-determined path. The robot is propelled using traction as opposed to thrust in order to not disturb the settled particles. The particles are pumped out through a hose as the robot laps the floor of its container. Q Harmonics was responsible for the electronic hardware and firmware development of this robot.
One of the notable challenges involved solving the problem of navigation. Because the robot is operating underwater, the electronics need to be completely sealed. Optical sensors were unusable due to light variability. Radio waves (> 30 KHz) were also unusable due to water absorption above this frequency. Sonar was outside of the available budget, but also too imprecise to meet the positioning requirements. Ultimately we developed a system which generated a magnetic field used by the robot to determine the correct pathing and positioning. Application-specific sensors were designed to detect the field.
Due to the nature of the underwater deployment which was intended for a long duration, the firmware was carefully developed to be event-driven and self-recoverable. The architecture consisted of several layers of APIs controlling different levels of functionality including drive system, communication system, sensor system, compass system, and navigation system (among others). A communication protocol was developed to support multi-robot command from a single source which included many remote-control features as well as remote configuration options in real-time.
A PCB was designed for the robot’s control systems. Additionally, a command center application was built with python in order to provide a remote control and configuration user interface. The initial prototype phase of this project was successful – particles were able to be collected by the robot and the remote control and configuration features allowed for further tuning of system parameters.
Technologies
- STM32L1 Microcontroller
- KQ-130F PLC Module
- LIS3MDL Magnetometer
- DMC01 Motor Controller
- Raspberry Pi 3 Model B
- STM32CubeIDE
- LTSpice
- CircuitStudio / Altium
- Python 3
Competencies
- Embedded C
- Microcontroller Firmware Design
- Analog Circuit Design
- Hardware and Software Debug
- PCB Design
- Python
- Comms Protocol Development
- System Architecture Design