Skip to main content

[] Biomimetic Robotic Fish: Dual-Servo Mechanism & Parametric Gait Control


Biomimetic Robotic Fish: Dual-Servo Mechanism & Parametric Gait Control


Youtube video: TBC

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

FeatureSpecification
Top Swimming Speed~40 cm/s (11.5 seconds per pool length)[cite: 1, 2]
MicrocontrollerESP32-based board with wireless Blynk telemetry[cite: 1, 2]
Actuation SystemDual-servo side-to-side sliding mechanism[cite: 1, 2]
WaterproofingDouble O-ring seal with sliding-attach mechanism[cite: 1, 2]
Tail ConstructionSandwiched 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


The robot's locomotion relies on parametric biomimetic algorithms hosted on an ESP32 microcontroller[cite: 1, 2].

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 TypeSwimming SpeedAnalysis
Pure Sliding16.0 s / pool lengthCreates lateral displacement without adequate angle of attack to push water effectively[cite: 2].
45° (Optimal)Sliding + Pivot Hybrid11.5 s (~40 cm/s)Sweet Spot: Combines lateral shift with optimal stroke bending angle for peak thrust[cite: 1, 2].
90°Pure Pivoting13.0 s / pool lengthHigh 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].