hexapod robot_ tariq mamkegh
TRANSCRIPT
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
1/38
German Jordanian University
Hexapod RobotRobot design, model and control
Faculty Advisor:
Dr. Nathir Rawashdeh
Project by:
Tareq Mamkegh
Ahmad Hindash
Mohammad Al-Jabari
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
2/38
2
PrefaceThis report concerns the modelling and control of a hexapod robot. The project is composed in the
period from June 2010 May 2011 .The work was carried out at the German Jordanian University by
three 8th semester students of the Mechatornics Department. The project proposal is given by Dr. Nathir
Rawashdeh from the teaching committee of the Mechatronics Department at German Jordanian
University. The report is written as a research paper that can provide information to further
development on the subject of modelling and controlling hexapod robots. Throughout the project, Excel
has been used for data processing, simulating and presenting results. Also using 3D Max for designing
the robot and simulating its movement.
Group: Team Hex, German Jordanian University
Dr. Nathir Rawashdeh Tareq Mamkegh
Mohammad Al-Jabari Ahmad Hindash
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
3/38
3
List Of Contents:
Chapter1 : Introduction ................................................................................................................................ 6
1.1 Robots ............................................................................................................................................... 6
1.2 Mobile Robots ................................................................................................................................... 7
1.3 Legged robots.................................................................................................................................... 7
1.4 Hexapod ............................................................................................................................................ 8
1.5 Objectives.......................................................................................................................................... 9
Chapter2: Parts & Design ....................................................................................................................... 10
2.1 Component list : .......................................................................................................................... 10
2.2 Leg and body Chassis 3D design: ................................................................................................ 13
2.3 Robot Description ....................................................................................................................... 14
Chapter3: Modelling ........................................................................................................................... 15
3.1 Introduction to Modelling ....................................................................................................... 15
3.2 Selection of coordinate Frames .............................................................................................. 15
3.2.1 Robot body frame ............................................................................................................... 15
3.2.2 Leg frame and notations ..................................................................................................... 15
3.3 Kinematic model ..................................................................................................................... 16
3.3.1 Robot leg parameters ......................................................................................................... 16
3.3.2 Forward kinematics for robot leg ....................................................................................... 17
3.3.3 Inverse Kinematics .............................................................................................................. 18
3.3.4 Solving inverse kinematics for the leg Geometrically ......................................................... 18
3.3.5 Summary of inverse Kinematics Equations ......................................................................... 23
3.3.6 Test of Inverse Kinematics .................................................................................................. 23
Chapter4: System Design ................................................................................................................ 24
4.1 System Structure ................................................................................................................. 24
4.2 System Block Diagram ......................................................................................................... 25
4.3 Gait generation ................................................................................................................... 26
4.3.1 Wave Gait Metachronical Gait .................................................................................... 26
4.3.2 Ripple Gait Two Wave Gait .......................................................................................... 26
4.3.3 Tripedal Gait .................................................................................................................... 27
Chapter5: Epilogue ..................................................................................................................... 28
5.1 Conclusion ....................................................................................................................... 28
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
4/38
4
List of Figures:
Chapter1 : Introduction................................................................................................................................ 6
Figure 1.1 Group of Robots ................................................................................................................... 6
Figure 1.2. Toyota monoped ................................................................................................................. 7
Figure 1.3 Honda ASIMO Robot ............................................................................................................ 7
Figure 1.4 Boston Robotics Big Dog ....................................................................................................... 8
Figure 1.5 3d model of the Hexapod ..................................................................................................... 8
Chapter2: Parts & Design ......................................................................................................................... 10
Figure 2.1 Hitec HS-645MG servo motor ............................................................................................ 10
Figure 2.2 ASB-04aluminum servo bracket ........................................................................................ 10
Figure 2.3 Force sensor .................................................................................................................... 11
Figure 2.4 Arduino Mega Board ......................................................................................................... 11
Figure 2.5 Mini maestro polulu 24-channel Servo driver ...................................................................... 12
Figure 2.6 BlueSMiRF Bluetooth module ........................................................................................... 12
Figure 2.7 Chassis 3D model ............................................................................................................. 13Figure 2.8 Theridion tepidariorum leg ............................................................................................... 13
Figure 2.9 links and joints draft .......................................................................................................... 13
Figure 2.10 3D model of leg .............................................................................................................. 14
Figure 2.11 Actual Leg ...................................................................................................................... 14
Figure 2.12 3D model of Robot .......................................................................................................... 14
Figure 2.13 Actual Robot ................................................................................................................... 14
Chapter3: Modelling .................................................................................................................................. 15
Figure 3.1 Location of body frame relative to robot hardware ............................................................. 15
Figure 3.2 3d render for one leg ........................................................................................................ 16
Figure 3.3 Isometric link view for leg links and joints ........................................................................... 16
Figure 3.4 General forward equation , from link I to link i-1 ................................................................ 17
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
5/38
5
Figure 3.5 Illustration of the possible angles which the legs joints are confined to rotate within. ........... 19
Figure 3.6 Illustration of the coxa joint angle....................................................................................... 19
Figure 3.7 transformation equation ................................................................................................... 20
Figure 3.8 Illustration of the coxa frame. ............................................................................................ 20
Figure 3.9 Illustration of the 2D triangles. ........................................................................................... 21
Figure 3.10 Illustration of IK implementation on robot leg ................................................................... 23
Chapter4: System Design .......................................................................................................................... 24
Figure 4.1 The system is based on the interaction of three elements. ................................................. 24
Figure 4.2 System structure .............................................................................................................. 25
Figure 4.3 System Block Diagram ....................................................................................................... 25
Figure 4.4 Single wave gait ................................................................................................................ 26
Figure 4.5 Two wave gait .................................................................................................................. 27
Figure 4.6 Tripedal gait ..................................................................................................................... 27
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
6/38
6
Chapter1 : Introduction1.1Robots
The first thing that comes to mind when thinking of a robot ,is a machine that imitates a human
like the robots in comics & movies, and many of these robots captured our imagination. People still
havent been able to give robots enough common sense to reliably interact with our world.
Robots encounter by humans are the ones that do work which is too dangerous, dirty or even
boring. And these types of robots can be found in Auto, Manufacturing, Medical and space
industries. And other robots like Mars Rover and Caribou explore places that are too dangerous for
humans to reach. While other types of robots are educational and Plain fun like Teckno ,and NAO.
There are many types of robots which can be summarized in the following list :
- Industrial Robots: Lots of industries use robots today for jobs that need endurance, speed,
accuracy and reliability. Robots are also used by companies like IBM to pick very small electric
components from trays and precisely place them on printed circuit boards.
- Agricultural Robots: Most of the agricultural robots are still in design phase. But still there are
robots available today that help humans in agricultural sector.
- Telerobots: They are automated robots, operated with the help of distant operator and used for
work that is hazardous or inaccessible to humans. For example: robots used in nuclear power
plants or for dismantling bombs.
- Service Robots: They consist of robots used outside of an industrial field. They include robots
used either for domestic help or robots used for military use.
- Mobile Robots: Also known as AGV's or Automated Guided Vehicles, these robots are not
stationary at one place. They are generally used at places like hospitals, warehouses and
container ports to transport material.
Figure 1.1 Group of Robots
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
7/38
7
1.2Mobile Robots
Mobile robots have the ability to move in an environment unlike stationary industrial robots. And
they can be classified by their travel environment; Water, air, ground, ice or space. Or by the device
they use to move; Legs, wheels or tracks.
1.3Legged robots
The main reason for exploring legged robots ,is the flexibility of mobility on difficult terrain, where
wheeled robots cannot go. Wheels excel on flat surfaces or specially prepared surfaces, but they
dont perform well when terrain is uneven, which is the case in real life, and because of these
limitations legged robots are becoming more interesting to research and explore.
Types on Legged robots:
- One legged robots Hopper robots
- Two legged robots Bi-ped
Figure 1.2. Toyota monoped
Figure 1.3 Honda ASIMO Robot
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
8/38
8
- Three or more legged robots
1.4Hexapod
The Hexapod is an insect inspired robot which has six legs that enables it to move flexibly on various
terrains. The main advantage of this type of robot is its stability. Unlike bipedal robots , this robots is
statically stable; therefore they dont have to depend on balance mechanisms. Although it needs
feedback and positive reaction to acquire smoother walk.
This type of robot can be used for many application in real life, such as search and rescue
application, environment exploration, and also as a CNC machine.
Figure 1.5 3d model of the Hexapod
Figure 1.4 Boston Dynamics BigDog
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
9/38
9
1.5Objectives
Main objective of this project is to create a base hexapod platform which can traverse on rough
terrain, and this platform is to be used for further educational purposes and research.
To complete these objectives the system should be able to supply the following functionality:
- Kinematic model including Inverse Kinematics (IK) for control of the robot in a global coordinate
system.
- Gait generating algorithm based on directional input from operator.
- Special gait generation for rough terrain using force sensors.
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
10/38
10
Chapter2: Parts & Design
In this chapter we will list all components of the hexapod followed by a description for each Component.
2.1Component list :
DC Servo Motors.
Servo Brackets.
Force Sensors
Arduino Mega Board.
Mini Maestro Polulu.
Blue Smirf.
DC Servo Motor:
It is a Hitec HS-645MG High torque (9.6 Kg.cm). The running current is 450mA and the idle
current is 9.1mA with an operating voltage 4.8 volt or 6 volt.
Motor Brackets:
It is a High quality aluminum servo bracket. It Works great for making multi-axis joints
for use in robot arms and legs. It also fits standard size servos. We had to buy those
because we could not find with such finishing and accuracy products in any supplier in
Jordan.
Figure 2.2 ASB-04aluminum servo brackets
Figure 2.1 Hitec HS-645MG servo motor
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
11/38
11
Force Sensors:
This sensor is used to measure the pressure on it is surface which is mounted on each
end effector of each leg. The sensor is implemented to check if the end effector on has
reached a surface that can walk on it which is used to implement the rough terrain
adaptation. The higher the pressure on the leg, the higher the amplitude of the signal
that goes to the Arduino in order to process it. The digital readings varies from 0 to 800.
Arduino Mega Board:
This is an open source and open hardware micro controller with an Atmel AVR processor
(ATmega1280). It is based on JAVA language and it is programming Language similar to
C++ with some specifications and modifications. It serves as a master that
sends/receives commands and data from the drive circuit and the force sensors. It
solves the Inverse Kinematics equations and sends them to the servo motors driver. The
transmission medium per second is 112500 Baud in order to be in synch with the Mini
Mestro plolulu and the BlueSmirf. It has four Tx/Rx pins that provide the proper
interface between the microcontrollers. It has 14 PWM pins, 16 Analog input pins and
30 Digital pins. It also supports I2C (TWI) and SPI communication.
Figure 2.4 Arduino Mega Board
Fi ure 2.3 Force sensor
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
12/38
12
Mini Maestro Polulu:
This is our drive circuit for the 24 servo motors. It is connected to the Arduino Mega
using Tx/Rx pins. It can be powered either by 5Volt or by its USB Mini Cable. It has a real
time control program that provides options to control the servo motor from the
computer. Also you can program the Maestro using simple programming language such
as saving frames and sequences to do such examples. The Signal pins are protected with
220Ohm and the maximums in/out current 60mA.the control resolution is 0.25s
output pulse width and a pulse range 644080 s with frequency1333 Hz.
BlueSmirf:
This is our Bluetooth module which is connected as a slave to the the arduino using
serial Tx/Rx pins too. It contains RN41 processor that uses 3.5 volt. The RN41 is the
perfect product for engineers wanting to add wireless capability to their product but
dont want to spend significant time and money developing Bluetooth specific hardware
and software. It receives the commands from a laptop that is already paired to it and
sends them to the arduino.
Figure 2.5 Mini maestro polulu 24-channel Servo driver
Figure 2.6 BlueSMiRF Bluetooth module
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
13/38
13
2.2Leg and body Chassis 3D design:
Body Chassis:
The body was designed by us using AutoCAD and then CNC Machined in Jordan from a
local job shop. We tried to find the lightest material for the body in order to decrease
the load on the motors. The type of the material we choose was acrylic.
Leg Design:
The main leg design was inspired by spider legs specifically Theridion tepidariorum
and started by drafting the joint and links then using 3d modeling program to render the
shape of the leg and then combining the aluminum brackets to create the required leg
shape.
Figure 2.7 Chassis 3D model
Figure 2.8 Theridion tepidariorum leg Figure 2.9 links and joints draft
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
14/38
14
2.3Robot Description
This section describes the robot , which is built by our team and it is an inline hexapod type robot ,it
has a costume design chassis ,with 6 identical legs distributed evenly on the body.
Each leg consists of 4 joints and 4 links. The joints can be manipulated by one servo per joint,
providing 4 DoF for each leg. And a total of 24 DoF for the robot. One of the servos connects entire
leg to the chassis through a vertical axis, allowing the leg to rotate sideways in relation to body.
The three other servos manipulate the other joints of the leg. With rotation about horizontal axes.
The robot illustration can be seen in Figures 2.12 and 2.13
Figure 2.10 3D model of leg Figure 2.11 Actual Leg
coxa
Femur
Tibia
Tarsus
Figure 2.12 3D model of Robot Figure 2.13 Actual Robot
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
15/38
15
Chapter3: Modelling
3.1 Introduction to Modelling
To be able to control the robot, model of the robot needs to be developed.
First coordinate frames are defined for all important parts of the system, and to be able to move the
robot in the environment a kinematic model is created.
The kinematic model consists of the robot manipulators inverse kinematics solution. This makes it
possible to calculate joint angles for robot legs for a given configuration.
3.2Selection of coordinate Frames
Before any modeling, the coordinate systems for all parts of the robot need to be identified. All
coordinate systems will be Cartesian and called frames.
3.2.1 Robot body frame
The origin of the robot coordinate frame will be in the center of the body, structured with
Z-axis pointing up, the X-axis positioning left and Y-axis pointing forwards.
3.2.2 Leg frame and notations
The coordinate frames for the robot legs are assigned as shown in figure 3.3 .The
assignment of link frames follows the Denavit Hartenberg notation. The robot leg is madeof links and joints as noted on figure 3.3, different links of robot leg are called Coxa, Femur,
Tibia and Tarsus.
Figure 3.1 Location of body frame relative to robot hardware
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
16/38
16
The robot leg frame starts with link 0 which is the point where the leg is attached to the
body, link 1 is the coxa, link 2 is Femur, link 3 is the Tibia and link 4 is Tarsus and Link 5 is
the end effector. The joints are located at the inner end of their respective link frames
are attached to outer end of their respective links .this means that joint 2 rotates about
the Z-axis of frame 1. The Y-axis of links are not shown in figure because they are
irrelevant here.
3.3Kinematic model
When all coordinate frames are defined, it is possible to describe the kinematic model of the legs of
the hexapod. All units are in millimeters for distance measurements and degrees for angles.
3.3.1 Robot leg parameters
The robots legs can be described by the following set of parameters which complies with
the Denavit Hartenberg notation.
As described in Section 3.2.2 the legs are placed in a local leg frame with a vertical z-axis
through the rotational joint, which connects the leg to the body. The x-axis of the leg frame
is defined to be perpendicular to the robot body, pointing away from the center of the
robot. In the leg frame, link frames are assigned to each link in the leg, as described inFigure 3.3.
The Denavit Hartenberg parameters are denoted i, ai, i and di.
i is the angle between the zi1-axis and the zi-axis about the xi-axis.
ai is the kinematic length of link i, e.g. the distance between the zi1-axis and the zi-
axis along the xi-axis.
di is the link offset, e.g. the distance from the xi1-axis to the xi-axis along zi1-axis.
Figure 3.2 3d render for one leg Figure 3.3 Isometric link view for leg links and joints
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
17/38
17
i is the joint angle or the joint variable. For the rotational joints in the robot legs, this
is the angle
3.3.2 Forward kinematics for robot leg
This section describes the Forward kinematic equations, also called direct kinematic
equations for one robot leg. The coordinate frames are described in section 3.2.2 and leg
parameters in section 3.3.1.
The forward kinematic equation are set of equations composing of transformation matrix,
transforming coordinates in one link frame to coordinates in another link frame. If
multiplied the transformation matrices for each link pair, it will give the complete forward
kinematic transformation matrix, transforming coordinates from frame 5 to coordinates in
frame 0. The general transformation matrix form is given in the following equation:
So to get complete forward kinematic equation :
T0
4 = T0
1 T1
2 T2
3 T3
4
T3
4 =
cos i sin i cos 0 sin i sin 0 105 cos i
sin i cos i cos 0 cos i sin 0 105 sin i
0 sin 0 cos 0 00 0 0 1
T23 =
cos i sin i cos 0 sin i sin 0 70 cos i
sin i cos i cos 0 cos i sin 0 70 sin i
0 sin 0 cos 0 0
0 0 0 1
Link/Parameter i [degree] ai [mm] di [mm] i [degree]
1 Shoulder 90 30 -45 1
2 Femur 0 74 0 2
3 Tibia 0 70 0 3
4 Tarsus 0 105 0 4
Figure 3.4 General forward equation , from link I to link i-1
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
18/38
18
T12 =
cos i sin i cos 0 sin i sin 180 74 cos i
sin i cos i cos 0 cos i sin 180 74 sin i
0 sin 0 cos 180 0
0 0 0 1
T01 =
cos i sin i cos 90 sin i sin 90 30 cos i
sin i cos i cos 90 cos i sin 90 30 sin i
0 sin 90 cos 90 45
0 0 0 1
3.3.3 Inverse Kinematics
As seen in section 3.3.2 the forward kinematics is a simple equation used to calculate the
position of the end effector for the leg in the robot frame, by inserting the values of the
angles for every joint. But the reverse operation is more complex, and its is used to find all
the angles of the joints only by knowing the position of the end effector.
In general solving the IK equation can be a bit of a challenge .some positions cannot be
reached at all, as the physical system is unable to get there, and some end effector
positions can have more than one solution, and not all of them are desirable.
Many proposals have been suggested for solving these issue, some revolve about
minimizing required torques to move to the position .Other methods simply depend on
choosing the solution which is closest to the current configuration. There is no simple
generic method for optimally solving the inverse kinematic problem.
3.3.4 Solving inverse kinematics for the leg Geometrically
It is decided to solve the IK problem for each leg separately, as this makes it possible to
solve it geometrically, by setting up some constrains .The first constraint for solving the IK
equations, and is given by the fact that all of the robots joints only allow rotation about one
axis. The second constraint is that the Femur, Tibia and the Tarsus joints always rotate on
parallel axes. The third set of constraints arises from the physical limitations for each joint,
giving us some angular interval for each joint in which the servos can actually rotate the
link. In Figure 3.5 the limited angles of movement are shown.
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
19/38
19
First the coxa angle can be found easily using Atan2(X,Y) function, the relation betweencoxa angle and body is shown in figure 3.6 this shows how coxa angle can be found directly
by knowing the end effector position.
1 = atan2(Y4,X4)
Where:
1 is Coxa Joint angle
Y4is the Y-component of the position of the leg end point in the leg frame in [mm]
X4 is the X-component of the position of the leg end point in the leg frame in [mm]
Figure 3.5 Illustration of the possible angles which the legs joints are confined to rotate within.
Figure 3.6 Illustration of the coxa joint angle, in the leg-frame. It is equivalent of determining the
angle of the end point relative to the x-axis of the leg frame.
Leg end position
(X4,Y4)
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
20/38
20
To find Femur and Tibia angles, the leg end point coordinates are transformed to the
Coxa frame, by the transformation equation Figure 3.7. This way the angles can be
found by looking at the angles in the triangle with vertices in the origins of the Coxa. The
triangle lies in the XY-plane of the coxa link. The location of Coxa XY-plane is illustrated
in figure 3.8 and the triangle spanned by the coxa, femur and Tibia links is shown in
figure 3.9.
In Figure 3.9 is an illustration of the triangle, and the location of the angles for the IK
solving, are presented, notice that the origin of the XY-plane in the Coxa frame is placed
at the femur joint.
Figure 3.7 transformation equation
Figure 3.8 Illustration of the coxa frame. It is always oriented so the x-axis is parallel with the coxa
link, and the y-axis is parallel with the z-axis of the robot body frame.
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
21/38
21
Tarsus angle 4 will be treated as an input along with the (X, Y, and Z) for the leg end
point and will represent the leg wrist rotation angle. So we need to get (X3, Y3) from the
original (X4, Y4) leg position to end up with the triangle (Femur, Tibia and SWE).
X3 = X4 - Sin (4) * Tarsus
Y3 = Y4 - Cos (4) * Tarsus
Where:
4 is the Tarsus input angle
Tarsus is the length of Tarsus link [mm]
Y4 is the Y-component of the position of the leg end point in the leg frame in [mm]
X4 is the X-component of the position of the leg end point in the leg frame in [mm]
Y3is the Y-component of calculated position for the leg ,when tarsus is removed [mm]
X3is the X-component of calculated position for the leg ,when tarsus is removed [mm]
Angle 1 can be found by looking at the angle between SEW and the X-axis and it can be
solved by using Atan2(X, Y) function.
1 = atan2 (Y3, X3)
Where:
Y3 andX3 are the components of calculated position for the leg, when tarsus is removed [mm]
Figure 3.9 Illustration of the 2D triangle with vertices in the coxa, the femur, tibia and Tarsus linkframe origins. The angles 1, 2,3,4 the lengths femur and tibia and the SWE are all used in the
IK solution.
SWE
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
22/38
22
The total angle between Femur link and SWE (t) can be found by using trigonometry
relations.
Where:
SWE is the distance between Tibia end and the coxa frame origin [mm]
Y3 andX3 are the components of calculated position for the leg, when tarsus is removed [mm]
t is total angle between Tibia and SWE
Femuris length of femur link[mm]
Tibia is length of Tibia link [mm]
Now 2 can be determined by relating t and 1 .
2 = 1 + t
using the same trigonometry equation to find 3
Where:
SWE is the distance between Tibia end and the coxa frame origin [mm]
Y3 andX3 are the components of calculated position for the leg, when tarsus is removed [mm]
3is angle between Tibia and Femur
Femuris length of femur link[mm]
Tibia is length of Tibia link [mm]
3 3
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
23/38
23
3.3.5 Summary of inverse Kinematics Equations
The equations below provide a summary of the formulas needed to find the individual joint
angles.
1 = atan2(Y4,X4)
2 =
+ atan2 (Y3, X3)
3 = 180 -
4 = direct input angle that represent rotation to ground
3.3.6 Test of Inverse Kinematics
the inverse kinematics was tested on the robot legs , and the results were satisfactory,
some point position where tough to reach as illustrated in Figure 3.10(b),due to mechanical
limits for motor.
Figure 3.10 Illustration the implementation of IK on robot leg, (a) actual starting point (9,0,7.5) ,(b)
actual mid point (11.5,0,7.5), (c) actual final point (16,0,7.5), (d) virtual first point , (e) virtual mid
point,(f) virtual final point.
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
24/38
24
Chapter4: System Design
Through this chapter, the control software is described. First the overall system is described and then
each subsystem in detail.
The system for controlling the robot relies on the interaction of three main elements.
The operator, who gives directions to the robot
The physical robot, described in section 2.3.
The software developed in this project, responsible for moving the robot in the direction
provided by the operator.
The interaction between elements Figure 4.1
4.1System Structure
A PC pairs with the BlueSmirf and sends commands to the robot using Bluetooth, the BlueSmirf
receives the Commands and sends them to the master processor. The processor contains all the
necessarily algorithms such as Direct Servo control, Forward Kinematics, Inverse Kinematics. After
processing the input signals from BlueSmirf, It sends them to Mini Polulu the Sevo Driving Circuit
using TX/RX serial Communication protocol. The Force Sensor checks whether the leg has reached
the ground and that will trigger the next movement of next leg which depends on the walking gait
that we use. This is illustrated in Figure 4.2
Operator
Control System
Hexapod robot
Figure 4.1 The system is based on the interaction of three elements.
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
25/38
25
4.2System Block Diagram
This block diagram Figure 4.3 shows the relationship between the robot components, starting from
the PC controller through Bluetooth communication, to the master processor and then to the servo
controller and finally to the Servo motors in each leg.
Figure 4.2 System structure
Figure 4.3 System Block Diagram
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
26/38
26
4.3Gait generation
In this section the generation of the robot gait will be described. The robot generally has a group of
programmed gait sequences used for different purposes. For example a Tripedal gait is used as the
basic movement for the robot which provide speed and longer traverse length ,and a Metachronical
gait is used for rough terrain traverse which provide better stability but slower motion.
Main types of gaits will be used in the robot:
- Metachronical gait wave gait
- Ripple gait
- Tripedal gait
4.3.1 Wave Gait Metachronical Gait
In this gait mode the robot move one leg at a time , it starts by lifting one leg and then
lowering it down gradually until the foot touches the ground and then the next leag starts
to move, as mentioned before this gait sequence is rather slow but it provides maximum
stability for the robot, and it enables the robot to walk on rough terrain. This is illustrated
in Figure 4.4
4.3.2 Ripple Gait Two Wave Gait
In this gait the two legs at a time, since it has Two independent wave gaits. The opposite
sides legs are 180 degrees out of phase and it needs 3 beats to complete one cycle.
Figure 4.5 shows the Ripple gait
Figure 4.4 Single wave gait
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
27/38
27
4.3.3 Tripedal Gait
This gait is the fast gait for the hexapod; it completes a cycle in two beats. In this gait the
robot lift three legs simultaneously while leaving three legs on the ground, which keeps therobot stable. Figure 4.6 shows Tripedal gait reaction
Figure 4.5 Two wave gait
Figure 4.6 Tripedal gait
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
28/38
28
Chapter5: Epilogue
5.1Conclusion
The goal of this project was to create a model and a controlling system for a hexapod robot. As the
long term goal was to navigate the hexapod in debris or rubble, a special walking gait was created
using force sensors to navigate on rough terrain.
In chapter 2 the robot was designed and built through assembling all the parts together, from
chassis to microprocessor.
In chapter 3 a forward kinematic and inverse kinematic model, for the robot, was derived. This
model was verified and considered sufficient but not 100% precise.
Through chapter 4 a system control for the robot was built. The system is able to generate and
select gaits that are suitable for the terrain the robot is facing. The Tripedal gait worked successfully
along with the ripple gait on flat terrain, but wave gait on rough terrain wasnt successful due to the
limitations of the kinematic system, and also due to force sensor inefficiency.
The overall conclusion of the project is that a control system that can successfully control the robot
was designed, and the system was able to generate satisfactory gaits on flat ground.
5.2Future Plans
Building such robot provide an infinite possibilities of applications such as SAR (Search and Rescue) ,
RFID(Radio-frequency identification) tracker, face detection, fire detector, mine detector and manyother military applications. But first we are going to improve the Inverse Kinematics of the whole
Hexapods body which leads to finalizing the walking of the hexapod using different walking gaits. By
using IK body equations, the hexapod would grant more flexibility regarding the motion of the robot
as one entity. This will definitely enhance the rough terrain adaptation walking gait.
After finding the IK body, we are going to define more specified applications other than a platform
hexapod such as a CNC hexapod that can translate a predefined AutoCAD model to G-Code
instructions that will drive the hexapod in the Cartesian coordinate system.
We are going to experiment on the robot some other features such as image processing in order to
enhance the search and rescue application that we were working on. The Idea is to use a higher
intelligent level of control which able to process the images which are taken form an installed
camera in order to avoid obstacles it would also help to navigate on uneven terrain. It can also be
done by using a camera that sends video to the computer which capable of processing the captured
video and then sends the signal back to the controller.
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
29/38
29
Bibliography
Books:
1. J.Carig, John. Introduction to Robotics : Mechanics and Control. Prentice Hall, 2004
2. N. Jazar, Reza. Theory of Applied Robotics: Kinematics, Dynamics, and control. Springer,2007
Research papers:
1. Eric Krotkov,Reid Simmons, William Whittaker. Autonomous Walking Results with the
Ambler Hexapod Planetary Rover. Carnegie Mellon University , United states.
2. D. Campbell , M. Buehler . the Simple Hexapod R-Hex. McGill University ,Canada.
3. Giuseppe Carbone,Marco Ceccarelli . low cost-easy-Operation hexapod walking
machine.University of Cassino, Italy
4. Marcio K Totaki, Ra[hael C Carvalho, Rodrigo B Letang, Rodrigo Schneiater ,Wagner M
Moraes. Kinematics Open loop control of hexapod robot with Embedded Digital Signalcontrol. University of Sao Judas Tadeu, Brasil.
Websites:
1. http://forums.trossenrobotics.com/
2. http://forum.pololu.com/
3. http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl
4. http://www.lynxmotion.net/
http://forums.trossenrobotics.com/http://forums.trossenrobotics.com/http://forum.pololu.com/http://forum.pololu.com/http://www.arduino.cc/cgi-bin/yabb2/YaBB.plhttp://www.arduino.cc/cgi-bin/yabb2/YaBB.plhttp://www.lynxmotion.net/http://www.lynxmotion.net/http://www.lynxmotion.net/http://www.arduino.cc/cgi-bin/yabb2/YaBB.plhttp://forum.pololu.com/http://forums.trossenrobotics.com/ -
7/30/2019 Hexapod Robot_ Tariq Mamkegh
30/38
30
Appendix
Source Code of the Inverse Kinematics of the hexapods leg:
void IK_leg(int leg,float Xin,float Yin, float Zin,float Win)
{
float Zc =0; //7.899;
float Xc = 2.4;
float Zn; // Z-Sin(W)*Tarsus length
float Xn; // X-cos(W)*Tarsus length
float b; // SEW Openning = ((Zn+Zc)^2+(Xn+Xc)^2)^0.5
calculate:
float Outangle_1;
float Outangle_2;
float Outangle_3;
float Outangle_4;
float Xt;
float Yt;
if(Xin>27)
Xin=27;
if(Zin6 || leg
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
31/38
31
{
Serial2.print("LEG not found, please insert leg number from 1 - 6 only");
}
//Xin calculation correction for Yin
if (Yin
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
32/38
32
//** END theta_1//
//** Output for angle 3//
float var_Outangle_3 = ((Femur*Femur) + (Tibia*Tibia)-(b*b))/ (2*Femur*Tibia);
Outangle_3 = ((acos((var_Outangle_3)))*180/pi) - neutral_theta2 ;
thetaR_3=180-Outangle_3;
thetaL_3 = 180-(180-Outangle_3);
//*** END for angle 3//
//** Output for angle 2//
float var_Outangle_2 = ((Femur*Femur) + (b*b) - (Tibia*Tibia)) / (2*b*Femur);
float var2_Outangle_2 = atan2((Zn-Zc),(Xn-Xc));
float var3_Outangle_2 = acos(var_Outangle_2);
Outangle_2 = -1*( (var2_Outangle_2 + var3_Outangle_2)*180/pi )- Outangle_3+neutral_theta2 ;
thetaR_2= Outangle_2 + 90;
thetaL_2 = 180-(Outangle_2+90);
//*** END for angle 2
//** Output for angle 4//
Outangle_4 = Win - (Outangle_2+Outangle_3) + (neutral_theta2 + neutral_theta3 + neutral_theta4);
thetaR_4=180-(Outangle_4+90);
thetaL_4 = 180-(180-(Outangle_4+90));
//** END for angle 4//
//Assigning Angles to specific leg angles
switch (leg)
{
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
33/38
33
case 1:
a1_1 = thetaR_1;
if (a1_1 >180? a1_1=180:a1_1=thetaR_1);
if (a1_1 180? a1_2=180:a1_2=thetaR_2);
if (a1_2 180? a1_3=180:a1_3=thetaR_3);
if (a1_3 180? a1_4=180:a1_4=thetaR_4);
if (a1_4 180? a2_1=180:a2_1=thetaR_1);
if (a2_1 180? a2_2=180:a2_2=thetaR_2);
if (a2_2 180? a2_3=180:a2_3=thetaR_3);
if (a2_3
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
34/38
34
a2_4 = thetaR_4;
if (a2_4 >180? a2_4=180:a2_4=thetaR_4);
if (a2_4 180? a3_1=180:a3_1=thetaR_1);
if (a3_1 180? a3_2=180:a3_2=thetaR_2);
if (a3_2 180? a3_3=180:a3_3=thetaR_3);
if (a3_3 180? a3_4=180:a3_4=thetaR_4);
if (a3_4 180? a4_1=180:a4_1=thetaL_1);
if (a4_1
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
35/38
35
if (a4_2 >180? a4_2=180:a4_2=(thetaL_2-8));
if (a4_2 180? a4_3=180:a4_3=thetaL_3);
if (a4_3 180? a4_4=180:a4_4=thetaL_4);
if (a4_4 180? a5_1=180:a5_1=thetaL_1);
if (a5_1 180? a5_2=180:a5_2=thetaL_2);
if (a5_2 180? a5_3=180:a5_3=thetaL_3);
if (a5_3 180? a5_4=180:a5_4=thetaL_4);
if (a5_4
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
36/38
36
case 6:
a6_1 = thetaL_1;
if (a6_1 >180? a6_1=180:a6_1=thetaL_1);
if (a6_1 180? a6_2=180:a6_2=thetaL_2);
if (a6_2 180? a6_3=180:a6_3=thetaL_3);
if (a6_3 180? a6_3=180:a6_3=thetaL_3);
if (a6_3
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
37/38
37
}
else
if (b < (Femur+Tibia))
{
IKSolutionWarning = 1;
X[leg] = Xin ;
Y[leg] = Yin;
Z[leg] = Zin;
W[leg] = Win;
}
else
{
IKSolutionError = 1;
analogWrite(13,200);
delay(10);
analogWrite(13,20);
delay(20);
analogWrite(13,200);
delay(30);
analogWrite(13,0);
X[leg] = X[leg] ;
Y[leg] = Y[leg];
Z[leg] = Z[leg];
W[leg] = W[leg];
-
7/30/2019 Hexapod Robot_ Tariq Mamkegh
38/38
goto reassign;
}
return;
reassign:
Xin = X[leg];
Yin = Y[leg];
Zin = Z[leg];
Win = W[leg];
goto calculate;
}