The process of building/developing TwitchMX 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.
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).
- 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)
- D-Link DCS-930L Wifi IP Camera
- 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
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.
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.
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.