TwitchMX

TwitchMX is a 5 servo 'hexapod' built using what I learned from Twitch. The appended 'MX' refers to the more powerful servos used for walking. TwitchMX uses three MX-28T servos for walking, and two AX-12A servos for its pan/tilt camera/gun turret. The original inspiration for this locomotion approach is the bot TicTac6, 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. This particularly makes for a much cheaper mech than, say, the 18 servo Numa.

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

Much of the software work was done by virtue of starting from the code for Twitch, and much of the mechanical design was re-sizing and improving the parts created for Twitch. The particular challenges in this project were: (1) Finding a satisfactory approach to mounting the turret servos; (2) Writing the code to interface the Wixel with the motor driver; and (3) Dividing software between two Wixels. Twitch was very much a prototype for TwitchMX, and lessons learned from Numa were useful as well. It only took four months to create a fully functional mech (compared with 10 months spent on Numa).

Hardware
The gaits (sequences of servo positions that result in walking, turning, etc.) were created with WebbotLib's Gait Designer. Correspondingly, the 'GaitPlayer' code from WebbotLib was ported with modifications to work with the Wixel board. Twitch and TwitchMX use the same walking gaits. TwitchMX also adds the pan servo to the gait, so that the turret is always looking forward while walking.
 * 3 MX-28T servos
 * 2 AX-12A servos
 * 2 Wixel MCU boards
 * Arbotix Commander for remote control via xBee modules
 * 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)
 * 2250 mAh 11.1 V LiPo battery (directly powers servos' motors)
 * Legs and turret box made from lasercut Plexiglas-G
 * Brass and Delrin 4-bar linkage
 * Dyed Bioloid frame kit pieces
 * Various ABS 3D printed parts
 * Battery case made from 0.03" polycarbonate
 * VNH5019 Motor Driver Carrier Board from Pololu
 * 2012 Mech Warfare scoring system (with separate 7.4 V LiPo battery)
 * 5 mW red laser pointer for aiming

Electronics: Building this Mech Warfare version of my original Twitch required more software, for which I needed a second Wixel, due to its limited 256 bytes of fast access RAM. This means that I have two main electronics boards, which is great for the extra peripherals (camera, scoring system, laser, airsoft gun, gun's motor driver...) needed by a mech. I also like that this setup is more modular, which is useful for flexibility in physical design.





Software
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: code for Wixel controlling servos & code for Wixel talking to xBee and motor driver. Probably the single largest coding task was learning how to set up hardware PWM and then use that knowledge to write an initial library for controlling (Pololu's) PWM motor drivers.

Post-mortem
TwitchMX won 4 matches and lost 2 (to Immortal and HD2). Both loses were due to the bolts on the center servo horn coming loose during the match. After the first time, I applied loc-tite. I then neglected to check/tighten the bolts again, and lost again a few matches later. The blame here is on me, but there are a few factors to learn from:

Other than that, TwitchMX worked pretty well. Walking worked great, though the inability to strafe would prevent a Twitch-like from beating a good quad (aka Immortal) I was continuously experimenting with trying to make the airsoft gun more reliable. I think the hard floors contributed to jamming, as well. I did not have any issues with overheating the MX-28 servos.
 * I believe the aluminum servo horn's threads are less reliable than, e.g. the nuts on an AX-12's servo horn.
 * Bolt checks are important.
 * Loctite is great, but takes time to set/harden.
 * Bolt checks are important.
 * I did most of my testing on carpet. The hard floor of the arena was much more jarring and contributed to loosening bolts.
 * Bolt checks are important.