Documentation - TheDilenic/ProjectHydrus GitHub Wiki
Our group went through a series of ideas to choose for our Engineering Innovation & Design (MA2079 - EID) project. A piezo electric generator device for guitars, a cycling energy generator and a pipe cleaning robot were among the last few ideas our group wanted to select. But in the end, we decided to choose to make a barnacle cleaning robot for our project (which later became the Biofouling Removal Robot).
Below are the initial designs of our robot prototype.

Our group selected option 3 due to its ease of creation and versatility.
This shows the mode and demonstration of how our teleoperation and autonomous system will be controlled.
This is the basic electrical schematic that our robot will be based on. (where the blue drawing represents an alternative layout.)
And here is our plan to demonstrate the robot on the final day of EID.
The current features for our robot's uniqueness are:
- Longevity
- Waste collection bin
- Universal for all ship types
- Multi-purpose functions
Other ideas:
- Main station at seaports to hold our robots
- Robots can be sent to ships automatically
- Reduces setup time
1 - Weight cannot be too heavy
2 - Size cannot be too big, best if 2 people can handle it
3 - Need to be able to handle currents up to 5 knots.
4 - best if it could clean 150-200 square meters per hour
5 - Need to be able to collect the fouling as strict regulations throughout the world do not allow fouling to be deposited in the regional sea water
6 - Need to be able to take pictures before and after with the robot for reporting purposes and inspection jobs
7 - needs to automatic and easy to be used by ship crew, almost idiot proof and autonomous
8 - Be able to clean hard fouling as well as algae soft fouling
9 - easily interchangeable replacement parts for maintenance
These are some considerations to take note in our design.
=== Initial Main Goals ===
- Decide on hull-attachment methods & movement
- Frame design to withstand pressure and water corrosion (min 5yr lifespan)
- Waste collection bin placement
- Allow for easy repairs & maintenance
- Design for easy module function change
- 3D model/drawing of concept
Early concepts for adhesion methods to ships.


Reference Links:
- https://sinoeastequipment.en.made-in-china.com/product/JEfrCBnvTaYz/China-Multifunctional-Hull-Bottom-Cleaning-Robot-for-Marine-Growth-Removal.html
- https://uosdesign.org/designshow2016/group-design-project/autonomous-hull-cleaning-robot/
We now have decided on the movement methods. We will be using tracks (example; like tank tracks) for this project.
Up next, we are gonna to design hand sketched frame/body, that allows the tracks to used on the body/frame.
We also need to take account the strength of the magnetic to withstand the robot's weight and at the same time, ensure the magnet does not affect other components too.
Cleaning Module + Mobility Frame design collabration. To help visualise the end product.
We then changed to use magnetic wheels instead.
Finding a reliable supplier for our magnetic wheels is taking time. As we need it to fit our budget and deadlines.
We have decided on Supreme Magnets to be our suppliers. And after a short zoom session with them, we developed a few questions.
-
The shaft diameter ratio to the diameter of the magnetic wheels? Or base on our own customisation?
-
What does the function of the Disc do?
-
Could they provide the functionalities with images of the magnetic wheels on the working prototype? Example: past clients magnetic wheel designs and how they put it to use ?
We received demo-wheels for our testing and to help us gauge the dimensions we need. Current wheels cannot be induced using electric current. But those kind of wheels are more expensive and take longer to manufacture.
IMG_8026.MOV
The wheels don't affect the motor badly but the issue now is that the hole for the motor shaft is too big to translate the movement onto the wheels.
video6301078401780292358.mp4
Planning the layout and minimum size of the robot needed. Additional dimensions:
- Diameter of wheel exterior : 50mm
- Hole diameter : 9mm
- Motor shaft diameter: 4 mm
Updated the dimensions we need for our wheels.
=== Initial Main Goals ===
- Decide on water jet/scraper methods
- Detachable cleaning equipment
- Waste collection bin design
- Minimise cleaning damage on ship
- 3D model/drawing of concept
=== Other Features to Add ===
- Add velcro brush to the back of scrapper
- Insert vaccuum component into the container
- Design modular attachment as shown above
We were deciding whether to go with a water jet cleaner or a simple scrapper. We chose the scrapper due to simplicity and the ease of demonstration on the final day. (We needed alot of water)
( place scrapper drawing and CAD designs here)
Concept of our modularity design to change functions of the robot. Function changing is still manual based.
Idea inspiration
SampleTool_Demo_0.mp4
Sample demonstration on SOLIDWorks of how it'll work
Additional placeholder function boxes modeled to showcase ease of switching tools.
video6138576235371959381.mp4
3D Printing and testing whether dimensions are correct and are able to fit into one another.
=== Initial Main Goals ===
- Barnacle detection software
- Control interface
- power systems
- electrical circuit drawing
If there is extra time:
- automation
- data collection
Some helpful links that aided the software side:
- https://www.youtube.com/watch?v=bkiopa5nxiE
- https://www.tutorialspoint.com/arduino/arduino_dc_motor.htm
- https://robu.in/arduino-pin-configuration/
Here are the planned electronic components & their sizes

IMPORTANT DATA for the motor controller being used. [MXP-MD2 for myRIO]
First steps to get wireless control.

Next to create a small app interface for our robot control.
video6314513768151781906.mp4
Finialising our electrical schematics.
Concept for connection from our flutter app to the arduino system.
Tried to follow a { flutter app -> WebSocket -> Arduino } interface but it takes too long so we cut out the unnecessary parts. Flutter app no longer in development as its just a GUI feature and can be delayed.
Here is the playment for the above uncontinued development:
Now fully commited to just { Websocket -> Arduino }. We need to create a simple device to link them and adjust to our needs accordingly.
video6129535689991133369.mp4
Here is the link to assist with creation: https://randomnerdtutorials.com/esp8266-nodemcu-websocket-server-sensor/
We then created a pinout for the motors being used for our robot.
The WebSocket interface was development further with:
- Joystick Controls
- Logo
- Camera feed background (with a minecraft video as a placeholder)
- Small Function Buttons
The pinout became quite the hassle so we organised it. Motors were also labeled to reduce wrong wiring and help with easier debugging.
We were trying to find the correct pins for REV and FWD modes on our motor controller. It took a while as we had no proper documentation.
// Motor Pins for MD2 #1 (Front Left and Right) const int FL_PWM = D1; // Motor 0 PWM const int FL_DIR = D2; const int FL_DIRREV = D0; const int FR_PWM = D3; // Motor 1 PWM const int FR_DIR = D4; const int FR_DIRREV = D5;
// Motor Pins for MD2 #2 (Back Left and Right) const int BL_PWM = D6; const int BL_DIR = D7; const int BL_DIRREV = D8; const int BR_PWM = 10; //Follow GPIO PinOut : S3 const int BR_DIR = 9; //Follow GPIO PinOut :S2 const int BR_DIRREV = 8; //Follow GPIO PinOut :S1
Above is the current pinout for our robot.
Robot and control website app is now connected to any wifi (that we set) and remotely controllable.