Design
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:
- Simple robot design, using ordinary tools to make the robot
- Inexpensive and simple robot parts
- Much room for experimenting with algorithms
- Sensors for autonomous movement
- Wireless operation by using a standard robot servo controller
- 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.
Mechanics
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):
- 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.
- The servos are used as hinges for the legs, supporting the complete weight of the robot.
- 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.
- 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
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
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.
Power
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$.