Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CHAPTER 1
INTRODUCTION
HEXAPOD IDEA
Today robots have been divided under certain classes. One of them is limbed robots under which
comes hexapod. It is a six-legged robot used for a variety of purposes, primarily related to
research. The design is modeled after six-legged insects categorized by the class Hexapoda
(Greek). Commonly known members of this class include spiders, cockroaches, crickets and
grasshoppers, ants, and beetles. Hexapod robots largely mimic Hexapoda locomotion. Some
robots are designed with the aim of better understanding how insects in the Hexapoda group
function from a biological standpoint, while others are created as a means of channelling the
efficiency of these creatures’ movements into a medium that can be manipulated.
What basically Hexapod is???
As per the above description Hexapod is six legged robot. Each leg has three joints so each leg
has three degrees of freedom. Because of having three degrees of freedom the leg can move
anywhere in three dimension up to certain extent. Total it has six legs so by summing all the
hexapod has eighteen degrees of freedom and that’s why we can have various motions in 3D. It
can perform various very complex steps like crawling and walking by synchronizing all six legs
and eighteen joints. It is more likely a mimic of spider. A spider having six legs!!!Like a spider
in the figure we can compare the hexapod in the next figure. The mechanical body frame and
locomotion style is totally inspired from the spider. Like spider the hexapod synchronizes the
motion of all its servo motors and moves or walk accordingly.
The joints of the Hexapod are made of servo motors (servo motors can rotate generally between
0 to 180 degrees as per the requirement with constant rate. No matter how much external torque
you apply up to certain limit and the limit is that of the rating of the servo motor) and they
control the phi, theta and radius of the particular leg.
There are many terrain where the wheeled robot cannot go further, and cannot overcome the
obstacle. However legged structure overcomes that hurdle and get away from it very easily and
swiftly. The most efficient use of the Hexapod can be done in the rocky or sandy terrain where
the wheels get struck the legged structure can easily be the alternative. And Hexapod is the best
choice in legged robot because it can easily stabilize the body on three legs. So when there is a
time where some legs are not in contact with the ground the other three manage to balance the
body.
The walking of hexapod was divided in two methods:
Simple walking Simple walking mainly consist two major dynamics. One is picking legs and the
other is to push the ground backwards to move forward. So in simple walking initially Hexapod
is headed towards one of the legs. Then one by one other than the diagonal one all legs are
picked and moved forward from the mean by certain angle. After picking the pushing process
begins and all other four legs simultaneously push the ground backwards and the hexapod gets
the motion in forward direction. And this process continues to make the bot Walk. While
pushing the ground the bot moves forward but for the forward displacement and the overall
balancing of the hexapod the friction plays the important role and to gain much higher friction
rubber pads were used in the Hexapod.
The best thing about the hexapod is its multi directionality. So if its headed toward leg 1 and
wants to take a right turn than it will just simply rotate 30 degrees about its central axis and start
moving along leg 2. If it wants to move at an angle of 120 degrees will just start move along leg
3 or leg 5.
Tripod Walking
Tripod walking was the revolutionary algorithm of walking. This made the hexapod faster and
smart walker. The whole concept of tripod walking was on the basis of balancing on three legs
and maintaining equilateral triangle using alternate three legs. In this type of walking the
hexapod moved on three legs at a time and at any time of walking the alternate three legs
maintained equilateral triangle to avoid a lot amount of unwanted stress.
Obstacle Clearance
The main motive of making the hexapod was to overcome obstacles comes in the way where the
wheeled robots are helpless. Like in rocky surface the wheeled bot cannot pass over a rocks or
even small stones and in desert or in sand the wheeled bots get struck and slip. Whereas
Hexapod locomotion is based on picking and pushing mechanism and its extensive stability can
easily conquer rocky and sandy terrains. Due to this aspect Hexapod can be used in defence and
in military applications like mine detection and spying. It can be used in research and exploration
in such areas where men cannot reach such as in volcanic research. This concept can also be
used for exploration and sample testing in other planets and asteroids.
CHAPTER 2
WORKING OF COMPONENTS USED
2.1.1 Frame
The frame can be broadly divided into two sections
1. CHASIS 2.LIMB
2.1.1.1 CHASSIS
The chassis is the circular part which has 6 protruding parts through which has all the limbs are
attached. The lid houses the electronic components and batteries. The material used is acrylic
because of its light weight and strength. We first created a shape of the chassis on AUTODESK
INVENTOR. Then the CAD file was fed into the Laser Cutter machine and we will get the
required structure on an acrylic sheet
The upper and lower part of the chassis were spaced by 12 beams of equal size placed
perpendicular to each other. This gave the body strength for all motions. The battery and
switches were to be placed on a lid present at the top.
2.1.1.2 Limb
Each limb of the robot has three servo motors each for providing specific degree of freedom. A
servo motor has the special characteristic that it can be moved to a specific angle as per defined
by the microcontroller. In this way by setting each servo at a specific configuration we can
define a particular orientation for the limb. Limb basically consists of 2 U-shaped brackets, 3
servo mounting brackets and 2 leg pieces.
4. Peripheral features
Two 8-bit Timer/Counters with separate prescaler and compare mode
One 16-bit Timer/Counter with separate prescaler, compare mode, and capture
mode
Real time counter with separate oscillator
Six PWM channels
Top view
A
B
C
D
E
F
G
H
J
K
Bottom view
A
B
C
D
E
F
G
H
J
K
1 2 3 4 5 6 7 8 9 10
A GND AREF PF0 PF2 PF5 PK0 PK3 PK6 GND VCC
B AVCC PG5 PF1 PF3 PF6 PK1 PK4 PK7 PA0 PA2
C PE2 PE0 PE1 PF4 PF7 PK2 PK5 PJ7 PA1 PA3
D PE3 PE4 PE5 PE6 PH2 PA4 PA5 PA6 PA7 PG2
E PE7 PH0 PH1 PH3 PH5 PJ6 PJ5 PJ4 PJ3 PJ2
F VCC PH4 PH6 PB0 PL4 PD1 PJ1 PJ0 PC7 GND
G GND PB1 PB2 PB5 PL2 PD0 PD5 PC5 PC6 VCC
H PB3 PB4 RESET PL1 PL3 PL7 PD4 PC4 PC3 PC2
J PH7 PG3 PB6 PL0 XTAL2 PL6 PD3 PC1 PC0 PG1
K PB7 PG4 VCC GND XTAL1 PL5 PD2 PD6 PD7 PG0
2.1.1.3 Overview
The ATmega640/1280/1281/2560/2561 is a low-power CMOS 8-bit microcontroller
based on the AVR enhanced RISC architecture. By executing powerful instructions in a
single clock cycle, the ATmega640/1280/1281/2560/2561 achieves throughputs
approaching 1 MIPS per MHz allowing the system designer to optimize power
consumption versus processing speed.
The Atmel AVR core combines a rich instruction set with 32 general purpose working
registers. All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU),
1 VCC
Ground pin.
3 Port A (PA7..PA0)
Port A is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port A output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port A pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port A pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port A also serves the functions of various special features of the
ATmega640/1280/1281/2560/2561.
4 Port B (PB7..PB0)
Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port B output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port B pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port B has better driving capabilities than the other ports.
Port B also serves the functions of various special features of the
ATmega640/1280/1281/2560/2561.
5 Port C (PC7..PC0)
Port C is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port C output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port C pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port C pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port D is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port D output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port D pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port D pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port D also serves the functions of various special features of the
ATmega640/1280/1281/2560/2561.
7 Port E (PE7..PE0)
Port E is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port E output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port E pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port E pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port E also serves the functions of various special features of the
ATmega640/1280/1281/2560/2561.
8 Port F (PF7..PF0)
Port G is a 6-bit I/O port with internal pull-up resistors (selected for each bit). The Port G
output buffers have symmetrical drive characteristics with both high sink and source
capability. As inputs, Port G pins that are externally pulled low will source current if the
pull-up resistors are activated. The Port G pins are tri-stated when a reset condition
becomes active, even if the clock is not running.
Port H is a 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port H output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port H pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port H pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port H also serves the functions of various special features of the
ATmega640/1280/2560.
11 Port J (PJ7..PJ0)
Port J is a 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port J output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port J pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port J pins are tri-stated when a reset
condition becomes active, even if the clock is not running. Port J also serves the
functions of various special features of the ATmega640/1280/2560.
12 Port K (PK7..PK0)
Port L is a 8-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port L output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port L pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port L pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port L also serves the functions of various special features of the ATmega640/1280/2560.
14 RESET
Reset input. A low level on this pin for longer than the minimum pulse length will
generate a reset, even if the clock is not running. The minimum pulse length is given in
“System and Reset Characteristics”. Shorter pulses are not guaranteed to generate a reset.
15 XTAL1
Input to the inverting Oscillator amplifier and input to the internal clock operating circuit.
16 XTAL2
AVCC is the supply voltage pin for Port F and the A/D Converter. It should be externally
connected to VCC, even if the ADC is not used. If the ADC is used, it should be
connected to VCC through a low-pass filter.
18 AREF
A servomotor is a rotary actuator or linear actuator that allows for precise control of angular or
linear position, velocity and acceleration. It consists of a suitable motor coupled to a sensor for
position feedback. It also requires a relatively sophisticated controller, often a dedicated module
designed specifically for use with servomotors.
Servomotors are not a specific class of motor although the term servomotor is often used to refer
to a motor suitable for use in a closed-loop control system.
A servomotor is a closed-loop servo mechanism that uses position feedback to control its motion
and final position. The input to its control is a signal (either analogue or digital) representing the
position commanded for the output shaft.
The motor is paired with some type of encoder to provide position and speed feedback. In the
simplest case, only the position is measured. The measured position of the output is compared to
the command position, the external input to the controller. If the output position differs from that
required, an error signal is generated which then causes the motor to rotate in either direction, as
needed to bring the output shaft to the appropriate position. As the positions approach, the error
signal reduces to zero and the motor stops.
The very simplest servomotors use position-only sensing via a potentiometer and bang-bang
control of their motor; the motor always rotates at full speed (or is stopped). This type of
servomotor is not widely used in industrial motion control, but it forms the basis of the simple
and cheap servos used for radio-controlled models.
More sophisticated servomotors use optical rotary encoders to measure the speed of the output
shaft and a variable-speed drive to control the motor speed. Both of these enhancements, usually
in combination with a PID control algorithm, allow the servomotor to be brought to its
commanded position more quickly and more precisely, with less overshooting.
use it simply for a serial port replacement to establish connection between MCU and GPS, PC to
your embedded project.
2. Vcc:
Supply Voltage 3.3V to 5V
3. GND:
Ground pin
5. STATE:
It acts as a status indicator. When the module is not connected to / paired with any other
Bluetooth device, signal goes Low. At this low state, the led flashes continuously which denotes
that the module is not paired with other device. When this module is connected to/paired with
any other Bluetooth device, the signal goes High. At this high state, the led blinks with a
constant delay say for example 2s delay which indicates that the module is paired.
6. BUTTON SWITCH:
This is used to switch the module into AT command mode. To enable AT command mode, press
the button switch for a second. With the help of AT commands, the user can change the
parameters of this module but only when the module is not paired with any other BT device. If
the module is connected to any other Bluetooth device, it starts to communicate with that device
and fails to work in AT command mode.
Specifications
Hardware features
Software features
Default Baud rate: 38400, Data bits:8, Stop bit:1,Parity:No parity, Data control: has.
Supported baud rate: 9600,19200,38400,57600,115200,230400,460800.
Given a rising pulse in PIO0, device will be disconnected.
Status instruction port PIO1: low-disconnected, high-connected;
PIO10 and PIO11 can be connected to red and blue led separately. When master and
slave are paired, red and blue led blinks 1time/2s in interval, while disconnected only
blue led blinks 2times/s.
Auto-connect to the last device on power as default.
Permit pairing device to connect as default.
Auto-pairing PINCODE:”0000” as default
Auto-reconnect in 30 min when disconnected as a result of beyond the range of
connection.
Hardware
AT command Default:
2.1.5.1 SMPS
One of the most important aspect of running any circuit is power. Required voltage and current
to the components should be provided so that proper functioning of them could be achieved. For
running 12 servo motors we needed a lot of current. Also, the voltage rating of the supply should
also meet the voltage ratings of different components on the circuit. We used SMPS supply for
running the electronics. A switched-mode power supply (SMPS) is an electronic power supply
that incorporates a switching regulator in order to be highly efficient in the conversion of
electrical power. Like other types of power supplies, an SMPS transfers power from a source
like the electrical power grid to a load while converting voltage and current characteristics.
This unit was supplied 220V AC power supply normally present in our distribution supply. The
output was a DC voltage supply of 12 V which was connected to the power modules of the limbs
and the microcontroller.
A simple voltage regulator can be made from a resistor in series with a diode . Feedback voltage
regulators operate by comparing the actual output voltage to some fixed reference voltage.
Two types of voltage regulators are used in this project namely are: 7805 and 7812.
The 78xx is a family of self-contained fixed linear voltage regulator integrated circuits. The 78xx
family is commonly used in electronic circuits requiring a regulated power supply due to their
ease-of-use and low cost. For ICs within the family, the xx is replaced with two digits, indicating
the output voltage. For example, the 7805 has a 5 volt output, while the 7812 produces 12 volts.
In our project we use 7805 as supply from microcontroller is 5 volt.
The voltage drop across a forward-biased diode varies only a little with the current, and is a
function of temperature; this effect can be used as a temperature sensor or voltage reference.
2.1.8 CAPACITORS
Driving servo motors with the Arduino Servo library is pretty easy, but each one consumes a precious pin -
not to mention some Arduino processing power. The Adafruit 16-Channel 12-bit PWM/Servo Driver will
drive up to 16 servos over I2C with only 2 pins. The on-board PWM controller will drive all 16 channels
simultaneously with no additional Arduino processing overhead. What's more, you can chain up to 62 of
them to control up to 992 servos - all with the same 2 pins.
The Adafruit PWM/Servo Driver is the perfect solution for any project that requires a lot of servos.
There are two sets of control input pins on either side. Both sides of the pins are
identical. Use whichever side you like, you can also easily chain by connecting up two side-
by-sides.
POWER PINS
GND - This is the power and signal ground pin, must be connected
VCC - This is the logic power pin, connects this to the logic level you want to use
for the PCA9685 output, should be 3 - 5V max! It's also used for the 10K pull-ups on
SCL/SDA so unless you have your own pull-ups, have it match the microcontroller's
logic level too!
V+ - This is an optional power pin that will supply distributed power to the servos. If
you are not using for servos you can leave disconnected. It is not used at all by the
chip. You can also inject power from the 2-pin terminal block at the top of the board.
You should provide 5-6VDC if you are using servos. If you have to, you can go
higher to 12VDC, but if you mess up and connect VCC to V+ you could damage
your board!
CONTROL PINS
SCL - I2C clock pin, connect to your microcontrollers I2C clock line. Can use 3V or
5V logic, and has a weak pull up to VCC
SDA - I2C data pin, connect to your microcontrollers I2C data line. Can use 3V or
5V logic, and has a weak pull up to VCC
OE - Output enable. Can be used to quickly disable all outputs. When this pin
is low all pins are enabled. When the pin is high the outputs are disabled. Pulled low
by default so it's an optional pin!
OUTPUT PORTS
There are 16 output ports. Each port has 3 pins: V+, GND and the PWM output. Each PWM
runs completely independently but they must all have the same PWM frequency. That is, for
LEDs you probably want 1.0 KHz but servos need 60 Hz - so you cannot use half for LEDs
@ 1.0 KHz and half @ 60 Hz.
They're set up for servos but you can use them for LEDs! Max current per pin is 25mA.
There are 220 ohm resistors in series with all PWM Pins and the output logic is the same
as VCC so keep that in mind if using LEDs.
CHAPTER 3
Servomotors must be sufficiently powerful, depending on the desired behavior. If tripod gait is
Required, then each motor on the middle legs must be powerful enough to hold half of the
weight of the robot. It is important to choose a suitable material for the body. It must be solid
enough, but not too heavy. Therefore aluminum profiles were chosen for the body construction.
They are quite light-weighted and solid enough. In addition, they are available in various sizes
and shapes and are easy to handle. Robot is made of 25 mm and 60 mm profiles. The robot is 70
cm long, 47 cm wide and 6 cm high and weighs 4.3 kg.
The hexapod robot acts as a rescue robot in a targeted arena. We will place the robot at a place
where human are not able to go further. We will have the full control of the robot. We will
control the robots movements and send it inside the target area. As we control the movements
of the robot, the robot itself will also adapt its movements by detecting obstacles in front of it
by an ultrasonic sensor.
The proposed model of the Hexapod robot should have an industrial grade lightweight material
to build the body. For the model one-piece that constituting the main body is lightweight
composite materials. It is comfortable and cost material in terms of process ability Fig. 3.1 shows
the block diagram of the robot.
This walking mechanism of the hexapod follows a six legged insect. This mechanism involves
the robot having three legs standing on the ground supporting the body while the other three
swing forward. In the below figure shown, the dotted line are for stance phase and the straight
line indicated as legs are for forward swing phase.
If the legs of the hexapod are labeled in an anticlockwise manner legs 1, 3 and 5 in Fig. 3.2.
Start in swing forward, and support and body and push it forward as legs 2, 4 and 6 s in stance
phase. Then, legs 2, 4 and 6 are in 'swing forward phase' while legs 1, 3 and 5 in stance phase.
This gait therefore includes 2 steps, with the robot moving twice.
readMovement()
If move == forward,
moveForward();
moveBackward();
moveLeft();
moveRight();
End
For moveForward()
For moveBackward()
For moveLeft()
For moveRight()
End
CHAPTER 4
4.1 CONCLUSION
In the proposed system we have proposed a search and rescue robot that would be efficient in
crawling through narrow holes and spaces over rough and unfriendly terrains. The walking
algorithms used in the robot have been field tested properly and has an above average rate of
efficiency when compared to other such robots in related fields. To control the spider-bot we
will make use of android UI and will implemented a navigation panel onto the user interface. In
many accidents that need inspection of the ground and in cases where it is impossible for a
human being to properly look for any evidence that might help to save lives, the spider-bot can
come in handy, and the functional algorithms implemented would be quite efficient in helping
the robot move under extreme conditions. The robot has worked tremendously well in
different speed scenarios and responded well to each of the cases, which was entirely possible
for the six leg based design of the model, which has 2 servo motors each. It is hoped that small
amount of modification to our proposed system will transform it into a fully functional and
ready-to-use robot in real life scenario.
BUDGET
The team has prepared a budget for the entire project. The budget summary is provided in Table
3. The most expensive component of the design is the servo motors since eighteen motors (plus
spares) are required.
Component Cost
Electronics
ATmega2560 1380
REFRENCES
1. Dynamic locomotion with a hexapod robot. PhD thesis, The University of Michigan,
2002.
3. Franco Tedeschi and Giuseppe Carbone. Design issues for hexapod walking robots.
4. 4.Boston Dynamics. Boston dynamics: Dedicated to the science and art of how things
move.
8. EZ Moore and M Buehler. Stable stair climbing in a simple hexapod robot. Technical
report,
10. Xilun Ding, Alberto Rovetta, JM Zhu, and ZhiyingWang. Locomotion analysis of
hexapod robot. INTECH Open Access Publisher
11. S. Manoiu-Olaru, M. Nitulescu, and V. Stoian. Hexapod robot. Mathematical support for
modeling and control. In System Theory, Control, and Computing (ICSTCC), 2011 15th
International Conference on, pages 1–6, Oct 2011.
12. Roland Siegwart. Introduction to autonomous mobile robots. MIT Press, Cambridge,
Mass