Concept

Quadruped4 is a small four legged robot, with three degrees of freedom on each leg, a two degree of freedom head with stereo vision, and a variety of sensors. The robot is approximately 2kg in weight and is about 30cm long, standing 20cm high at the shoulders. The actuation is via Robotis Dynamixel networked servo motors, controlled via a custom designed control and WiFi communications board. Sensor inputs will include stereo colour cameras (quite low res and low frame rate to limit the necessary bandwidth), force sensors on the four feet, joint loading and position feedback on all joints, and overall power usage.

This robot is intended to form the hardware platform on which I would like to test out implementations of 'cortical like' software. The higher level software will be run on standard desktop or laptop computers with WiFi communication to the Quadruped4 robot. The onboard controller really only acts as little more than a communications hub, though I may extend its role to handle some more real time control tasks, sort of analogous to the nervous system of a biological creature.


 

Why a physical robot at all instead of a simulation?

I have two main reasons for building a physical robot. The first is the concept of 'embodiment' whereby true intelligence may be easier to achieve with the rich sensory input and unpredictability of a real environment and physical body in contrast to a simulated, perhaps quite simplified environment. The second reason is a  bit more practical - any meaningful results or indications of intelligence will be a lot easier to demonstrate (and a lot more fun) on a real little creature.

Evolution of a robot...

The Quadruped4 name came about because it was the fourth concept (fully formed concept anyway) I had for a quadruped robot. The first three concepts were never constructed, although Quadruped3 almost got there. For more of the history see the page on Earlier Work

Current Status 

 The Quadruped4 project can be split up into several sections;

  • On board electronics
  • Firmware development
  • Mechanical design
  • PC software development

I took the approach of getting the basic electronic systems going before starting construction of the mechanicals. This means that it once the servos and structural components are produced and are ready to bolt together, I can get movement and interesting behaviour happening almost immediately. Very satisfying, and also useful to catch design problems early. 

The mechanical design is complete and the acrylic panels have been laser cut, and partially assembled. I have purchased pretty much everything I need for the robot, and complete assembly is really waiting on some time to machine up a few of the custom parts (in particular the shoulder joint requires custom nylon  brackets of reasonably complex shape).

 The total weight I believe will be just over 2kg, and the unit will be about 300mm long and stand about 200mm high. A central cavity holds a 3 cell LiPoly battery pack (most likely a Thunderpower 8000mAh 11.1V 480g or perhaps a lighter 3-cell pack), and a 'head' with stereo cameras is mounted on a two degrees of freedom support.

The electronics design, in the form of the Dynamixel Robotics Controller, are complete and I have had the PCB manufactured and all parts loaded. The latest progress involves some simple firmware to pass AX-12+ commands over the WiFi link from a controlling computer, and get a servo to move. This test was successful, and very encouraging.  

The next step is completing the assembly once the final few parts are made, and then I should have a functional robot for further firmware/software development.

The most up to date status can be found in the Robots Australia blog.

 Dynamixel Robotics Controller

