Professional Documents
Culture Documents
INTRODUCTION
1.1 Aim of the Project
Locomotion, the ability of a body to move from one place to another, is a defining
characteristic of animal life. It is accomplished by manipulating the body with respect to
the environment. In the case of environments with discontinuous ground support, such as a
rocky slope, a flight of stairs, or the rungs of a ladder, it is arguable that the most
appropriate and versatile means for locomotion is legs. Legs enable the avoidance of
support discontinuities in the environment stepping over them. The main aim of this project
is to build a bipedal robot with a total of 6 DOF (degrees of freedom). This enables the
bipedal robot to mimic the human way of walking to most extent, thereby making the robot
to move in all kinds of terrains and also eliminating the need for a special environment for
the biped to work. The biped robot can adapt to the normal conditions of transportation
which have been designed for human beings and this enables the biped robot to be exposed
to a wide variety of applications. The control of the biped i.e the Gait to be performed by
the biped is instructed to itself by means of on-hands manipulation, backed by reverse
mapping.
Biped robots represent a very interesting research subject, with several particularities and
scope topics, such as: mechanical design, gait simulation, patterns generation, kinematics,
dynamics, equilibrium, stability, kinds of control, adaptability, biomechanics, cybernetics,
and rehabilitation technologies. We have diverse problems related to these topics, making
the study of biped robots a very complex subject, and many times the results of researches
are not totally satisfactory. However, with scientific and technological advances, based on
theoretical and experimental works, many researchers have collaborated in the evolution of
the biped robots design, looking for to develop autonomous systems, as well as to help in
rehabilitation technologies of human beings.
industry is also exploring the potential of such machines. Even without high-level
intelligence, biped robots are potentially superior to wheeled or tracked vehicles in complex
and cluttered environments, since they can climb stairs or step onto or over large obstacles.
Building truly humanoid robots will require significant advances in areas including, among
others, high-level cognition, computer vision, speech synthesis, speech recognition,
manipulation and biped locomotion. Recent interest in humanoid robotics has spawned a
large number of research projects focusing either on individual problems or on systems
integration.
In the natural setting, locomotion takes on many forms, whether its the swimming
of amoebas, flying of birds, or walking of humans. The diversity of animal locomotion is
truly astounding and surprisingly complex.
The same is true in objects crafted by man: airplanes have wings that create lift for
flight, tanks have tracks for traversing uneven terrain, automobiles have wheels for rolling
efficientlyand robots are now walking on their own two legs! Moreover, legs are an
obvious choice for locomotion in environments designed for human walking, running, and
climbing.
To the extent that a machine equipped with two legs may imitate a humans gait,
bipedal robots are biomimetic. The appeal to biomimetic largely stops here. This is because
the material and components available to an engineer for creating a bipedal robot are quite
different from those provided by biology. For example, the engineer has at his disposal
metal instead of bones, motors instead of muscles, wires instead of nerves, and
microprocessors instead of a brain. In addition, there are differences in what quantities can
be sensed and the speed and accuracy with which they can be sensed. Just as important, the
operational expectations are different. Whereas we are accustomed to many years of
training required for a human to acquire a high degree of skill in locomotion related
activities (consider a baby learning to walk), and we expect ability to vary greatly from one
human to another (consider the sprinter Michael Johnson versus the average runner), we
expect that the functioning of machines be exactly reproducible and correct from the
moment they are turned on. We would be greatly disappointed in a car, for example, if the
automatic transmissions control system took many trials to learn how to smoothly shift
gears or to maximize the vehicles intended performance, whether that be speed of
acceleration or fuel economy. Similarly, we are disappointed in a legged robot whose
control system cannot deliver gaits that utilize the full capabilities of the machine, in terms
of elegance, speed, energy economy, and of course, stability.
Environmental Awareness
Robot arms are not usually expected to perform in unknown situations. They generally are
designed for specific working conditions and their ability to handle unexpected
disturbances is limited. Ideally, walking robots are supposed to handle rough and unknown
terrain.
Success Metrics
Robotic arms are often judged on their ability to position their end effectors precisely.
Robotic walkers are usually not judged on their ability to position precisely but rather on
their ability to get from Point A to Point B without falling down.
Impacts
Most robot arms are not designed to handle impacts. Walking, however, has an impact at
every touchdown.
functional neural stimulation).As a result, only slow motions may be achieved. Truly
dynamic motions, such as balancing, running or fast walking, are excluded with these
approaches.
CHAPTER-2
BIPED TERMINOLOGY
2.1 Terminology
Biped is a very interesting area of robotics where the various attributes of the
mechanism are influenced from the human behaviour of walking. Many aspects of modern
life involve the use of intelligent machines capable of operating under dynamic interaction
with their environment. Bipedal are Hyper DOF system (>20) with Complex Kinematics
and Dynamics which are also complex real-time control architecture. Complexity limits the
trajectory tracking of ease. Conventional control algorithms for humanoid robots can run
Generally the movement on the land so far has been achieved in three ways-the
legs, wheels, tracks. Though there are various advantages like speed to the transport by
wheels and tracks they prove to be disadvantageous in the rough terrain and when they
meet the obstacles. When they meet an obstacle the axle should be at least a little high than
the height of the obstacles and in case where the wheeled vehicles are supposed to go uphill
their movement is restricted by the max torque capacity of the vehicle. In the above cases
the only way of overcoming these is the movement through legs. Tracks are said to have
greater balance in rough terrain too but their ability to turn at greater speeds Is considerably
less. Therefore, a new generation of robots called the bipeds have come into usage which
use the advantages of wheeled movement of having great speed and the use of legs to easily
overcome the obstacles.
Bipeds however, caught the eye of the specialists in the military research.
Considering the situations that are frequently met in military and defence operations the
vehicles or the medium of transport for the military equipment comes into picture. As result
many such vehicles are designed and implemented but all those necessaries are met at a
price of either sacrificing the speed or balancing itself. This problem has been solved by the
implementing the two technologies into a single robot called biped. Besides, having high
10
stability it also believed to achieve farther speeds with more advancements in the
technology.
Biped robot dynamics are mainly categorized into two divisions. First being the
static stabilization and the other being the dynamic stabilization. Static stabilization is
achieved through the COG based stabilization strategy whereas the dynamic stabilization is
achieved through the internal stabilization strategy.
Many studies on biped walking robots have been performed since 1970. During
that period, biped walking robots have transformed into biped humanoid robots through the
technological development. Furthermore, the biped humanoid robot has become a one of
representative research topics in the intelligent robot research society. Many researchers
anticipate that the humanoid robot industry will be the industry leader of the 21st century
and we eventually enter an era of one robot in every home. The strong focus on biped
humanoid robots stems from a long-standing desire for human-like robots. Furthermore, a
human-like appearance is desirable for coexistence in a human-robot society. However,
while it is not hard to develop a human-like biped robot platform, the realization of stable
biped robot walking poses a considerable challenge. This is because of a lack of
understanding on how humans walk stably. Furthermore, biped walking is an unstable
successive motion of a single support phase. Early biped walking of robots involved static
walking with a very low walking speed. The step time was over 10 seconds per step and the
balance control strategy was performed through the use of COG (Center Of Gravity).
Hereby the projected point of COG onto the ground always falls within the supporting
polygon that is made by two feet. During the static walking, the robot can stop the walking
motion any time without falling down. The disadvantage of static walking is that the
motion is too slow and wide for shifting the COG.
taken into consideration where modelling has to be done by taking the center of gravity of
the robot and then maintaining it in the required positions the dynamics of a bipedal robot
however do not take into account the center of gravity rather it takes the methodology of
the internal stabilizations where a feedback control loop is designed to give the information
about the bipeds position at every instant of the walking motion and the feeding it back to
the controller so that the controller then corrects its walking motion and maintains the
stability of the robot even in high speed conditions. This type of considerations requires
considerable mechanics and inverse kinematics to get the desired equations that can solve
the dynamics of the biped motion with high speed walking. Further, different kinds of
sensors can be accommodated with the bipedal robot to make it more compatible and
reliable like using the ultrasonic sensors to avoid obstacles etc.
Bipeds became an interesting topic and few applications of it are to use them as the
artificial legs for humans. Hence, this integration of different aspects of technology the
bipeds are most likely to find a huge number of applications in many diverse fields and also
in the evolution of multi-legged such as four legged robots which can work as a dog, six
legged robots to simulating the spider movements with much more dexterity and dynamic
stability.
13
are not suitably controlled, a biped robot easily falls down. In addition, during dynamic
walking, a biped robot may falls down from disturbances and cannot stop the walking
motion suddenly. Hence, the notion of ZMP (Zero Moment Point) was introduced in order
to control inertial forces . In the stable single support phase, the ZMP is equal to the COP
(Center of Pressure) on the sole. The advantage of the ZMP is that it is a point where the
center of gravity is projected onto the ground in the static state and a point where the total
inertial force composed of the gravitational force and inertial force of mass goes through
the ground in the dynamic state. If the ZMP strictly exists within the supporting polygon
made by the feet, the robot never falls down. Most research groups have used the ZMP as a
walking stability criterion of dynamic biped walking. To this end, the robot is controlled
such that the ZMP is maintained within the supporting polygon.
2.2 Walking Strategies
In general, the walking control strategies using the ZMP can be divided into two
approaches. First, the robot can be modeled by considering many point masses, the
locations of the point masses and the mass moments of inertia of the linkages. The walking
pattern is then calculated by solving ZMP dynamics derived from the robot model with a
desired ZMP trajectory. During walking, sensory feedback is used to control the robot.
Second, the robot is modeled by a simple mathematical model such as an inverted
pendulum system, and then the walking pattern is designed based on the limited
information of a simple model and experimental hand tuning. During walking, many kinds
of online controllers are activated to compensate the walking motion through the use of
various sensory feedback data including the ZMP. The first approach can derive a precise
14
walking pattern that satisfies the desired ZMP trajectory, but it is hard to generate the
walking pattern in real-time due to the large calculation burden. Further, if the
mathematical model is different from the real robot, the performance is diminished. On the
contrary, the second approach can easily generate the walking pattern online. However,
many kinds of online controllers are needed to compensate the walking pattern in real-time,
because the prescribed walking pattern cannot satisfy the desired ZMP trajectory. In
addition, this method depends strongly on the sensory feedback, and hence the walking
ability is limited to the sensors performance and requires considerable experimental hand
tuning. To date, most biped humanoid robots have performed stable dynamic walking on
the well prepared flat floors. Studies involving walking on the uneven and inclined floors
are still in the early stage. Dynamic walking on an uneven surface is hard to realize because
most biped humanoid robots perform hard position control of the joints by using motors
and reduction gears and the response times of the actuators and sensors are low due to the
reduction gear and sensor noise. Accordingly, it is impossible for the robot to measure the
ground conditions instantaneously and it is also impossible for the robot to appropriately
respond even if it measures the ground conditions rapidly. On the contrary, the human ankle
can rapidly adapt to changing ground conditions. Furthermore, human muscles can contract
or relax quickly with smooth motions.
15
16
holds; i.e., walk flat footed. Humans, even with prosthetic legs, use foot rotation to decrease
energy loss at impact.
17
18
because it has both the feet on the ground and is highly stable. Hence, the center of gravity
of the robot is maintained exactly at the center of the two supporting legs while in the
double support stage.
Fig:2.3 Phases of bipedal walking with point feet. In (a), the single support or swing phase,
and in (b), the double support phase.
20
CHAPTER-3
THE DESIGN
3.1 MECHANICAL DESIGN
The Mechanical design forms the basis for developing this type of walking robots. The
mechanical design is divided into four phases:
1. Determining the Mechanical constraints.
2. Conceptual Design
3. Specification.
3.1.1 Determining the Mechanical Constraints
There are various design considerations when designing a Bipedal robot. Among
them, the major factors that have to be considered are:A) Robot Size Selection:
Robot size plays a major role. Based on this the Cost of the Project, Materials required for
fabrication and the no of actuators required can be determined. In this project miniature size
of the robot is preferred so a height not more than 40 cm is decided which includes
mounting of the control circuits. This small size of the robot enables us to carry out the
dynamic equations very easily and also to eliminate the unnecessary modal analysis and
21
stress analysis. Depending upon the size of the robot the foot of the robot is also chosen. If
the biped height is too big then relatively the biped foot gets bigger and bigger because the
assumption on which the present biped is being built is that, it is a static walking biped.
B) Degrees of Freedom
Human leg has got Six Degrees of freedom (Hip 3 D.O.F, Knee 1 D.O.F, Ankle 2
D.O.F), but implementing all the Six D.O.F is difficult due to increase in the complexity
and cost of the project. Placing 3 actuators in hip itself makes it difficult to frame the body
structure of the biped and several control issues are faced when the biped is set into motion.
While so in this project reduced degrees of freedom is aimed so 3 D.O.F per leg has been
finalized (Hip 1 D.O.F, Knee 1 D.O.F, Ankle 1 D.O.F). This type of system
formulated makes a pair of set with two different dynamic centers for motion in each set
and thus six degrees of freedom can be mimicked. By using this kind of mechanism the
bipedal robot can be used to mimic the human walking more realistically. Had there been
any actuators in the waist socket too it would take turns more like humans. and the need to
make the foot straight when walking would be eliminated to a certain degree and would be
used in more applications but as said earlier the more the degrees of freedom, more is the
complexity of programming all the servos.
C) Link Design
In this project U-shaped bracket like arrangement called servo frames and flat brackets
called servo clamps are used for various joints and connecting servos to the leg parts
wherever needed. Servo frames used are of various lengths according to the various lengths
22
of the different parts of the leg whereas the servo flat brackets will join the servo motors to
the different joints.
By using the U-shaped bracket the servos can be mounted easily and the actuation is
relatively very easy when compared to the conventional design of any typical robot which
consists of bars as links between different actuators. When such type of links are used,
special kind of equipment should be used to accommodate all the different types of the
motions that are required and the positioning of those actuators would also be difficult
because there could be a possibility of requiring more than one actuator at a particular joint
to perform motion in more than one axis. For example, just as in the care of a wrist or a
robot arm.
D) Stability
With Biped mechanism, only two points will be in contact with the ground surface. In
order to achieve effective balance, actuator will be made to rotate in sequence and the robot
structure will try to balance. If the balancing is not proper, in order to maintain the Center
of Mass, dead weight would be placed in inverted pendulum configuration with 1 D.O.F.
This dead weight will be shifted from one side to the other according to the balance
requirement. But in this project no such configuration is used.
E) Foot Pad Design
The stability of the robot is determined by the foot pad. Generally there is a concept that
over sized and heavy foot pad will have more stability due to more contact area. But there
is a disadvantage in using the oversized and heavy foot pad, because more material will be
23
required leading to increased costs and no significant contribution to the stability of the
system. This will also force the servo motors to apply more torque for lifting the various leg
parts.
24
3.1.3 Specifications
Material Required
ITEM
ILLUSTRATION
Aluminum
QUANTITY
SPECIFICATIONS
Provides connection
with the servo
round horn and
movement space of
the Servo; It also
provides connection
with two U-shape
brackets for
different applications.
Main U-shape
Bracket
Aluminum
Foot Plate
Aluminum
Servo-side
Bracket
Aluminum Ushape
Bracket
25
Aluminum U-shape
Bracket
Provides connection
with the servo
case; It also provides
connection with two
U-shape Brackets for
different applications.
NANO Shield
Arduino Nano
TT Linker Mini
TTLinker Mini is a
signal conversion
board, connect to
Arduino Nano TX1
and RX0 two digital
serial ports
26
Battery
2.4V,NiMh,
900mAh
SC Servo
(SCS15)
27
SC Servo is meaning
that Smart Control
Servo. SC Servo can
work at servo mode
and wheel mode, has
a unique ID number
to identify on BUS
network, have kinds
of baud rate available,
and can feedback the
value of Position,
Temperature,
Load, Speed and
Input Voltage
ILLUSTRATION
QUANTITY
SPECIFICATIONS
Screw 1
10
ISOP 3 x 10 mm
Screw 2
30
ISOP 3 x 6 mm
Screw 3
50
ISOP 3 x 4 mm
Screw 4
40
TP1P 2 x 6 mm
Screw 5
10
ISOF 3 x 6 mm
Nut
40
3 x 5 mm
Servo Cable
5264 connecter
100mm *4
150mm *2
28
Breadboard Jumper
Cables
CHAPTER 4
BIPED MODELLING METHODOLOGY
4.1 Gait of Biped
Gait is the pattern of movement of the limbs of animals, including humans, during
locomotion over a solid substrate. Most animals use a variety of gaits, selecting gait based
on speed, terrain, the need to manoeuvre, and energetic efficiency. While gaits can be
classified by footfall, new work involving whole-body kinematics and force-plate records
has given rise to an alternative classification scheme, based on the mechanics of the
movement. In this scheme, movements are divided into walking and running. Walking gaits
are all characterized by a 'vaulting' movement of the body over the legs, frequently
described as in inverted pendulum (displaying fluctuations in kinetic and potential energy
which are perfectly out of phase). In running, the kinetic and potential energy fluctuate inphase, and the energy change is passed on to muscles, bones, tendons and ligaments acting
as springs (thus it is described by the spring-mass model), as in case of animals and
29
humans. In case of a Bi pedal robot the energy changes are passed on to the physical leg
structure comprising of Servo frames, clamps, Footpads, Servomotors, and other minor
components which should be designed and assembled to give maximum durability and
control while walking.
30
4.3.1 Initialization
In the Initialization step the robot will be in balanced condition and in this step the
servomotors are made to return to home position. This will certainly help the robot to
advance into the next step.
31
4.3.2 Walking
Walking step is further classified into six phases.
Phase 1 Double Support:
In this phase both the legs are in same line and the center of mass is maintained
between the two legs.
Phase 2 Single Support (Pre-Swing):
In this phase both the ankle joints are in actuated in roll orientation which shifts the
center of mass towards the left leg and the right leg will be lifted up from the
ground.
Phase 3 Single Support (Swing):
In this phase, the right leg is lifted further and made to swing in the air. Hip and
knee joints are actuated in pitch orientation so that right leg is moved forward.
Phase 4 Post Swing:
In this phase the lifted leg is placed down with the actuation of ankle joints. After
the stage 5 stage 1 continues.
32
These stages are used for the modelling of the bipedal robot. However, considering
the ZMP which shifts its position very rapidly in the case of the humans the same
methodology cannot be adapted by the bipedal robot as of now, because of the
height constraints and the number of the degrees of freedom the biped motion is
very limited. This makes the biped to walk very slowly and the COG should not
cross the area where the landed foot is present on the ground during the single
support phase.
33
CHAPTER 5
ELECTRONICS AND CHASSIS
5.1 Electronics
The major electronic components comprise of Arduino Nano, which is the
processing unit and the and also the program memory is vested on the arduino board.The
Arduino is seated upon the Arduino Nano Shield for designed for smart serial control of
servos. The output from the Nano Shield goes to the TT Linker Mini which processes its
input and manipulates it to control both the legs using two different UART serial channels
connecting the Servo at Hip to the Servo at Ankle via Servo at Knee.
5.2 Arduino
34
Arduino is a tool for making computers that can sense and control more of the physical
world than your desktop computer. It's an open-source physical computing platform based on a
simple microcontroller board, and a development environment for writing software for the board.
Arduino can be used to develop interactive objects, taking inputs from a variety of switches
or sensors, and controlling a variety of lights, motors, and other physical outputs. Arduino projects
can be stand-alone, or they can communicate with software running on your computer
Advantages of Arduino
' Simple, clear programming environment - The Arduino programming environment is easy-to-use
for beginners, yet flexible enough for advanced users to take advantage of as well. For teachers, it's
conveniently based on the Processing programming environment, so students learning to program in
that environment will be familiar with the look and feel of Arduino
'
' Open
source and extensible software- The Arduino software is published as open source tools,
available for extension by experienced programmers. The language can be expanded through C++
libraries, and people wanting to understand the technical details can make the leap from Arduino to
the AVR C programming language on which it's based. Similarly, you can add AVR-C code directly
into your Arduino programs if you want to.
'
'
' Cross-platform - The Arduino software runs on Windows, Macintosh OSX, and Linux operating
systems. Most microcontroller systems are limited to Windows.
35
36
37
5.3.1 Power
The Arduino Nano can be powered via the Mini-B USB connection, 6-20V unregulated
external power supply (pin 30), or 5V regulated external power supply (pin 27). The power source
is automatically selected to the highest voltage source.
5.3.2 Memory
The ATmega168 has 16 KB of flash memory for storing code (of which 2 KB is used for
the bootloader); the ATmega328has 32 KB, (also with 2 KB used for the bootloader). The
ATmega168 has 1 KB of SRAM and 512 bytes of EEPROM (which can be read and written with
the EEPROM library); the ATmega328 has 2 KB of SRAM and 1 KB of EEPROM.
Shields are boards that can be plugged on top of the Arduino PCB extending its
capabilities. The purpose of a shield is to provide new plug-and-play functionality to the
host microcontroller, so as to control the actuation of Smart Control Servos. Here in the
use of Arduino Nano shield in the electronics of Bipedal Robot is to mutate the number of
inputs according to the servos. The wiring schema of the Biped is such that all the SC
Servos of one leg are connected in series i.e Servo at the Hip to the Servo at the Ankle via
Servo at Knee. So to actuate each servo simultaneously which a Arduino can't do by itself
the Arduino Nano Shield is used. With this smart servo shield and Smart Control series
servos, It's quite easy to drive multi servos with daisy chain connection to Arduino
processor and build a biped, robotic dog, hexapod with powerful servos.
5.5 SC Servo
39
SC Servo is meaning that Smart Control Servo. SC Servo can work at servo mode and
wheel mode, has a unique ID number to identify on BUS network, have kinds of baud rate
available, and can feedback the value of Position, Temperature, Load, Speed and Input
Voltage. SC Servo is easy to be controlled by Arduino.
5.6.1 DC Motor
In a continuous DC motor, application of power causes the shaft to rotate
continually. The shaft stops only when the power is removed, of if the motor is stalled
because it can no longer drive the load attached to it.
40
In a stepping motor, applying power causes the shaft to rotate a few degrees, then
stop. Continuous rotation of the shaft requires that the power be pulsed to the motor. As
with continuous DC motors, there are sub-types of stepping motors. Permanent magnet
steppers are the ones youll likely encounter, and they are also the easiest to use.
Motor Type
Continuous DC
Pros
Cons
Wide selection
41
Requires
gear
needed
applications.
electronic switches.
With gearbox,
for
most
Poor
sizing
robotic
standards
and
in
mounting
arrangements.
Does
not
Poor
performance
for
robot
locomotion
over
uneven surfaces.
Consumes
high
current.
Dynamic
circuit
by
rotation.
leaving
coils
of
provide
stepping
expensive
Least
non-surplus
Can be used
42
Requires
modification
for
continuous
rotation.
Requires
special
for
precise
angular
driving circuit.
(the
latter
requires modification).
several
Available
standard
sizes,
more
in
Though
weight
limit
for
Upon careful research and on the basis of the above mentioned reasons Servos are being
selected for the actuation of the biped robot joints because of their precise angular control
which can mimic the human walking pretty much with ease.
43
44
45
Besides, holding the two legs together, it also serves as the platform or base to mount the
servo shield and the Arduino nano.
CHAPTER 6
ASSEMBLY
46
47
The C shape brackets make the complete robot links which means the whole body is
made up of C shaped brackets. The C shaped brackets accommodate the servos and then are
fixed together end to end. The other side of the servos also contain C shaped brackets
which are then fixed to the U shaped bracket on top.
(a)
(b)
Fig: 6.2 (a) C shaped brackets (b) assembled brackets
48
Finally, the U shaped bracket is being mounted on top of the two legs to give it
support and also to provide a base for the arduino and the ttlinker. With this the whole biped
body is assembled. The arduino and the ttlinker can also be screwed to the u shaped bracket
so that twist and bend positions it does not fall off the body.
49
CHAPTER 7
SOFTWARE PROGRAMING AND OPERATION
7.1 Methodology
The main idea of the project is to make in-Hand manipulating Biped Robot. InHand Manipulation, often called as Dexterous manipulation or Object manipulation is a
process of performing the actions to be done robot by the operator and simultaneously
feeding the same into the memory of the program chip. Then upon call for operation the
robot mimics the same actions fed to itself by the operator. This is achieved by the process
of Reverse mapping.
50
even toss the object in the air and catch it in a different pose. All these techniques have one
thing in common: they rely on resources extrinsic to the hand, either gravity, external
contacts or dynamic arm motions. We refer to them as extrinsic dexterity.
Upon using the Dexterous Manipulation Technology, the movement given to the
boy of the biped generates electrical impulses in the Smart control Servo motors and then
the impulses are backed to the Arduino Shield via TT Linker where the shield
communicates with the Arduino board and Arduino writes the movements as motion with
set of delays as command to servo motors. As this is an extrinsic effect the arduino is
programmed to receive the impulses and negate the impulses to create the intrinsic effect
and stores the program to its flash memory. Thus when on operation the previously stored
movements are performed by the biped.
51
7.4 Advantages
The advantages of this process is that hefty coding schedules can be discarded for
each type of motion/geometric configuration to be performed by the biped. Only a one time
program should be coded so as to perform the movements fed to the biped. This system
eliminates the program changeover time and program development time. a person with high
programming skills isn't needed every time to create the set of codes for each type of
movement, rather a lay man can feed the movement by physical manipulation of required
movement.
The program and the header files required to code the Biped are shown further.
52
/*
* SCServo.h
* Series Control Servo
* Created on: 2015.04.06
* Author: Hareen,Jonny,Surya|Project Biped|
*/
#ifndef _SCSERVO_h_
#define _SCSERVO_h_
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#define
#define
#define
#define
#define
#define
s8
u8
u16
s16
u32
s32
char
unsigned char
unsigned short
short
unsigned long
long
class SCServo{
public:
SCServo();
u8 EnableTorque(u8 ID, u8 Enable, u8 ReturnLevel=2);
u8 WritePos(u8 ID, s16 position, s16 velocity, u8
ReturnLevel=2);
u8 RegWritePos(u8 ID, s16 position, s16 velocity, u8
ReturnLevel=2);
s16 ReadPos(u8 ID);
s16 ReadVoltage(u8 ID);
s16 ReadTemper(u8 ID);
void RegWriteAction();
void SyncWritePos(u8 ID[], u8 IDN, s16 position, s16
velocity);
u8 WriteID(u8 oldID, u8 newID, u8 ReturnLevel=2);
u8 WriteLimitAngle(u8 ID, u16 MinAngel, u16 MaxAngle, u8
ReturnLevel=2);
53
u8
WriteLimitTroque(u8
ID,
u16
MaxTroque,
u8
ReturnLevel=2);
u8 WritePunch(u8 ID, u16 Punch, u8 ReturnLevel=2);
u8 WriteBaund(u8 ID, u8 Baund, u8 ReturnLevel=2);
u8 WriteComplianceMrgin(u8 ID, u8 CCW, u8 CW, u8
ReturnLevel=2);
u8 WritePID(u8 ID, u8 P, u8 I, u8 D, u8 ReturnLevel=2);
u8 WriteSpe(u8 ID, s16 velocity, u8 ReturnLevel=2);
u8 LockEprom(u8 ID, u8 Enable, u8 ReturnLevel=2);
private:
u8 ReadBuf(u8 len, u8 *buf=NULL);
#define
startByte 0xFF
#define
TIMEOUT
2000//TIMEOUT 2000
#define
#define
#define
#define
#define
#define
#define
#define
B_1M
0
B_0_5M
B_250K
B_128K
B_115200 4
B_76800
B_57600
B_38400
//register Address
#define P_MODEL_NUMBER_L 0
#define P_MODEL_NUMBER_H 1
#define P_VERSION_L 3
#define P_VERSION_H 4
#define P_ID 5
#define P_BAUD_RATE 6
#define P_RETURN_DELAY_TIME 7
#define P_RETURN_LEVEL 8
#define P_MIN_ANGLE_LIMIT_L 9
#define P_MIN_ANGLE_LIMIT_H 10
#define P_MAX_ANGLE_LIMIT_L 11
#define P_MAX_ANGLE_LIMIT_H 12
#define P_LIMIT_TEMPERATURE 13
#define P_MAX_LIMIT_VOLTAGE 14
#define P_MIN_LIMIT_VOLTAGE 15
#define P_MAX_TORQUE_L 16
#define P_MAX_TORQUE_H 17
#define P_ALARM_LED 18
#define P_ALARM_SHUTDOWN 19
#define P_COMPLIANCE_P 21
54
1
2
3
5
6
7
#define
#define
#define
#define
#define
#define
P_COMPLIANCE_D 22
P_COMPLIANCE_I 23
P_PUNCH_L 24
P_PUNCH_H 25
P_CW_COMPLIANCE_MARGIN 26
P_CCW_COMPLIANCE_MARGIN 27
#define
#define
#define
#define
#define
#define
#define
P_TORQUE_ENABLE (31)
P_LED (32)
P_GOAL_POSITION_L (33)
P_GOAL_POSITION_H (34)
P_GOAL_SPEED_L (35)
P_GOAL_SPEED_H (36)
P_LOCK (37)
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
P_PRESENT_POSITION_L (41)
P_PRESENT_POSITION_H (42)
P_PRESENT_SPEED_L (43)
P_PRESENT_SPEED_H (44)
P_PRESENT_LOAD_L (45)
P_PRESENT_LOAD_H (46)
P_PRESENT_VOLTAGE (47)
P_PRESENT_TEMPERATURE (48)
P_REGISTERED_INSTRUCTION (49)
P_ERROR (50)
P_MOVING (51)
//Instruction:
#define
#define
#define
#define
#define
#define
#define
INST_PING 0x01
INST_READ 0x02
INST_WRITE 0x03
INST_REG_WRITE 0x04
INST_ACTION 0x05
INST_RESET 0x06
INST_SYNC_WRITE 0x83
};
#endif
7.6 Program
55
/*
* Series Robot Control v1.0
* Created on: 2015.04.07
* Author: Hareen,Jonny,Surya
*/
#include <SCServo.h>
#include <EEPROM.h>
SCServo SERVO;
int addr = 0;
int maxaddr = 12;
int LED1 = 4;
int LED2 = 2;
int motion_t = 900;
int T = 1000;
#define
But_1
A1 // define an button for select Program
mode or Control mode
#define
But_2
A2 // define an button to confirm input
void ProgramStartMotion()
{
int bot2 = analogRead(But_2); //
if(bot2<20)
{
digitalWrite(LED2,HIGH);
//
delay(500);
digitalWrite(LED2,LOW);
for(int y=0; y<=960;y++)
{
for(int i = 1; i <= 6; i++)
{
s16 pos = SERVO.ReadPos(i);//read Servo ID i position
byte posL = pos&0xff;
EEPROM.write(y, posL);
byte posH = pos>>8;
y = y + 1;
EEPROM.write(y, posH);
y = y + 1;
}
}
EEPROM.write(12, 0xff);
EEPROM.write(13, 0xff);
}
56
}
void ProgramMotion()
{
int back_loop = 1;
while(back_loop)
{
SERVO.EnableTorque(0xfe, 0);
delay(200);
digitalWrite(LED1,LOW);
//
delay(200);
digitalWrite(LED1,HIGH);
//
int bot1 = analogRead(But_1); //
if(bot1 < 20)//exit program motion
{
addr = 0;//perform start at address 0
back_loop = 0;
digitalWrite(LED1,LOW);
//
delay(500);
}
int bot2 = analogRead(But_2); //
if(bot2 < 20)
{
digitalWrite(LED2,HIGH);
//
delay(500);
digitalWrite(LED2,LOW);
//
for(int i = 1; i <= 6; i++)
{
s16 pos = SERVO.ReadPos(i);//read Servo ID i position
byte posL = pos&0xff;
EEPROM.write(addr, posL);
byte posH = pos>>8;
addr = addr + 1;
EEPROM.write(addr, posH);
addr = addr + 1;
// advance to the next address. there are 1k bytes in
// the EEPROM, so go back to 0 when we hit 1k.
if (addr == 960)
{
addr = 0;
delay(100);
}
}
if(addr>maxaddr)
57
{
maxaddr=addr;
EEPROM.write(addr, 0xff);
EEPROM.write(addr+1, 0xff);
}
digitalWrite(LED2,HIGH);
//
delay(500);
digitalWrite(LED2,LOW);
//
}
}
}
void PerformMotion()
{
SERVO.EnableTorque(0xfe, 1);
// read a byte from the current address of the EEPROM
for(int i = 1; i <= 6; i++)
{
byte posL = EEPROM.read(addr);
addr = addr + 1;
byte posH = EEPROM.read(addr);
addr = addr + 1;
s16 pos =posH<<8;
pos = pos | posL;
s16 current_pos = SERVO.ReadPos(i);//read Servo ID:1 position
if(pos!=-1)
{
s16 pos_error = abs( pos - current_pos) ;
s16 s = motion_t * 10;
//s *=100;
s16 velocity = s / pos_error;
//SERVO.WritePos(i, pos, velocity);
SERVO.RegWritePos(i, pos, velocity);
}
if (addr == 960)
{
addr = 0;
delay(100);
}
}
if(EEPROM.read(addr)==0xff && EEPROM.read(addr+1)==0xff)
{
addr = 0;//read end flat perform start at address 0
}
58
SERVO.RegWriteAction();
delay(T);
}
void setup()
{
Serial.begin(1000000);//init Serial baudrate
delay(500);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
SERVO.EnableTorque(0xfe, 0);//
ProgramStartMotion();
}
void loop()
{
int bot1 = analogRead(But_1); //
digitalWrite(LED2,LOW);
//
if(bot1<20)
{
digitalWrite(LED1,HIGH);
//
delay(100);
ProgramMotion();
}
else
{
digitalWrite(LED1,LOW);
//
digitalWrite(LED2,HIGH);
//
PerformMotion();
}
int bot2 = analogRead(But_2); //
if(bot2<20)
{
digitalWrite(LED2,LOW);
//
motion_t = motion_t - 100;
if(motion_t < 100)
{
motion_t = 1000;
}
delay(500);
}
}
59
7.7 Operation:
For initially setting the robot to a reference position or to reset the robots position the S2
button is pressed. This button is also used for deleting all the previously saved motion and
bringing it back to the original position. This should be pressed initially after power on.
Another method of resetting is to press the reset button for 1 second until the LED2 flashes
for one time.
The period of the on time for LED2 will be used by the biped to keep its position to set up
its initial motion.LED2 normally on means that the initial setup is complete. If after power
is on, no reset button is pressed or S2 is pressed this will skip the initial setting.
When LED2 normally on, pressing the S1 button to let LED2 off and LED1 flashing, this
time can be used to set biped robot motion by hand, all SC Servo torque output will be off,
and the arbitrary flipping in biped robots degree of freedom by hand to set up the position
desired can be done.
In order to let the continuity of action, the movement angle should not be too big
between the joints of the robot.
CHAPTER 8
APPLICATIONS
60
Industrial plants can be run without a break if tele-operated robots are able to
maintain them, including hazardous areas. Besides, we can expect that the plants do not
need remodelling when the maintenance robots are humanoid robots.
Bipeds can be used for assisting the physically challenged people in walking.
Bipeds can be used for Guarding the home and office.
Bipeds can be used to replace some of the human tedious works such as carrying loads.
Bipeds can be used to develop Polypedal robots which could be more stable.
Bipeds are a very useful means of transportation in rough or uneven terrains or slippery
terrains.
Bipeds can be used in military where medical supplies have to be transported to a remote
base.
The robot can move in the environment that is designed for humans.
61
CHAPTER 9
CONCLUSION
62
In the present day world where technological advancements play a major role in
every field, the whole world is running towards achieving a better tomorrow where almost
all the present day processes will be automated and would require less or no human
intervention at all. With the technology advancing in leaps and bounds, the usage and
application of the humanoid robots are ever increasing attracting the industries, educational
institutions, medical departments, defence etc., globally. It is true that humanoid robots
need more time to be applied in real society on a large scale, but it started approaching the
goal with a rapid speed. We believe that biped humanoid robots have a good chance of
being the largest product of this century.
CHAPTER 10
FUTURE ADVANCEMENTS
63
These BI-PED legs can further be aimed into creating a full humanoid. First the hands can
be added enabling it to walk and pick up things, punch obstacles and other functions. Then
a head can also be attached enabling it to recognize colours through image processing.
More human like functions can be assigned to the robot leading it to become something
bigger than only a pair of bipedal legs. A controller can also be made to manually handle
the bot and make it perform tasks.
REFERENCES
M. Vukobratovi c, B. Borovac, D. Surla, and D. Stoki' c,Biped Locomotion.
Dynamics, Stability, Control and Application.Springer, 1990.
64
65