01 / SYSTEM2025–26

PAAMB — Bioinspired Robotic Snake

Bioinspired pipeline-inspection snake robot

Seven joints. Three gaits. A pipeline it has to inspect from the inside.

TEAM PROJECT
  • Three-person team. My scope: mechanical design, electronics, firmware, sensor system, and FEA validation.
  • Akshay Rajagopalan Nambiar — motor assembly, CoppeliaSim, physical build.
  • Gopikrishna K P — Fusion 360 modelling, ML / FOMO, simulation.
  • Guide: Arjun R Nair.

Hardware / Firmware / Vision · STATUS: PHYSICAL

LATERAL UNDULATION (SERPENTINE) — REAL HARDWARE, REAL TIME

THE PROBLEM

Pipelines get inspected from the inside, where people and wheeled rigs don't fit well. A snake robot's cross-section is its entire footprint — if seven joints can be made to move like one body, hold a camera steady, and carry its own sensing, then a pipe no person can safely enter becomes inspectable from within.

The question this project had to answer: could a three-person team build the whole loop — mechanism, firmware, gaits, telemetry, video, and on-device defect detection — and have it work outside a simulator?

THE SYSTEM

Seven 3D-printed joint modules, modelled in Fusion 360 and validated with static-stress FEA before printing. An ESP32 drives seven MG996R servos through a PCA9685; the gait engine plays serpenoid curves — lateral undulation, sidewinding, and concertina — as phase-shifted joint angles.

A second ESP32 carries the sensing: MQ135 gas readings and BMP280 pressure/temperature streamed as telemetry. An ESP32-CAM at the head streams MJPEG to a Flask dashboard, which overlays live defect inference and exposes gait and e-stop controls.

WHAT I BUILT

  • Mechanical design of the 7-joint mechanism — validated with static-stress FEA (every component cleared FoS > 2.6 in ABS)
  • ESP32 + PCA9685 firmware: serpenoid gait engine with three switchable gaits
  • Sensor node: second ESP32 with MQ135 + BMP280 telemetry
  • ESP32-CAM MJPEG video pipeline
  • Flask control dashboard: live stream, ML overlay, telemetry, gait + e-stop controls
  • Wired the team's FOMO / TFLite defect model into the dashboard — matched its grayscale 96×96 INT8 input contract

MY SCOPE

  • Mechanical design of the 7-joint serpenoid mechanism
  • Electronics — the two-ESP32 architecture + PCA9685 servo driver
  • Gait firmware — three serpenoid gaits (lateral undulation, sidewinding, concertina), written from scratch
  • Sensor system — MQ135 gas + BMP280 telemetry on a second ESP32
  • FEA structural validation — re-run until every component cleared FoS > 2.6 in ABS

WHAT BROKE

Early in CoppeliaSim the robot did exactly one thing: it rolled onto its side and stopped. Seven iterations chased it. The fix was less control, not more — instead of forcing every joint to stay upright, we corrected orientation only at the root link and let the rest of the body follow the serpenoid curve. Once the head stayed the right way up, the tail sorted itself out.

The model ran. It detected nothing. The dashboard's TFLite inference was silently wrong until the model's real input contract was matched — grayscale, [1,96,96,1], INT8, softmax head. No error, no crash; just confident silence until the tensor shape and quantization matched what the model was actually trained on.

The first FEA was wrong and we knew it: wrong material assigned, force pointing the wrong way. Rather than trust a number that looked fine, the whole study was thrown out and re-run with honest boundary conditions — component by component — until every structural part cleared a factor of safety above 2.6 in ABS.

A repo audit found WiFi credentials hardcoded in the firmware source. They moved to a gitignored secrets.h, and the lesson stuck: hardware projects leak secrets through convenience.

FIGURES

The assembled seven-joint PAAMB snake robot on a table — red 3D-printed links, servos at each joint, wiring to a driver board
ASSEMBLED 7-JOINT CHAIN
PAAMB Flask control dashboard: raw MJPEG feed beside the ML overlay showing a green detection grid and a DEFECT DETECTED banner, with sensor telemetry and gait controls
FLASK DASHBOARD — FOMO · TFLITE OVERLAY, 12×12 GRID, DEFECT DETECTED (4)
Fusion 360 static stress study of a snake joint bracket with the safety-factor scale visible
STATIC-STRESS FEA — RE-RUN WITH HONEST BOUNDARY CONDITIONS UNTIL EVERY COMPONENT CLEARED FoS > 2.6 (ABS)
GAIT DEMONSTRATION — PRESS PLAY
GAIT TEST — PRESS PLAY

RESULT

  • Three working gaits, switchable live from the dashboard
  • Structure validated before printing: every component cleared a factor of safety above 2.6 in static-stress FEA (ABS)
  • Defect detection ran on-device in real time on a FOMO / MobileNetV2 TFLite model — grayscale 96×96 INT8; YOLOv8 was evaluated during development and dropped
  • End-to-end system: gait firmware, telemetry, live video, and detection running together off two ESP32s and a camera module

CONNECTED WORK