Figured I’d share some of my more recent work; Dragoon. This is an RX-64 based quadruped robot using an ArbotiX Robocontroller and the new & upcoming RX-Bridge, which allows the ArbotiX to control higher end DX/RX/EX series Dynamixels. One of the cool things about the ArbotiX is that it is Arduino software compatible, so it uses the same Arduino IDE with some added libraries, VERY easy to use.
Walking gait is still needing tweaking, I’d guess I can nearly double the speed in the above video once tuned in as I’m really not even touching the speed/power of these servos yet. It’s using an open source program called PyPose and NUKE (Nearly Universal Kinematics Engine) to implement 3 DOF Inverse Kinematics for the walking gaits. It’s an easy to use GUI that allows you to punch in parameters about your 3dof Quadruped or Hexapod robot, walk through a calibration guide, and it will export a ready to go Arduino Sketch for you to use with the ArbotiX. Very powerful system and easy to get up and running. Building the robot itself took about 10 hours including CNC time, and literally the software took no more than an hour or so. All of this software and the ArbotiX itself was created by Vanadium Labs.
The robot is built out of 12 RX-64 Dynamixels and a custom frame built from 2mm 5052 Aluminum, over a weekend. I’m powering it with a 4S 1900mAh LiPo pack. Control is via a handheld gamepad style Arduino-compatible controller over an Xbee wireless connection. Oh, and those are not ‘usable’ wheels on the end of the feet, they dont spin and are just used to create a convenient rubber contact point at the end of the tibias. Laid out it’s about 90cm across, when standing it’s about 60cm wide, and weighs in at 3kg.
Given that I have a bunch of available I/O, I might also experiment with autonomous navigation for this quad.
Anyway, that’s all for now. I’ll keep updating this as I make progress.
They sure are, they’re actively working on new products as we speak! =)
That said, NUKE is built around the ArbotiX, and while it is open source it would take a good amount of work to port it to a different platform. By all means though!
Very little actually, it was mostly just gait optimization. Nuke allows you to punch in the parameters of your body size, coxa, femur, tibia, etc and then generates an Arduino Sketch containing all of the IK & control code based upon those. From there, all I did was change the gait type, tweak COG shift while walking forward (big bot like this has a lot of momentum which caused the back legs to drag a bit until I started shifting the COG forward more), the stride length, and some tweaks to the starting X,Y,Z endpoints on the legs. The NUKE/PyPose software really did 99% of the work for me, anyone comfortable with modifying some Arduino-C code can get a quad/hex up and running using it (granted that they’re using the ArbotiX). All of the IK parameter selection is GUI based, as well as a wizard that walks you through leg calibration (movement ranges, directions, etc) that utilizes the positional capture of the Dynamixels. Really awesome stuff.
Mike Ferguson of Vanadium Labs did an instructional video that shows you how the system works:
Pypose in itself is just a tool for reading positions from servos and storing them to create sequences, it also has standard slider bars like you would find with most R/C hobby servo sequencing programs. It can be used as a standalone sequencer if you’re not using NUKE as well, as it has the ability to export to an Arduino Sketch. It is not really used much when using NUKE (the kinematics portion of the program) outside of storing neutral and min/max ranges of the servos. NUKE takes those positional values from PyPose, as well as the parameters you provide, and outputs a “NUKE” Arduino Sketch that handles the IK and control solution for the robot. All the IK runs on the ArbotiX; Nuke is just used to gather parameters and export the program, similar to how SEQ can export sequences for the basic atom (but it also exports a default control program to tie everything together).
Just noticed this thread, thought I would elaborate a bit.
PyPose started as just a pose capture/playback tool, which could export poses into a C header file which we were then loading and manipulating programmatically. We then added sequences several months later, which allowed poses to be played without much code being written. Upon adding this sequence system, we actually restructured PyPose to be a series of individual tools, that all act upon a single project file for the robot. Thus, you were using the “pose editor” tool to capture/playback/export poses, and a separate “sequence editor” tool to create sequences. Around this time, we also added a beta of a third tool, a terminal that allows manipulation of servos using *nix-like commands (mv to move a servo from one id to another, ls to query and list what servos are attached, etc).
At the very end of 2009, we released NUKE, as another tool within PyPose. NUKE actually uses several poses (min, max, and neutral). At the end of your ~30min configuration period, you export a complete Arduino sketch that runs on the ArbotiX, with a custom-tuned IK engine and some simple default code to drive it around as Andrew said.
So, the name “PyPose” is probably now a misnomer, since pose capture/playback/export is really just a very small portion what the program does, because of the other tools that have been added in. Regardess of which path you go (programatically manipulating poses, using sequences, or using IK), the code always runs on your ArbotiX in the end – PyPose is just the PC-side project building software.