Tutorial ArachNID - Legged Robotics @ Techniche IIT Guwahati

46
Arthrobotics : Legged Robots ARACHN!D

description

Legged Robotics @ Techniche IIT Guwahati

Transcript of Tutorial ArachNID - Legged Robotics @ Techniche IIT Guwahati

Arthrobotics : Legged Robots

Short Review of Locomotiony Two basic ways of using effectors:y y

to move the robot around => locomotion to move other object around => manipulation

y These divide robotics into two mostly separate categories:y y

mobile robotics manipulator robotics

Review: Locomotiony Many kinds of effectors and actuators can be used to

move a robot around.y The obvious categories are:y legs (for walking/crawling/climbing/jumping/hopping) y wheels (for rolling) y arms (for swinging/crawling/climbing) y flippers (for swimming) y ...

y While most animals use legs to get around, legged

locomotion is a very difficult robotic problem, especially when compared to wheeled locomotion.

Locomotiony First, any robot needs to be stable (i.e., not wobble and fall

over easily).y There are two kinds of stability:y static and y dynamic.

y A statically stable robot can stand still without falling over. y This is a useful feature, but a difficult one to achieve:y it requires that there be enough legs/wheels on the robot to

provide sufficient static points of support.

Locomotiony For example, people are

not statically stable.

y In order to stand up, which appears effortless to us, we are

actually using active control of our balance.y Achieved through nerves and muscles and tendons. y This balancing is largely unconscious:y it must be learned, y so that's why it takes babies a while to get it right, y certain injuries can make it difficult or impossible.

Locomotiony With more legs, static stability becomes quite simple. y In order to remain stable, the robot's Center Of Gravity (COG) must fall

under its polygon of support.y This polygon is basically the projection between all of its support points onto

the surface.y So in a two-legged robot, the polygon is really a line. y Thus the center of gravity cannot be aligned in a stable way with a point on that

line to keep the robot upright.y Consider now a three-legged robot:y with its legs in a tripod organization, y and its body above,

y Such robot produces a stable polygon of support. y It is thus statically stable.y See the Robix tripod robot, it works!

Stability of standing and walkingy But what happens when a statically stable robot lifts a leg and

tries to move?y Does its center of gravity stay within the polygon of support? y It may or may not, depending on the geometry. y For certain robot geometries, it is possible (with various

numbers of legs) to always stay statically stable while walking.y This is very safe, but it is also very slow and energy

inefficient.

Static Stabilityy Sequence of support patterns provide by feet of a

quadruped walking. y Body and legs move to keep the projection of the center of mass within the polygon defined by a feet. y Each vertex is a support foot. y Dot is the projection.

Stability of standing and walkingy A basic assumption of the static gait (statically stable

gait) is that the weight of a leg is negligible compared to that of the body,y so that the total center of gravity (COG) of the robot is

not affected by the leg swing.

y Based on this assumption, the conventional static gait

is designed so as to maintain the COG of the robot inside of the support polygon. y This polygon is outlined by each support leg's tip position.

Stability of standing and walkingy The alternative to static stability is dynamic stability

which allows a robot (or animal) to be stable while moving.y For example, one-legged hopping robots are

dynamically stable:y they can hop in place or to various destinations, and not

fall over.

y But they cannot stop and stay standing

Stability of standing and walkingy A statically stable robot can:y 1. use dynamically-stable walking patterns - it is fast, y 2. use statically stable walking - it is easy.

y A simple way to think about this is by how many legs are

up in the air during the robot's movement (i.e., gait):y 6 legs is the most popular number as they allow for a very stable

walking gait, the tripod gait .y if the same three legs move at a time, this is called the

alternating tripod gait.y if the legs vary, it is called the ripple gait.

Hexapod(6 legged) walkingy A rectangular 6-legged robot can lift three legs at a time

to move forward, and still retain static stability.y How does it do that? y It uses the so-called alternating tripod gait, a

biologically common walking pattern for 6 or more legs.y Characteristic of this gait:y one middle leg on one side and two non-adjacent legs on the

other side of the body lift and move forward at the same time,y the other 3 legs remain on the ground and keep the robot

statically stable.

Hexapod and Insect walkingy Roaches move this way, and can do so very quickly. y Insects with more than 6 legs (e.g., centipedes and millipedes), use the ripple gate.y However, when these insects run really fast,

they switch gates to actually become airborne (and thus not statically stable) for brief periods of time.

Build your own hexapody Provides a

9 servo hexapod

statically stable gait y Basic hexapod walker can be built with 9 servos (or fewer)

Hexapod Walking Continuedy Torso servo

supports a strut which supports two hip servos. y Legs are lifted and dropped by hips while side to side motion achieved by torsos.

Alternating Tripod Gaity Walking gaits were first reported by D.M. Wilson in 1966. y A common gait is the alternating tripod gait . y Commonly used by certain insects while moving slowly.

A Walking AlgorithmStep 1legs 1,4,and 5 down, legs 2,3

and 6 up. Step 2rotate torso 7 and 9 counterclockwise, torso 8

clockwise. Step 3legs 1,4 and 5 up, legs 2,3, and 6 down.

Step 4rotate torso 7 and 9

clockwise, torso 8 counter-clockwise. Goto step 1

Descriptiony The AVR is a Modified Harvard architecture 8-bit RISC

single chip microcontroller which was developed by Atmel in 1996. y The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to One-Time Programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

