hexapod robot_ tariq mamkegh

Upload: fede-ortiz

Post on 14-Apr-2018

268 views

Category:

Documents


5 download

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;

    }