Skip to content

Teleoperated Snake Robot

A six-segment untethered serpentine snake robot, controlled over Bluetooth from an Xbox controller, with a forward-facing camera for confined-space inspection.

  • Other
  • Open source
  • arduino
  • 3D printable

Suggested by Robotheca, created by @AryaReddyM (opens in a new tab), from github.com/AryaReddyM/SnakeRobot (opens in a new tab). Pinned to commit 9328b8e (opens in a new tab).

Photo and 3D model

Teleoperated Snake Robot, photo from its repository
Photo:@AryaReddyM (opens in a new tab)MITsource file (opens in a new tab)

3D preview converted from github.com/AryaReddyM/SnakeRobot at 9328b8e, under MIT. View the original files from GitHub (9.2 MB) (opens in a new tab)

Power
7.4 V

What it can do

Written by Robotheca from the project's documents.

  • Travels forward on flat hard surfaces using a sinusoidal traveling-wave gait across six segments.
  • Steers by applying a graded joint offset that arcs the body, though turning is weak and it cannot pivot in place.
  • Operates untethered, controlled wirelessly over Bluetooth from an Xbox controller.
  • Streams video from a forward-facing camera.

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The guide appears here as you scroll.

Guide by @AryaReddyM (README.md), under MIT.

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • Six Feetech STS3215 serial bus servos, one per joint.
  • ESP32-WROVER main controller.
  • Waveshare serial bus servo driver board.
  • ESP32-CAM camera module.
  • 2S 7.4V LiPo battery, 1500mAh.
  • LM2596 buck converters stepping down voltage for the ESP32s.
  • Xbox controller using Bluepad32 for Bluetooth input.

Connections

  • The six servos are chained on a single TTL serial bus.
  • The servo bus is driven through the Waveshare serial bus servo driver board.
  • The LiPo battery powers the system, with LM2596 buck converters supplying the ESP32s.
  • The electronics are housed in a towed box connected to the body by a passive joint.