Pivot, the Autonomous Walking Robot

How to design a simple robot


Simple Robot Design

Goal is to have the robot walking around without spending too much time on making it. To make choises easy, and prevent complications further along the building process, design constraints are defined. This has much impact on cost, complexity, and time to make the robot. Following constraints were defined for this robot:

  1. Simple robot design, using ordinary tools to make the robot
  2. Inexpensive and simple robot parts
  3. Much room for experimenting with algorithms
  4. Sensors for autonomous movement
  5. Wireless operation by using a standard robot servo controller
  6. Hexapod (6 legged) walking robot design (see Figure 1)

Figure 1: Simple robot design using inexpensive parts.

Robot Leg Design

Hexapod Robot Design

So how does a simple 6 legged robot walk? After investigation, it was found that 6 legged robots like the Extreme Hexapod (http://www.lynxmotion.com), with only 3 servos driving the robot, can move the robot not only forwards and backwards, but also can make the robot turn. The robot is also stable with always at least three three legs standing on the ground. Because of the simplicity of this hexapod design, this concept was chosen.

Improved Hexapod Design

After a careful study of a movie of the Extreme Hexapod robot walking in a straight line, it was found that the legs are slipping (rear legs the most), giving the impression of not being in control of the movement. After some further investigation, the cause of this is the rotation center of the front and rear legs not coinciding with pivot point of the opposite middle leg. The robot design described here does not have this shortcoming.
This robot complies to the rule of the pivot point (hence the name), see figure 2 below. This is the first revision of the robot. Here you can see the robot standing on its right middle leg, and left front- and back leg. The right front- and back leg are lifted upwards, as well as the middle left leg. When the right servo is turning counterclockwise, robot will turn clockwise, and move forward. Because the right servo is located above the point where the middle leg is standing on the ground, the distance between the left middle leg and the front- and back right leg will remain the same. This is the first robot with this design concept.

Figure 2: Rotation of the left legs while standing on the right middle leg, without sliding of legs.


To keep the design simple, servomotors are used both to drive the robot, and to act as hinges for the legs. This is because no hinges were found after a short search on the Internet for small hinges which could attached easily to the legs. (http://www.graupner.com) (http://www.servocity.com)
For the robot's framework supporting the servos, batteries and the controller, standard aluminum strips found at hardware stores can be used. They are strong enough, do not corrode, are easy to process (cutting using a handsaw, drilling using a drill), and easy to attach to each other using nuts and bolts, or even maybe glue.
Best bet is using brass metal (http://www.ksmetals.com) found at hobby shops for the legs, and bending them in the desired shape, attach them directly to the servo wheels.

Robot Design Risks

All three servo motors are stressed extensively (see Calculations below):

  1. Motor torque for the middle legs is 50% of the stall torque, and maximum operating speed for the front and rear legs is not reached because of the mass moment of inertia of the robot.
  2. The servos are used as hinges for the legs, supporting the complete weight of the robot.
  3. Because it is not known how much the servos can stand before failure, and it is not known how long the robot will be in operation, the cheap servos are selected. In case the servos break down too soon, more durable servos can still be used.
  4. Unknown in the beginning was the way to manufacture the legs and attach them to the servos. Finally aluminum sheet was used.

Robot Components

Robot Controller

Acrononame Controller GP1

There are currently 3 controller brands: BasicX, OOPic, and Acroname. BasicX produces the BasicX-24 programmable micro controller, which is a 24-pin EEPROM with 32k memory to store code written in the Basic programming language. It has 21 I/O lines from which 8 can be used as 10bit analog inputs, 2 for serial communications only. The controller can be supplied with a development board, which has a serial connector to interface with a host.
OOPic stands for Object Oriented Programmable PIC. This controller is available on several controller boards, like the OOPic-R this board has an RS232 serial port, and 16 I/O lines for servos, I2C network, etc. Programs are written in Visual Basic, C++ and Java, and are compiled and downloaded to the controller via an freely downloadable Microsoft Windows Integrated Development Environment (IDE).
According to GMU Applied Robotics club, the first choice controller is however Acroname’s Brainstem controller. It has 4 servo-, 5 analog-, 5 digital inputs, an I2C bus and RS232 Serial interface. It's size is 2.5 x 2.5". The servos connect directly to the controller pins, and are independant of the servo brand used. The RS232 interface requires a small, relatively cheap convertor board which has the standard 9 pin sub-d connector. Programs are written in Ansi C, and 11 1k programs can be stored, from which 4 can run concurrently. An interesting feature is the reflex architecture, which allows to respond based on sensor inputs. Programs are compiled and downloaded to the controller via Acroname’s Console program, which is free downloadable at the manufacturer's site.
Also mentioned here, is the "attractive" GumStick (http://www.gumstix.com) 109$, Intel XScale PXA255 200MHz, 64MB SDRAM, 4 MB Strataflash, 80 x 20 x 6.3mm. In a later stage of the project this embedded platform running Linux can be added to the robot to give much more room for experimenting with algorithms.

Robot Servo Motors

Servo picture

RC servos can be categorized by their size, gear material and bearing types. Servo sizes are standardized, and are available in sub-micro, micro, mini, standard, and 1/4 scale. For this robot, compared to the size of the Brainstem controller, and price, the standard size servo was chosen, which is 40 x 20 x 36.5mm.
Wear and strength are determined by the gear type. There are four gear types used in servos. Nylon Gears are used most because of price, little or no wear, and weight. Karbonite gears are stronger (for instance, a nylon gear shaft bends easier than a karbonite one), and have better wear resistance. Metal gears are even stronger, but wear much faster. Top end servos are equipped with titanium gears, which are strongest, and have virtually no wear at all. Strength is important in this hexapod design, since the legs are directly attached to the servos.
Bearings used in servos are usually made of a plastic or metal shaft/bush combination. For heavy-duty applications, ball bearings are used. The servo used in this robot has plastic bearings, which still perform well, although a little play can be observed after 2 hours of operation. This can either be caused by the nylon gears (and shaft), or the nylon bearings.
RC Servos in general have an operating power range between 4.8 and 6V, which is supplied by the red (+) and black or brown (ground) wires. The servo set point is given with a third wire, which is yellow, orange or white, depending on the servo brand. The signal is a pulse width modulated (PWM) signal with a frequency of 50Hz and amplitude of 3 - 5V. A pulse width of 1.5ms will send the servo to its neutral position.
For the robot, the Hitec HS322HD has been chosen. It's slighty more expensive than the cheap 10$ servo and has karbonite gears. The robot performs well with these gears, although the stiffness of the legs could be improved by using stronger gear servos for this robot design. The servo weighs 43 gram, draws a current of 500mA when loaded, and has a stall torque of 0.3Nm. See www.hitecrcd.com for more specifications, or the links page for different brand servos.


Batteries: 4x2200mAh NimH AA, 10g, $3.5 each

Robot Calculations

After a selection is made which electronic components will probably be used in the robot design, the design is verified by calculating the total mass of the electronics, and an estimate is done for the total mass of the robot. The mass in turn will reveal if the chosen servo is capable of lifting the robot (the middle legs of this hexapod are connected to the servo which tilts the robot to the right or left side, see Figure 2).

Robot Weight

One of the most important aspects of the design is de mass of the robot. It determines the required force to lift the robot, and subsequenty the servos to be used. The speed is also dependant of the mass. In general for a hexapod, the heavier the robot is, the slower it will be, and shorter battery life will be. This robot is a relatively small robot and has three servo's, from which one servo is used to tilt the robot. More complex hexapod designs with more than three servo's for controlling the legs probably have shorter battery life since more than one servo have to lift the robot.
First, let's calculate the total mass of the electronic components:
  MElectronics = MBrainstem+ 3 x Mservo+ 4 x MAA Batteries = 0.09 + 3 x 0.043 + 4 x 0.010 = 0.178kg
Total mass of the robot is assumed to be twice as much as the mass of the electronics:
  MTotal = 2 x MElectronics = 2 x 0.178kg = 0.356kg

Servo Torque for Lifting the Robot

For this calculation, it is assumed the middle legs are a "Brainstem's width" apart. The middle leg, when doing nothing else than lifting the robot, has to lift half the weight of the robot. This has to be, since the robot is in equilibrium when it's not moving. This means there is no acceleration in any direction (both translation and rotation). There is no acceleration in vertical direction (say the robot is falling) because the gravitational force m x g (pointing downwards) is equal and oppisite to the total force exerted on the legs via the gound (pointing upwards). The same applies to rotation. Since the robot is not tumbling over in this equilibrium state, the total momentum of the forces on the centre of gravity of the robot is zero. So the momentum caused by the force exerted on the middle leg, is the same as the total momentum exerted on the opposite front and back leg. So this is the reason the middle leg lifts half the weight of the robot. Required torque to lift the robot for the middle leg would then be:
   T = LBrainstem x ½ x Mtotal x g = 0.064 x ½ x 0.356 x 10 = 0.14Nm
This is about half the stall torque of the servo. Conclusion: the chosen servo is capable of tilting the robot with the assumed mass of the robot.

Servo Torque for Walking

The other two servos are used to move the legs of the robot back and forward. According to the specifications of the intended servos, the operating speed at 4.8V is 60 / 0.19 = 315°/s. Assumed is that the legs will move +/- 15 degrees. The time to move a leg forwards or backwards would then be 0.05s. This is however not the actual speed, since the specifications are based on a servo without any load. Therefore, the mass of the robot has to be taken into account here.
Like Newton's second law F = m x a (a force F is required to accelerate a mass with acceleration a) for linear movements, the same is applicable for rotations. In this case, a momentum is required to give a body with a certain mass moment of inertia a specific angular acceleration. To calculate the mass moment of inertia, the weight is assumed to be distributed evenly with a radius of half a Brainstem's width plus half a servo width:
   R = ½ x 0.032 + ½ x 0.040 = 36mm
Mass Moment of Inertia will then be:
   I = R2 x MTotal = 0.0362 x 0.356 = 0.46 x 10-3kgm2
Acceleration is calculated with the stall torque of the servo:
   a = TStall / I = 0.3 / 0.46 x 10-3 = 650rad/s2 = 37°/s2
Time to reach operating speed:
   TOperating = VOperating / a = 315 / 37 = 8s
This means the servo will not reach it's maximum operating speed.

Robot Power Consumption

Total robot current consumption of one Brainstem and 3 servos:
   ITotal= IBrainstem+ 3 x IServo = 0.050 + 3 x 0.15 = 0.5A
Battery Life depends on the battery capacity Q of the 4 AA batteries, and the total robot current consumption:
   TBattery = 4 x Q / ITotal = 4 x 0.2200 / 0.5 = 1.76h = 1:45h

Robot Building Costs

Acroname's controller, including serial interface is about 100$. The HS322HD servo and SRF04 ultrasonic range sensor cost about 15$ and 25$. Adding four chargeable batteries, and a battery pack totals to 190$. The other building materials (two sizes aluminum sheet, nuts and bolts), is about 20$. So the total cost of the robot is just above 200$, which is a cheap robot compared to other simple hexapod designs. However, take into account shipping costs and import / export fees. The shipment from the US to Holland resulted in an extra 90$.