Arachnid tutorial


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Arachnid tutorial

  1. 1. Arthrobotics : Legged Robots
  2. 2. Short Review of Locomotion <ul><li>Two basic ways of using effectors: </li></ul><ul><ul><ul><ul><li>to move the robot around => locomotion </li></ul></ul></ul></ul><ul><ul><ul><ul><li>to move other object around => manipulation </li></ul></ul></ul></ul><ul><li>These divide robotics into two mostly separate categories: </li></ul><ul><ul><ul><ul><li>mobile robotics </li></ul></ul></ul></ul><ul><ul><ul><ul><li>manipulator robotics </li></ul></ul></ul></ul>
  3. 3. Review: Locomotion <ul><li>Many kinds of effectors and actuators can be used to move a robot around. </li></ul><ul><li>The obvious categories are: </li></ul><ul><ul><li>legs (for walking/crawling/climbing/jumping/hopping) </li></ul></ul><ul><ul><li>wheels (for rolling) </li></ul></ul><ul><ul><li>arms (for swinging/crawling/climbing) </li></ul></ul><ul><ul><li>flippers (for swimming) </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><li>While most animals use legs to get around, legged locomotion is a very difficult robotic problem, especially when compared to wheeled locomotion. </li></ul>
  4. 4. Locomotion <ul><li>First, any robot needs to be stable (i.e., not wobble and fall over easily). </li></ul><ul><li>There are two kinds of stability: </li></ul><ul><ul><li>static and </li></ul></ul><ul><ul><li>dynamic. </li></ul></ul><ul><li>A statically stable robot can stand still without falling over. </li></ul><ul><li>This is a useful feature, but a difficult one to achieve: </li></ul><ul><ul><li>it requires that there be enough legs/wheels on the robot to provide sufficient static points of support . </li></ul></ul>
  5. 5. Locomotion <ul><li>For example, people are not statically stable . </li></ul><ul><li>In order to stand up, which appears effortless to us, we are actually using active control of our balance. </li></ul><ul><li>Achieved through nerves and muscles and tendons . </li></ul><ul><li>This balancing is largely unconscious : </li></ul><ul><ul><li>it must be learned , </li></ul></ul><ul><ul><li>so that's why it takes babies a while to get it right, </li></ul></ul><ul><ul><li>certain injuries can make it difficult or impossible. </li></ul></ul>
  6. 6. Locomotion <ul><li>With more legs, static stability becomes quite simple. </li></ul><ul><li>In order to remain stable, the robot's C enter O f G ravity (COG) must fall under its polygon of support . </li></ul><ul><li>This polygon is basically the projection between all of its support points onto the surface . </li></ul><ul><li>So in a two-legged robot , the polygon is really a line. </li></ul><ul><li>Thus the center of gravity cannot be aligned in a stable way with a point on that line to keep the robot upright. </li></ul><ul><li>Consider now a three-legged robot: </li></ul><ul><ul><li>with its legs in a tripod organization, </li></ul></ul><ul><ul><li>and its body above, </li></ul></ul><ul><li>Such robot produces a stable polygon of support. </li></ul><ul><li>It is thus statically stable. </li></ul><ul><ul><li>See the Robix tripod robot, it works! </li></ul></ul>
  7. 7. Stability of standing and walking <ul><li>But what happens when a statically stable robot lifts a leg and tries to move? </li></ul><ul><li>Does its center of gravity stay within the polygon of support? </li></ul><ul><li>It may or may not, depending on the geometry. </li></ul><ul><li>For certain robot geometries , it is possible (with various numbers of legs) to always stay statically stable while walking. </li></ul><ul><li>This is very safe, but it is also very slow and energy inefficient. </li></ul>
  8. 8. Static Stability <ul><li>Sequence of support patterns provide by feet of a quadruped walking. </li></ul><ul><li>Body and legs move to keep the projection of the center of mass within the polygon defined by a feet. </li></ul><ul><li>Each vertex is a support foot. </li></ul><ul><li>Dot is the projection. </li></ul>
  9. 10. Stability of standing and walking <ul><li>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 , </li></ul><ul><ul><li>so that the total center of gravity ( COG ) of the robot is not affected by the leg swing. </li></ul></ul><ul><li>Based on this assumption, the conventional static gait is designed so as to maintain the COG of the robot inside of the support polygon. </li></ul><ul><li>This polygon is outlined by each support leg's tip position. </li></ul>
  10. 11. Stability of standing and walking <ul><li>The alternative to static stability is dynamic stability which allows a robot (or animal) to be stable while moving. </li></ul><ul><li>For example, one-legged hopping robots are dynamically stable : </li></ul><ul><ul><li>they can hop in place or to various destinations , and not fall over. </li></ul></ul><ul><li>But they cannot stop and stay standing </li></ul>
  11. 12. Stability of standing and walking <ul><li>A statically stable robot can: </li></ul><ul><ul><li>1. use dynamically-stable walking patterns - it is fast, </li></ul></ul><ul><ul><li>2. use statically stable walking - it is easy. </li></ul></ul><ul><li>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): </li></ul><ul><ul><li>6 legs is the most popular number as they allow for a very stable walking gait, the tripod gait . </li></ul></ul><ul><ul><li>if the same three legs move at a time , this is called the alternating tripod gait . </li></ul></ul><ul><ul><li>if the legs vary, it is called the ripple gait. </li></ul></ul>
  12. 13. Hexapod(6 legged) walking <ul><li>A rectangular 6-legged robot can lift three legs at a time to move forward, and still retain static stability . </li></ul><ul><li>How does it do that? </li></ul><ul><li>It uses the so-called alternating tripod gait , a biologically common walking pattern for 6 or more legs. </li></ul><ul><li>Characteristic of this gait: </li></ul><ul><ul><li>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, </li></ul></ul><ul><ul><li>the other 3 legs remain on the ground and keep the robot statically stable. </li></ul></ul>
  13. 14. Hexapod and Insect walking <ul><li>Roaches move this way, and can do so very quickly. </li></ul><ul><li>Insects with more than 6 legs (e.g., centipedes and millipedes), use the ripple gate . </li></ul><ul><ul><li>However, when these insects run really fast, they switch gates to actually become airborne (and thus not statically stable ) for brief periods of time. </li></ul></ul>
  14. 15. Build your own hexapod <ul><li>Provides a statically stable gait </li></ul><ul><li>Basic hexapod walker can be built with 9 servos (or fewer) </li></ul>9 servo hexapod
  15. 16. Hexapod Walking Continued <ul><li>Torso servo supports a strut which supports two hip servos. </li></ul><ul><li>Legs are lifted and dropped by hips while side to side motion achieved by torsos. </li></ul>
  16. 17. Alternating Tripod Gait <ul><li>Walking gaits were first reported by D.M. Wilson in 1966 . </li></ul><ul><li>A common gait is the “ alternating tripod gait ”. </li></ul><ul><li>Commonly used by certain insects while moving slowly. </li></ul>
  17. 18. A Walking Algorithm <ul><li>Step 1 </li></ul><ul><ul><li>– legs 1,4,and 5 down, legs 2,3 and 6 up. </li></ul></ul><ul><li>Step 2 </li></ul><ul><ul><li>– rotate torso 7 and 9 counter-clockwise, torso 8 clockwise. </li></ul></ul><ul><li>Step 3 </li></ul><ul><ul><li>– legs 1,4 and 5 up, </li></ul></ul><ul><ul><li>– legs 2,3, and 6 down. </li></ul></ul><ul><li>Step 4 </li></ul><ul><ul><li>– rotate torso 7 and 9 clockwise, torso 8 counter-clockwise. </li></ul></ul><ul><li>Goto step 1 </li></ul>
  18. 20. Description <ul><li>The AVR is a Modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. </li></ul><ul><li>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. </li></ul>
  19. 21. Description(contd.) <ul><li>Atmel's low power, high performance AVR microcontrollers handle demanding 8 and 16-bit applications. </li></ul><ul><li>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. </li></ul>
  20. 22. Description(contd.) <ul><li>Whether you program in C or assembly, the tuned AVR instructions decrease program size and development time. </li></ul><ul><li>The well-defined I/O structure limits the need for external components and reduces development cost. </li></ul><ul><li>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. </li></ul>
  21. 23. Description(contd.) <ul><li>The AVR microcontrollers are divided into 4 families tiny AVR, mega AVR, XMEGA and Application specific AVR. </li></ul><ul><li>Among these 4 families of AVR here we are going to use a microcontroller of mega AVR family “ATmega16” </li></ul>
  22. 24. programming <ul><li>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++. </li></ul>
  23. 25. Steps for writing code using winavr <ul><li>1. Open the programmers notepad and write your code </li></ul><ul><li>2. Create a new folder and save your code in that folder with extension name “.c” </li></ul><ul><li>3. Now open the make file and edit it as mentioned bellow </li></ul><ul><ul><li>a. Make file-> main filename (give your file name here without extension) </li></ul></ul><ul><ul><li>b. Make file-> MCU type-> atmega-> (chose your UC) </li></ul></ul><ul><ul><li>c. Make file-> Debug format-> AVR-ext-COFF </li></ul></ul><ul><ul><li>d. Make file-> Programmer-> select your programmer (if your programmer is not in the list then follow the step3.d) </li></ul></ul><ul><ul><li>e. Make file-> port-> (select the port where you have connected your programmer) </li></ul></ul><ul><ul><li>f. Make file-> enable editing make file-> then in your make file edit the following things </li></ul></ul><ul><ul><li>F_CPU = 8000000 (change it as for your crystal frequency) AVRDUDE_PROGRAMMER = stk500 (here write down you programmers name) </li></ul></ul><ul><ul><li>g. Save the make file in your folder without changing its name </li></ul></ul>
  24. 26. Steps for writing code using winavr(contd.) <ul><li>4. Now open the programmers notepad </li></ul><ul><li>5. To compile your code and to generate hex file (Tools-> make all) </li></ul><ul><li>6. To upload your code into your UC (Tools -> program) </li></ul>
  25. 28. Basic principles <ul><li>Servos are DC motors with built in gearing and feedback control loop circuitry. </li></ul><ul><li>Servos are extremely popular with robot, RC plane, and RC boat builders. </li></ul><ul><li>Most servo motors can rotate about 90 to 180 degrees. </li></ul><ul><li>Some rotate through a full 360 degrees or more. </li></ul>
  26. 29. Basic principles(contd.) <ul><li>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. </li></ul><ul><li>Since servos are fully self contained, the velocity and angle control loops are very easy to implement, while prices remain very affordable. </li></ul>
  27. 30. Basic principles(contd.)
  28. 31. Basic principles(contd.)
  29. 32. Basic principles(contd.) <ul><li>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) . </li></ul><ul><li>Vary the square wave pulse width from 1-2ms and your servo is now position/velocity controlled. </li></ul>
  30. 33. Basic principles(contd.)
  31. 34. Servo wiring <ul><li>All servos have three wires: </li></ul><ul><li>1. Black or Brown is for ground. </li></ul><ul><li>2. Red is for power (~4.8-6V). </li></ul><ul><li>3. Yellow, Orange, or White is the signal wire (3-5V). </li></ul>
  32. 35. Servo Voltage (Red and Black/Brown wires) <ul><li>Servos can operate under a range of voltages. Typical operation is from 4.8V to 6V. </li></ul><ul><li>There are a few micro sized servos that can operate at less, and now a few Hitec servos that operate at much more. </li></ul><ul><li>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. </li></ul>
  33. 36. Servo Voltage(contd.) <ul><li>So what voltage should you operate at? </li></ul>
  34. 37. Servo Voltage(contd.) <ul><li>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. </li></ul>
  35. 38. Signal Wire (Yellow/Orange/White wire) <ul><li>While the black and red wires provide power to the motor, the signal wire is what you use to command the servo. </li></ul><ul><li>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). </li></ul>
  36. 39. Signal Wire (contd.) <ul><li>“ The wavelength directly maps to servo angle”. </li></ul><ul><li>So how do you apply this square wave to your servo? </li></ul>
  37. 40. Signal Wire (contd.) <ul><li>If your robot is remote controlled, your RC receiver will apply the proper square wave for you. </li></ul><ul><li>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. </li></ul>
  38. 41. Signal Wire (contd.) <ul><li>Repeat this procedure until the servo reaches the desired angle. </li></ul>
  39. 42. Signal Wire (contd.) <ul><li>The standard time vs. angle is represented in this chart: </li></ul>
  40. 43. Servo current <ul><li>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. </li></ul><ul><li>If your DC motor is not at the specified angle, it will suddenly draw huge amounts of current to reach that angle. </li></ul><ul><li>But there are other peculiarities as well. </li></ul>
  41. 44. Servo current <ul><li>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. </li></ul><ul><li>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. </li></ul>
  42. 45. Servo current(contd.) <ul><li>Servo current draw is very unpredictable. </li></ul>
  43. 46. Organizers <ul><li>K Jeshwanth Durga Sagar [email_address] </li></ul><ul><li>+919678883623 </li></ul><ul><li>K Satyadeep [email_address] </li></ul><ul><li>+919957887814 </li></ul><ul><li>Niteesh Kumar [email_address] </li></ul><ul><li>+919678883577 </li></ul><ul><li>Pradeep Kumar [email_address] </li></ul><ul><li>+919678883554 </li></ul>