Trossen Distance Sensor  Top Banner

Project Information

Twitch - 3 Servo hexapod

Twitch is a 3 servo hexapod (for lack of better classification). Twitch is controlled via two Wixel boards and an Arbotix Commander. The mobility of Twitch far greater than any other approach to a 3-servo walker that I have seen, and makes for a cheap bot that I can let anyone try driving.
Created by Gertlex | Forum Thread Link | External Link
~10 hours (fab/assem)
1-5 pounds
1-2 hours
Arbotix Commander
Powersource: LiPO / LiON

11.1 V 3S 1050 mAh LiPo

Locomotion: Other Crawler

3 servo actuation with turning, forward/backwards, and curved walking capabilities.

Controller/CPU: 2x Pololu Wixel MCU

One Wixel interfaces with the Arbotix Commander
Second Wixel communicates with Dynamixel servos via a tri-state buffer




3x Dynamixel AX-12A Servos


Twitch is a 3 servo 'hexapod' inspired by a similar robot made by Amino-san from Japan, seen on YouTube.

The idea behind this bot is that it's very mobile (on flat surfaces) for a walking robot with only 3 servos. The simplicity, walking ability, and use of a four-bar linkage were what made this a must-build when I saw Amino-san's version on YouTube. This also makes for a much cheaper robot than, say, my 18 servo Numa.

The process of building/developing Twitch is described in my project thread on the Trossen Robotics Forums. Various details and observations can be found there. Video can be found on my YouTube channel.

The particular challenges in this project were: (1) Using a low quality youtube video to figure out how the bot works; (2) Interfacing the Wixel MCU to the AX-12 servos; (3) Interfacing the Arbotix Commander with the Wixels' wireless communication; (4) Porting others' libraries (WebbotLib) to a different processor/C compiler.

Hardware specs of Twitch:
-3 AX-12A digital servos
-Wixel MCU board
-Wixel features TI chip with built-in (proprietary) radio/wireless communication
-Modified ArbotiX Commander uses Wixel's wireless instead of (or in addition to) xBee module
-Tristate buffer allows Wixel to control the Dynamixel servos.
-Sparkfun 3.3 V / 5 V level converter (Wixel is 3.3 V; servos' logic is 5 V)
-1050 mAh 11.1 V LiPo battery (directly powers servos' motors)
-Dyed Bioloid frame kit pieces
-Legs made from 3/32" Delrin
-Brass and Delrin 4-bar linkage
-Battery case made from 0.03" polycarbonate

Except for using a drill press for 8mm holes, everything was cut/constructed with a Dremel, Cupcake CNC (3D printer), and various hand tools. I used Solidworks for all part design except the legs. Legs were prototyped with cardboard, traced with splines in Inkscape, and then cut from paper templates on Delrin. Delrin is ideal, since any melting when cutting with a Dremel is negligible (unlike a lot of other plastics).

I cite 10 hours as the time required to build Twitch... I could build a second one in that span, including the electronics. Development time took a few months – some CAD and prototyping, some electronics, but mostly software fiddling.

Twitch currently moves at a speed of 180 mm/s (0.6 ft/s), can walk forwards, backwards, in an arc, and turn... Overall *very* mobile for a 3-servo bot. Currently, traction is best on carpeted surfaces, and I've yet to experiment with adding traction for smooth floors. An added benefit of this bot's movement mechanics is that walking and turning both share a starting 'pose,' so transitioning between walking and turning is always smooth. The range of motion needed from the servos is very small, so movement is in fact very twitchy.

The gaits (sequences of servo positions that result in walking, turning, etc.) were created initially with WebbotLib's Gait Designer. Correspondingly, the 'GaitPlayer' code from WebbotLib was ported with modifications to work with the Wixel board.


The Wixel MCU was chosen for its compact size – Axon/ArbotiX/Arduino are all much larger boards – and $20 for a pair, (when on sale) is nigh-unbeatable. The bot is coded in C, using the SDCC compiler. My code is based off Pololu's provided code for the Wixel, and can be found on GitHub. It's worth noting that the Wixel has a very limited amount of RAM: 256 bytes. I'm using 254 bytes, currently – there's little room for fancier math or added functions, though plenty of extra space is available for more hard-coded gaits.

I control Twitch with a modified ArbotiX Commander, which interfaces with a second Wixel by sharing the UART that the XBee is connected to. These modifications are described in a forum thread. No software changes were required to the ArbotiX, and the Wixel uses the Pololu-provided Wireless Serial App.

Most of my pictures are uploaded at Trossen, so see the project thread, or click to search for all images tagged as 'Twitch'.

Future work aims to improve the software a bit, and experiment with improved traction methods. I'm working on a Mech Warfare version, using a mix of MX-28s and AX-12s, but that's another project!

Pics (click for full size):