The specially developed Dynamixel Robotics Controller for the Quadruped4 creature has evolved from the PWM Servo Robotics Controller design created for Quadruped3. Some features were kept, and others were added or adjusted in light of the knowledge gained during the construction and testing of the older controller. The old concept of host/robot communications via the Cablefree USB connection allowing USB web cams to be used has been dropped, and the controller now uses a WiFi link that effectively operates at 920.6kbps full duplex over which control and sensory information including two low resolution image streams from TTL serial connected JPEG camera modules will be buffered and sent.

 Features include;

  • USB Connection to a host PC (capable of 920.6k). Note that this will really only be used for local connection/debugging without the WiFi link.
  • Lantronix WiPort Module (capable of 920.6k) as the primary communications between robot and PC.
  • 2 x AX-12 Dynamixel Servo TTL multidrop ports. Each one is capable of supplying about 7A.
  • 2 x RX and DX series Dynamixel Servo device RS-485 ports which can operate concurrently with the AX servos. Each port can handle about 7A.
  • Separate MOSFET switched power supply input connectors for the two AX ports and the two RX/DX ports, allowing externally connected power supplies to be switched on and off.
  • The main battery power can be switched on/off via an on-board MOSFET and passed to a switched power output connector. This can be used to supply other electronics such as servo power supplies.
  • Total current draw from the Lithium Polymer battery pack measurement, auto turn-off when voltage limits are reached – low bat warning LED.
  • Monitoring of the individual cell voltages in the 3 to 5 cell LiPoly battery pack.
  • Total system power soft switch control – push button turn on, processor controlled turn off (either from pressing power button, WiFi command, or low battery condition).
  • FRAM non volatile storage for firmware parameters
  • Serial interfaces to two separate off the shelf serial digital camera C318 modules which are 115.2kbps TTL. This will provide two JPEG encoded video streams (stereo) at approximately 160x128 resolution with approximately 3fps.
  • Provision of 8 analogue inputs with buffering suitable for pressure sensitive resistors.
  • Provision of 8 general purpose protected digital inputs/outputs, primarily for tactile switches.
  • On board 3-axis MEMS accelerometer
  • On board 1-axis gyro and 2-axis MEMS gyros for full 3-axis sensing.
  • Piezo transducer for simple sound output.
  • A basic audio codec has been included, with 8 bit resolution at 8kHz sample rate full duplex buffered audio input and output. An onboard microphone and onboard speaker with software volume control are included, however connectors to use off-board microphones and headphones are provided.

Mechanical Design

The Robotis Dynamixel AX-12 Servos which are the sole actuators in this design are rated at 16kg.cm torque at 9.6V, however that is listed as holding torque, and I have tested real working torque limits of 8kg.cm or less. This really limits the final weight of the robot, and Robotis themselves have a recommendation of 2kg maximum robot weight. Also important is the actual configuration of limb lengths and weight distribution so that servos are not overloaded.

Body Materials 

I came up with the idea of using plastic panels, either acrylic or polycarbonate (preferable), in an interlocking fashion to form the body of the robot. I have used the online laser cutting service offered by Pololu which is aimed specifically at robotics experimenters to cut the panels, which has allowed precise tabs and slots to hold the robot together and complex curves to soften the look of the robot. I also have aluminium rods with internal threads tapped into them at key points to hold the side panels together and the battery in. These might be replaced with plastic at a future stage to lower the weight a bit.

 Although aesthetics probably shouldn't be top of the list, I think a complete design should have had thought put into how the robot is perceived by others as well. These CAD images are pretty much from the final design stage of the robot, though the image below right is missing the nicely folded acrylic eyebrows. 

The legs themselves are mainly formed via the AX-12 servos themselves, and the injection molded plastic brackets which are supplied with them. The Robotis supplied brackets are lightweight, very strong, and really too good to ignore. I intend to use rubber half spheres for the feet (actually squash balls cut in half), which will hopefully eliminate the need for ankles, as the sphere will always present a consistent contact area to the ground, regardless of the joint angles. The rubber however will mean that a high amount of friction between foot and floor will occur, which might make effective walking gaits harder to achieve.

Power System and Actuators

The battery technology of choice is Lithium Polymer. There have been great advances in this type of battery in the last few years, and what's more it has been adopted by the model RC aircraft hobby industry. This means high performance batteries are quite readily available. The best energy density option I could find was an 11.1V 3 cell 8000mAh Thunderpower brand battery which weighs in at 474g. Using this weight and the calculated mass from the CAD model, I expect the weight of the robot to be approximately 2kg.  This weight is quite high considering the AX-12 servo torque rating, which is listed at 16kg.cm at 9.6V holding torque. I performed some testing on the servos, and worked out that the 11.1V can be tolerated by the servos (perhaps with reduced life), and that the actual usable working torque limit is approximately 8kg.cm. I had to make sure that this torque on the knee and hip joints would be sufficient to allow the robot to rise from a crouching position, so I created a simulation with the free package FreeCad8, within which I could apply mass to components, and various torque levels to different joints and observe the effect against gravity. The animation above is a result of using 7kg.cm of torque on two knees and two hip joints, and shows that the simulated robot struggles a bit, but manages to rise. With all four limbs participating, the robot should comfortably manage getting off the floor!