Description(contd.)y Atmel's low power, high performance AVR

microcontrollers handle demanding 8 and 16-bit applications. y With a single cycle instruction RISC CPU, innovative Pico Power technology, and a rich feature set, the AVR architecture ensures fast code execution combined with the lowest possible power consumption.

Description(contd.)y Whether you program in C or assembly, the tuned AVR

instructions decrease program size and development time. y The well-defined I/O structure limits the need for external components and reduces development cost. y A variety of internal oscillators, timers, UARTs, SPIs, Pulse Width Modulation, pull-up resistors, ADCs, Analog Comparators and Watch-Dog Timers are some of the features available for creative engineers.

Description(contd.)y The AVR microcontrollers are divided into 4 families

tiny AVR, mega AVR, XMEGA and Application specific AVR. y Among these 4 families of AVR here we are going to use a microcontroller of mega AVR family ATmega16

programmingy WinAVR is a suite of executable, open source software

development tools for the Atmel s AVR series of RISC microcontrollers hosted on the Windows platform. It includes the GNU GCC compiler for C and C++.

Steps for writing code using winavry 1. Open the programmers notepad and write your code y 2. Create a new folder and save your code in that folder with extension name .c y 3. Now open the make file and edit it as mentioned bellow

a. Make file main filename (give your file name here without extension) ii. b. Make file MCU type atmega (chose your UC) iii. c. Make file Debug format AVR-ext-COFF iv. d. Make file Programmer select your programmer (if your programmer is not in the list then follow the step3.d) v. e. Make file port (select the port where you have connected your programmer) vi. f. Make file enable editing make file then in your make file edit the following things vii. F_CPU = 8000000 (change it as for your crystal frequency) AVRDUDE_PROGRAMMER = stk500 (here write down you programmers name) viii. g. Save the make file in your folder without changing its namei.

Steps for writing code using winavr(contd.)y 4. Now open the programmers notepad y 5. To compile your code and to generate hex file

(Tools make all) y 6. To upload your code into your UC (Tools program)

Basic principlesy Servos are DC motors with built in gearing and

feedback control loop circuitry. y Servos are extremely popular with robot, RC plane, and RC boat builders. y Most servo motors can rotate about 90 to 180 degrees. y Some rotate through a full 360 degrees or more.

Basic principles(contd.)y However, servos are unable to continually rotate,

meaning they can't be used for driving wheels (unless modified), but their precision positioning makes them ideal for robot arms and legs, rack and pinion steering, and sensor scanners to name a few. y Since servos are fully self contained, the velocity and angle control loops are very easy to implement, while prices remain very affordable.

Basic principles(contd.)

Basic principles(contd.)

Basic principles(contd.)y To use a servo, simply connect the black wire to

ground, the red to a 4.8-6V source, and the yellow/white wire to a signal generator (such as from your microcontroller) . y Vary the square wave pulse width from 1-2ms and your servo is now position/velocity controlled.

Basic principles(contd.)

Servo wiringy All servos have three wires:

1. Black or Brown is for ground. 2. Red is for power (~4.8-6V). 3. Yellow, Orange, or White is the signal wire (35V).

Servo Voltage (Red and Black/Brown wires)y Servos can operate under a range of voltages. Typical

operation is from 4.8V to 6V. y There are a few micro sized servos that can operate at less, and now a few Hitec servos that operate at much more. y The reason for this standard range is because most microcontrollers and RC receivers operate near this voltage. So what voltage should you operate at? Well, unless you have a battery voltage/current/power limitation, you should operate at 6V. This is simply because motors have higher torque at higher voltages.

Servo Voltage(contd.)

So what voltage should you operate at?

Servo Voltage(contd.)Well, unless you have a battery voltage/current/power limitation, you should operate at 6V. This is simply because motors have higher torque at higher voltages.

Signal Wire (Yellow/Orange/White wire)y While the black and red wires provide power to the

motor, the signal wire is what you use to command the servo. y The general concept is to simply send an ordinary logic square wave to your servo at a specific wave length, and your servo goes to a particular angle (or velocity if your servo is modified).

Signal Wire (contd.)

The wavelength directly maps to servo angle . So how do you apply this square wave to your servo?

Signal Wire (contd.)y If your robot is remote controlled, your RC receiver will

apply the proper square wave for you. y If however your robot is running from a microcontroller, you must: bring high a digital port wait between1-2ms bring low the same digital port for next 18 ms.

Signal Wire (contd.)Repeat this procedure until the servo reaches the desired angle.

Signal Wire (contd.)y The standard time vs. angle is represented in this chart:

Servo currenty Servo current operates the same as in a DC motor,

except that you now also have a hard to predict feedback control system to contend with. y If your DC motor is not at the specified angle, it will suddenly draw huge amounts of current to reach that angle. y But there are other peculiarities as well.

Servo currenty If you run an experiment with a servo at a fixed angle

and hang precision weights from the servo horn, the measured current will not be what you expect. y One would think that the current would increase at some fixed rate as the weights increased linearly. Instead you will get unpredictable curves and multiple rates.

Servo current(contd.)

Servo current draw is very unpredictable.

Organizersy K Jeshwanth Durga Sagar y K Satyadeep y Niteesh Kumar y Pradeep Kumar

[email protected] [email protected]

+919678883623 [email protected]

[email protected]

+919678883554