Biomimetic Robotic Fish: Dual-Servo Mechanism & Parametric Gait Control
Course: ISD 2200 Physical Prototyping (2026)[cite: 1, 2]
Team: "Last Team" (Clément COVIAUX, Zhengyan Lambo QIN, SIT Lok Long)[cite: 2]
Role: Lead Hardware & Software Engineer for Custom Prototype[cite: 1]
Core Concept: Bio-inspired underwater robot driven by an ESP32 microcontroller, featuring a dual-servo actuation mechanism and real-time sinusoidal gait control[cite: 1, 2].
Technical Specifications at a Glance
| Feature | Specification |
|---|---|
| Top Swimming Speed | ~40 cm/s (11.5 seconds per pool length)[cite: 1, 2] |
| Microcontroller | ESP32-based board with wireless Blynk telemetry[cite: 1, 2] |
| Actuation System | Dual-servo side-to-side sliding mechanism[cite: 1, 2] |
| Waterproofing | Double O-ring seal with sliding-attach mechanism[cite: 1, 2] |
| Tail Construction | Sandwiched 1.2 mm PLA with 4 cut lines on caudal fin[cite: 1, 2] |
| Continuous Operation | >1 hour underwater without leakage or maintenance[cite: 2] |
1. Mechanical Evolution & Structural Design
Developing an efficient biomimetic propulsion system required transitioning through several physical design iterations to minimize drag and unwanted head wobbling[cite: 1, 2]:
- Iteration 1: Cable-Suspended Multi-Segment Spine (Failed)
Multi-segment 3D-printed vertebrae held together by passive tension cables to mimic a natural fish spine[cite: 1, 2]. Physical testing revealed that the structure was overly fragile, heavy, and produced excessive friction[cite: 1, 2]. This led to a pivot away from multi-jointed linkages toward a single-piece flexible component[cite: 1, 2].
- Iteration 2: Single-Servo Pivot Mechanism
Direct single-servo connection driving a single-piece flexible PLA tail[cite: 1, 2]. While functional, direct pivoting created high angular momentum at the tail, causing the head to wobble excessively side-to-side and dissipating forward thrust[cite: 2].
- Iteration 3: Dual-Servo Mechanism (Final Design)
Upgraded to a dual-servo system that translates rotational movement into a side-to-side sliding motion rather than a simple hinge pivot[cite: 1, 2]. The caudal fin was constructed using a sandwich structure (1.2 mm PLA) with four flexure cuts and reinforced with clear plastic tape to maximize surface rigidity during stroke back-pressure[cite: 1, 2]. This significantly reduced head sway, increased tail stroke velocity, and produced a life-like, double-curve swimming wave[cite: 1, 2].
2. Waterproofing & Buoyancy Balance
Waterproof Housing Evolution
Designed a custom double O-ring seal utilizing a sliding-attach engagement instead of axial compression screws[cite: 1, 2]. This provided a reliable watertight seal capable of enduring multi-hour submersion tests while allowing quick toolless access for battery swaps and ESP32 reprogramming[cite: 1, 2].
Weight & Buoyancy Distribution
- Ballast: Added 150 grams of iron weights wrapped inside the lower head section to lower the center of gravity and ensure full submersion without sinking to the pool floor[cite: 2].
- Trim Adjustment: To prevent the heavy dual-servo tail from drooping downward at a 90° angle, a small piece (~50 cm³) of high-density black foam was mounted directly above the moving tail mechanism to achieve level horizontal flotation[cite: 1, 2].
3. Control System & Sinusoidal Gait Generation
Algorithmic Features
- Sinusoidal Motion Generator: Computes independent continuous sine waves for both servos in real time[cite: 1, 2].
- Tuning Variables (Blynk UI):
- Frequency (f): Stroke oscillation speed[cite: 2].
- Swing Magnitude (A): Amplitude of tail deflection[cite: 2].
- Phase Offset (φ): Relative angle delay between Servo 1 and Servo 2[cite: 1, 2].
- Virtual Offset: Center-bias steering adjustment for straight-line correction or sharp turning maneuvers[cite: 2].
- Non-Volatile Storage: Integrated the ESP32
<Preferences>library to store and reload optimal swimming parameters directly to flash memory across power cycles[cite: 1, 2].
4. Experimental Results & Performance Analysis
Pool testing evaluated the relationship between servo phase offsets and overall forward propulsion speed[cite: 1, 2]:
| Phase Offset (φ) | Motion Type | Swimming Speed | Analysis |
|---|---|---|---|
| 0° | Pure Sliding | 16.0 s / pool length | Creates lateral displacement without adequate angle of attack to push water effectively[cite: 2]. |
| 45° (Optimal) | Sliding + Pivot Hybrid | 11.5 s (~40 cm/s) | Sweet Spot: Combines lateral shift with optimal stroke bending angle for peak thrust[cite: 1, 2]. |
| 90° | Pure Pivoting | 13.0 s / pool length | High angular momentum causes moderate head wobbling and increased form drag[cite: 2]. |
Key Learnings & Future Work
- Dual-Servo Advantage: Combining translation with rotation delivers far superior thrust and stability over simple single-pivot tails[cite: 1, 2].
- Practical Hydrodynamics: Minor additions—like a 50 cm³ block of foam or clear tape backing—often make the difference between an unstable sinker and an efficient underwater swimmer[cite: 1, 2].
- Next Steps: Refine the head into a parabolic, streamlined nose cone to further reduce hydro-drag, and implement external waterproof magnetic charging/programming ports[cite: 1, 2].

.png)

.png)
