Bio-Inspired Underwater Robot (GUJCOST Robofest 2.0)
A cuttlefish-inspired underwater robot using undulating fin propulsion, built for GUJCOST Robofest 2.0
Built for GUJCOST Robofest 2.0, a state-level robot-making competition under Gujarat’s Science, Technology and Innovation (STI) fund, this project set out to design and build an underwater robot inspired by one of nature’s most efficient swimmers: the cuttlefish.
Team: Himanshu Laddhad, Atul Dhamija, Naman Jain, Dhruv Oza, and myself — mentored by Dr. Harshit K. Dave, SVNIT Surat.
The Core Idea: Undulating Fin Propulsion
Rather than using a traditional propeller, the robot mimics the way a cuttlefish moves — using a long, wave-like fin that runs along the body. In our design, the main shaft is built from small links fixed inside slotted rods, connected to a flexible fin on each side. By driving the fin into a continuous undulating wave motion, the robot pushes water backward to move forward — and can turn by changing the direction of rotation on one side relative to the other.
Buoyancy Control
To move up and down, the robot uses the same principle real submarines use: balancing buoyant force against gravity. Water-filled syringes act as ballast — a linear actuator pushes or releases water from the syringes, changing the robot’s overall weight and adjusting its depth.
Electronics & Control
- Arduino Nano as the main controller
- FlySky RC transmitter/receiver, communicating over the iBus protocol, for wireless control
- L298N motor drivers to run the fin motors and buoyancy actuator
- Raspberry Pi + camera module for onboard vision
- IMU for orientation sensing
- Custom PCB for wiring integration
Firmware was written in Arduino C++. One sketch reads the RC receiver’s channels over iBus and maps stick input directly to servo position:
int readChannel(byte channelInput, int minLimit, int maxLimit, int defaultValue) {
uint16_t ch = ibus.readChannel(channelInput);
if (ch < 100) return defaultValue;
return map(ch, 1000, 2000, minLimit, maxLimit);
}
Another sketch drives multiple servos in a synchronized sweep to test and tune the fin’s undulating motion before final assembly:
void loop() {
for (i = 1; i <= 180; i++) {
servo1.write(i);
servo2.write(i);
servo3.write(i);
servo4.write(i);
delay(2);
}
for (i = 180; i > 0; i--) {
servo1.write(i);
servo2.write(i);
servo3.write(i);
servo4.write(i);
delay(2);
}
}
Build Process
- Chassis and structural parts were fully 3D printed in PLA, chosen for its availability and biocompatibility
- Design and analysis done in SolidWorks, with ANSYS for structural analysis
- Waterproofing achieved via the oil-filled servo method — filling servos with light-viscosity mineral oil (a technique borrowed from underwater RC hobbyist communities), combined with superglue and O-ring seals at joints
- Powered by an Orange 5200mAh 3S LiPo battery (11.1V, 40C/80C discharge rating)
Real-World Applications
Beyond the competition, the design has genuine applications: studying aquatic life and habitats, low-cost underwater exploration, ship hull inspection (when paired with AI/vision), and environmental sampling like microplastic surveys.
What’s Next
Future versions are planned to be amphibious (walking on land as well as swimming) and to support tethered operation via a floating antenna for greater depth range.