design, construction and control of hexapod walking robot

8
2015 http://excel.fit.vutbr.cz Design, Construction and Control of Hexapod Walking Robot Marek ˇ ak* Abstract This paper aims on design, construction and control of a hexapod robot, which is six-legged walking robot. Basic characteristics of legged robots, a few existing robots and their pros and cons are described. Paper also describes basic gaits, which are used by legged robots for their locomotion. The result of this project is a legged robot, which can walk using tripod, wave and ripple gait and is equipped with sonars, force-sensitive resistors and encoders. The robot is controlled and monitored from an user interface program. It can display data from the sensors and the positions of robot legs. The robot can be used to test and verify algorithms, gaits and features of walking robots. Keywords: Hexapod — Legged chassis — Walking robot — Hexapod gaits Supplementary Material: Demonstration Video *xzakma01@stud.fit.vutbr.cz, Faculty of Information Technology, Brno University of Technology 1. Introduction - Why legged robots ? Robots can be found everywhere. One of the most important part of a robot is its chassis. There are sev- eral basic chassis types: wheeled, tracked and legged chassises. Wheeled chassises are fast, but not suitable for rough terrain. Tracked chassises are slower, but more suitable to rugged terrain. Legged chassises are quite slow and more difficult to control, but extremely robust in rough terrain. Legged chassises are capable to cross large holes and can operate even after losing a leg. [1] Many researches were performed in this field in past few years, because of its large potential. Legged chassises are especially ideal for space mis- sions [2, 3]. There are also several projects in military research [4, 5, 6]. I aim to create a cheap legged platform, which would allow research and testing of walking chassises. Create a system with many sensors that allows the chassis any movement or behavior. The robot should be driven from wirelessly connected computer and should send all available data from sensors, which will be displayed on the computer in the user interface program. This platform should be universal, anyone could connect to the robot and drive it and anyone may connect and send his own data to the user interface program of the control computer. Part of the problem is the design and implementa- tion of hexapod gait algorithms such as tripod, wave or ripple (Figure 2)[3]. It is also important to create and program a system into the microcontroller unit (MCU) [7] of the robot, which would be able to perform given algorithm by adjusting the servomotor angle at the right time. There are several companies, which are producing hexapod robot models and platforms. Name Lynxmo- tion [8] or Trossen Robotics [9]. Both companies offer a variety of hobby and research level robot kits and parts. They also offer several types of hexapods. These

Upload: vukhuong

Post on 04-Feb-2017

242 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Design, Construction and Control of Hexapod Walking Robot

2015

http://excel.fit.vutbr.cz

Design, Construction and Control of HexapodWalking RobotMarek Zak*

AbstractThis paper aims on design, construction and control of a hexapod robot, which is six-legged walkingrobot. Basic characteristics of legged robots, a few existing robots and their pros and cons aredescribed. Paper also describes basic gaits, which are used by legged robots for their locomotion.The result of this project is a legged robot, which can walk using tripod, wave and ripple gait and isequipped with sonars, force-sensitive resistors and encoders. The robot is controlled and monitoredfrom an user interface program. It can display data from the sensors and the positions of robot legs.The robot can be used to test and verify algorithms, gaits and features of walking robots.

Keywords: Hexapod — Legged chassis — Walking robot — Hexapod gaits

Supplementary Material: Demonstration Video*[email protected], Faculty of Information Technology, Brno University of Technology

1. Introduction - Why legged robots ?

Robots can be found everywhere. One of the mostimportant part of a robot is its chassis. There are sev-eral basic chassis types: wheeled, tracked and leggedchassises. Wheeled chassises are fast, but not suitablefor rough terrain. Tracked chassises are slower, butmore suitable to rugged terrain. Legged chassises arequite slow and more difficult to control, but extremelyrobust in rough terrain. Legged chassises are capableto cross large holes and can operate even after losinga leg. [1] Many researches were performed in thisfield in past few years, because of its large potential.Legged chassises are especially ideal for space mis-sions [2, 3]. There are also several projects in militaryresearch [4, 5, 6].

I aim to create a cheap legged platform, whichwould allow research and testing of walking chassises.Create a system with many sensors that allows thechassis any movement or behavior. The robot should

be driven from wirelessly connected computer andshould send all available data from sensors, whichwill be displayed on the computer in the user interfaceprogram. This platform should be universal, anyonecould connect to the robot and drive it and anyone mayconnect and send his own data to the user interfaceprogram of the control computer.

Part of the problem is the design and implementa-tion of hexapod gait algorithms such as tripod, wave orripple (Figure 2) [3]. It is also important to create andprogram a system into the microcontroller unit (MCU)[7] of the robot, which would be able to perform givenalgorithm by adjusting the servomotor angle at theright time.

There are several companies, which are producinghexapod robot models and platforms. Name Lynxmo-tion [8] or Trossen Robotics [9]. Both companies offera variety of hobby and research level robot kits andparts. They also offer several types of hexapods. These

Page 2: Design, Construction and Control of Hexapod Walking Robot

Figure 1. Hexapod. This robot was designed andconstructed during the project. It is equipped withsonars, camera, LCD display and more accessories.

robots differ in the body shape and leg construction.All robots come with software, which provides controlof servomotors using inverse kinematics and creatingcustom gaits. Robot kits are sold for about $ 1,000,depending on the version.

Although several solutions already exist and havegreat potential, each one of them has some disadvan-tage. The first one is price, which is quite high, about$ 1,000 a piece. Another disadvantage is equipment ofthe robots. Most of the available robots have limitedexpansion options, like missing foot sensors, which aredifficult to install later, or servomotor type with insuf-ficient power or features. Also the batteries are oftenbuilt in the body and it is difficult or even impossibleto remove them.

Because of these disadvantages, I decided to builda new robot (Figure 1). This new robot is capable ofthe same movements like commercial versions andtries to remove their negatives. Robot is made of alu-minium profiles, because of their easy availability andsufficient strength. Unlike commercial versions, thishexapod has also a wide variety of sensors and equip-ment, like ultrasonic sonars, LCD display, encoders,foot sensors or camera. All the information from thesensors are sent to the computer and displayed in theUI program. It is also possible to use a library, whichallows reading of all the data from the robot and send-ing commands to it.

This robot can walk using tripod, wave or rip-ple gait and is also capable of rotation. Each legis equipped with a force-sensitive resistor to detectground and each servomotor has an encoder to deter-mine joint’s current position. Sonars are able to detectobstacles to avoid collisions. All events and infor-mation can be monitored in Hexapod Control Room(Chapter 5.1).

2. Characteristics of Legged Robots

This part of the paper focuses on several characteristicsof walking robots. Some classifications of walkingrobots and most common walking gaits are described.

There are many ways how to classify walkingrobots – by a body shape [10], number of legs, numberof degrees of freedom per leg or locomotion technique.Various options can be combined to achieve many dif-ferent configurations.

At least two degrees of freedom are needed to con-struct a walking robot – the first for lifting the leg,second for rotating it. Nevertheless there should bethree degrees of freedom for a good functioning chas-sis, because the legs move along a circle and the for-ward movement of the body causes slipping betweenthe foot and the terrain, which can be compensated bythird joint [11, 12].

Walking chassis movement can be divided into stat-ically stable and dynamically stable [1, 12]. Static sta-bility represents the ability of the chassis to remain ina stable position in every moment of movement. Staticstability is typical for hexapod, which is always stableduring its movement. Dynamically stable chassises aresometimes out of balance – balancing or falling. Thisis common for two-legged robots.

2.1 Walking GaitsWalking gait refers to the locomotion achieved throughthe movement of robot legs. Compared to human gait,the legged chassis usually has more than two legs.Therefore, the locomotion of a robot is much morecomplicated. There are several basic gaits, such astripod, wave or ripple (Figure 2).

Tripod gait is based on two groups of legs. Duringeach step the first group of the legs is lifted and isrotated forward and is laid upon on the ground. Thenthe other group is lifted. Now both groups are moving,the first group backward, the second group forwardand finally the second group is laid on the ground. It isobvious that both groups perform the same movement,but they are shifted by half a period. Tripod gait isvery fast, but also very unstable. That is because atone moment half of the whole weight of the robot isonly on one leg, which can lead to slip or even to fall.

Another gait is wave, which is the most stable gait,but also the slowest. Wave gait consists of a sequentialadjustment of legs forward and only when all the legsare set to the new positions, the step is completed.In each phase of step maximally one leg is lifted up,which leads to high stability of this gait.

Ripple gait is inspired by insects. Each leg per-forms the same move – up, forward, down, backward.

Page 3: Design, Construction and Control of Hexapod Walking Robot

Figure 2. Walking gaits. The chart shows the movement of each leg in time. A high value represents legmovement, low values means no movement. Tripod, wave and ripple gaits are shown in this figure. Tripod hastwo group of legs, all the legs in the same group move at once. In the wave gait only one leg is moving at anytime. After all legs are set up to their new positions, step is completed. In the ripple gait all legs move the sameway, but their moves are shifted.

Leg moves partially overlap. In other words, the timewhen the first foot is lifted and begins to move forward,the second leg begins to lift up. In this way the robotcycles through all legs.

These are the most common gaits. Theoreticalnumber of different gaits N can be calculated usingEquation 1. Not all of them are usable for effectivelocomotion.

N = (2K −1)! (1)

Where K is the number of the legs of the robot. Forhexapod robot it is 11! = 39 916 800 possibilities oflocomotion [13]. The number is quite large, becausethis equation calculates all possible motions, like mo-tion up and down, which of course doesn’t lead to aneffective movement.

3. Body ConstructionWe constructed a hexapod robot during this project.This hexapod has rectangular body type – it has twogroups of legs, three on each side. Each leg has threedegrees of freedom and is powered by hobby servo-motors HS-5485HB on coxa and tibia joints and HS-5645MG on femur joint (Figure 4). Servomotors are

equipped with encoders and footers are equipped withforce-sensitive sensors to detect ground (Figure 3).

Servomotors must be sufficiently powerful, de-pending on the desired behavior. If tripod gait isrequired, then each motor on the middle legs mustbe powerful enough to hold half of the weight of therobot.

It is important to choose a suitable material forthe body. It must be solid enough, but not too heavy.Therefore aluminum profiles were chosen for the bodyconstruction. They are quite light-weighted and solidenough. In addition, they are available in various sizesand shapes and are easy to handle. Robot is made of25 mm and 60 mm profiles. Structure of the leg isshown in Figure 4. The robot is 70 cm long, 47 cmwide and 6 cm high and weighs 4.3 kg.

The price of components on the robot (body, servo-motors, MCU) is about $ 500, which is half the price ofthe commercial version. Another $ 80 costs RaspberryPi [14], sensors and accessories.

4. Robot Electronic SystemIn order to control the robot there must be some controlunit. MCU Atmega2560 [15] was chosen to drive the

Page 4: Design, Construction and Control of Hexapod Walking Robot

Figure 3. Force-sensitive resistors placement. Theinner profile is movable in digits of singles amillimeter. This ensures perfect functionality of theforce-sensitive resistor.

servomotors and sensors on this robot. All sensorslike sonars, LCD display, memory card, GPS moduleor force-sensitive resistors are connected to it. LCDdisplay is connected by digital pins using integratedHitachi HD44780 driver, which allows 4-bit or 8-bitmode. The 4-bit mode requires seven I/O pins from theArduino, while the 8-bit mode requires 11 pins. Thereare also 18 servomotors connected to digital pins anddriven by MCU’s timers. The MCU is integrated onopen-source electronic platform Arduino Mega 2560[16]. Arduino board is connected to the Raspberry Pivia USB cable. The whole scheme is in Figure 5.

Raspberry Pi is a miniature computer the size of acredit card, to which a standard monitor, a keyboardand a mouse can be connected. It has extremely lowpower consumption (max. 3.5 W) and can run linuxbased operating system Raspbian. There are severalmodels, which differ in RAM, the number of USBports or GPIO pins. Raspberry Pi is equipped with aUSB Wi-Fi dongle, which is connected to a wirelessnetwork, and runs Qt [17] client program, which is ableto find the IP address of the server and gets connectedto it. Sensor data are sent to a computer after successfulconnection. Client is also capable of reconnect afterdisconnection.

All sensors and servomotors are connected anddriven by Arduino board. Servomotors are controlledby MCU’s timer using VarSpeedServo library [18].

Robot is also equipped with ultrasonic distancesensors HC-SR04 – sonars. These sensors can measuredistance from 2 cm to 400 cm. It has 4 pins – Vcc,ground, trigger and echo. Robot is equipped with eightsonars, three in front, three in back and two on sides.Sonars are connected using MCU’s digital pins and amultiplexer.

If the robot should walk across rugged terrain, itmust be able to detect ground. Therefore each leg isequipped with force-sensitive resistors, which are bet-

Figure 4. Leg structure. From left: body is connectedto the coxa using coxa joint, which allows forwardand backward rotation. Coxa is then connected to thefemur and femur is connected to the tibia, whichallows lifting and laying. [11]

ter than tactile switches, because they can detect levelof pressure on the leg. This is used for robot calibra-tion. To determine the pressure force-sensitive resistoris connected to A/D converter using voltage divider.Pressure can be calculated according to Equation 2[19].

Vout =Vin ·R2

R1 +R2(2)

The robot also has a GPS module to determine itsposition and a SD card to store logs and config files.

Besides of the sensors, the robot is equipped witha two-line LCD display, which displays basic informa-tion about the robot such as battery level, the name orthe selected gait.

Energy to the entire system is supplied by one11.1 V Li-Po battery, which can supply up to 60 A.This power is sufficient for all servomotors and elec-tronics. But servomotors require 6 V power supplyand electronics require 5 V power supply. Therefore,the robot is equipped with voltage regulators. Eachservomotor has its own regulator and there is one moreregulator for electronics. Switching voltage regulatorwere used to decrease power consumption.

Page 5: Design, Construction and Control of Hexapod Walking Robot

Figure 5. The electronic system of the robot. In the center is a MCU Atmega2560 integrated on a ArduinoMega 2560. Most of the sensors like sonars, LCD display, memory card, GPS module or force-sensitive resistorsare connected to it. There are also 18 servomotors connected to digital pins and driven by MCU’s timers.Arduino board is connected to the Raspberry Pi via USB cable. Raspberry Pi is connected to the computer viawi-fi and provides data from the sensors to the computer and commands from the computer to the Arduino. Datafrom the sensors are visualized in the user interface on the computer.

5. Hexapod Control SoftwareThe software of the robot can be divided into threeparts – a computer Qt user interface program, a Rasp-berry Pi Qt program and an Arduino C++ program.Data from Arduino are sent to the Raspberry Pi througha serial port and then to a computer over Wi-Fi.

5.1 Hexapod Control RoomHexapod Control Room is user interface program (Fig-ure 6) designed in C++ and Qt [17], which is used tocontrol servomotors, gaits and monitor sensors of therobot. It also shows actual position of the robot legsfrom the top and the back view and provides commandand log windows. Server allows up to 10 connections.It is possible to switch between the connected robots.Inactive robots are automatically removed.

There was also developed Qt library for customand external applications. It allows to create a server,which creates connection to the client and returns theraw data from client. This is useful when developingcustom control application for hexapod robot.

5.2 Robot Client ProgramThis program runs on Raspberry Pi and communicateswith Hexapod Control Room and Arduino MCU. Userinterface is shown in Figure 6. After the program startsit tries to connect to the server. The IP address is dis-covered using broadcast messages and client asks fora new identifier. The server answers with a new identi-fier and asks for the type or refuses connection. Clientsends the type and name eventually. After exchange ofthese messages the new robot is added into the serveruser interface and the client starts to send data fromsensors, which are displayed in the Hexapod ControlRoom. For initial connection TCP sockets were usedto prevent connection failures, however, sensor dataare sent through UDP sockets, which have higher per-formance and allow real-time communication.

5.3 Arduino ProgramMCU on Arduino runs program, which communicateswith the Raspberry Pi over USB serial port. Onceauthorized from the Raspberry Pi, the program startssending data from sensors over serial port. It also

Page 6: Design, Construction and Control of Hexapod Walking Robot

Figure 6. UI screenshots of Hexapod Control Room. Top left figure shows the Monitor screen with the valuesof sonars, encoders and force-sensitive resistors. There is also information about battery and robot wi-fi signalstrength. Top right image shows the actual position of the legs. Left model is from back view and right model isfrom top view. Bottom left image presents console, which allows sending command to the robot. Bottom rightimage shows the client window with the most important information and log window.

controls all servomotors, manages sonar measurementsand receives commands from the computer.

It is also important to keep the main programloop non-blocking. Therefore individual steps are per-formed according to the calendar structure, which issimilar to the next-event algorithm. The steps areplanned and stored in the calendar structure accordingto their start times. When performing a step, first itemfrom the calendar is selected and executed. So thenon-blocking execution of the main loop is achieved,which allows other events to be performed.

If distance measurement is needed, a short pulse isemitted to the trigger pin, which causes the formationof several ultrasonic waves. Waves are reflected in theenvironment and are detected by the receiver. Basedon the time elapsed from sending waves the distancecan be calculated. Because measuring the time usingArduino’s pulseIn function [20] generates delay, inter-

rupts were used. The time measurement is started bythe arrival of rising signal and ended by falling signal.The distance can be calculated according to the timebetween these two events.

6. Hexapod Motion Testing

Hexapod has been tested according to several crite-ria. One of them was the movement of the robot ondifferent surfaces (carpet and wooden floor) and withdifferent footers (bolt and bolt with paper tape). Therobot was also tested in rugged terrain and speed anddata transmission were monitored.

6.1 Basic Walk TestingThe robot was tested on various surfaces using var-ious gaits and different materials on the footers andthe stability of the robot and any unwanted behaviorlike slipping of the footers or tilting of the body were

Page 7: Design, Construction and Control of Hexapod Walking Robot

monitored. Test parameters are listed in Table 1. Ineach test the robot walked using the given gait on thegiven surface equipped with bolted footers or boltedfooters with tape. The test path doesn’t contain anyobstacles.

Table 1. Tests setup

ID Surface Footers Gait1 carpet bolt wave2 carpet bolt tripod3 carpet bolt with tape wave4 carpet bolt with tape tripod5 wooden floor bolt wave6 wooden floor bolt tripod7 wooden floor bolt with tape wave8 wooden floor bolt with tape tripod

Tests show, that carpet is much better surface thanwooden floor, because carpet has higher friction thanwooden floor. The robot slipped and fell during onetest on wooden floor. Also paper tape on the footer’sbolts improved stability.

The wave gait was more stable compared to thetripod gait. It is because during the tripod gait robotstands only on three legs. The robot was able to walkalmost in all tests.

6.2 Walk Testing in Rugged TerrainThese tests were focused on walking robot in ruggedterrain, which was simulated by wooden obstacles.The robot walks through the testing area and the sta-bility of the robot and foot sensors were tested. Therobot was capable to walk through the area without anyissues. Perhaps only the inability of the robot to detectobstacles at the leg level, which is also a preconditionfor climbing stairs.

The sensors were tested by comparing the valueson the force-sensitive with thresholds using the testsoftware on the computer which was connected via aUSB serial link. If the thresholds weren’t achieved, itcan lead to instability, which is not desirable and thetest was unsuccessful.

It is also important, that the tibia is perpendicularto surface plane. Otherwise the servomotors are inconstant load, which leads to higher power drain andcan even lead to its malfunction. Therefore, the tibiaangle was monitored.

6.3 Repeatability of MovementThe aim of these tests was to determine whether therobot is able to repeat the movement on a certain path.The robot walked ten times through the same path andthe final positions of footers were marked. The robotwalked using wave gait with active ground sensors.

Figure 7. Results of repeatability of movement. Thisfigure shows the results of all attempts during thetesting of the repeatability of the robot movement.Each sticker represents one final position of a footer.The number on the sticker is an attempt number.

The wave gait was chosen, because it is the most sta-ble gait and therefore the error should be minimized.During each test the robot made thirteen cycles of thegait.

The results of these tests are shown in Figure 7 andin Table 2. Each sticker represents the final positionof the leg. The number on the sticker is an attemptnumber. The standard deviation of all tests for x is21,72 and for y is 14,45, which is quite good resultcompared to the size of the robot.

Table 2. Tests of repeatability of movement

ID Front right footer [x, y] Distance from start [cm]1 45, 61 81.02 68, 49 82.03 65, 79 79.04 89, 70 80.05 30, 36 83.46 34, 72 79.87 25, 60 81.08 29, 47 82,39 61, 68 80.210 79, 85 78.5

7. ConclusionsI designed, constructed and tested a hexapod robotduring this project. The robot can walk using tripod,wave and ripple gaits, can rotate and it is equipped withsonars, force-sensitive resistors, encoders and LCDdisplay. The foot sensors on the legs allow grounddetection, thus the robot can walk in rugged terrain.

I also designed an user interface program in C++and Qt, which allows to control and monitor the robot.The program visualizes the position of legs, displaysdata from the sensors and allows sending commands

Page 8: Design, Construction and Control of Hexapod Walking Robot

to the robot. The connection to control program isautomatic.

The robot was tested on different surfaces and inrugged terrain. The repeatability of the robot move-ment as well as the sensor system was also tested.

I plan to expand the user interface with a customgait wizard in the future. Also connecting the robot toROS would be useful.

References[1] Uluc Saranlı. Dynamic locomotion with a hexa-

pod robot. PhD thesis, The University of Michi-gan, 2002.

[2] NASA. All-terrain hex-limbedextra-terrestrial explorer. http://athlete.jpl.nasa.gov/, 2009. [Online;visited 09-03-2015].

[3] Franco Tedeschi and Giuseppe Carbone. Designissues for hexapod walking robots. Robotics,3(2):181–206, 2014.

[4] Boston Dynamics. Boston dynamics: Dedicatedto the science and art of how things move.http://www.bostondynamics.com/robot petman.html, 2015. [Online; visited10-03-2015].

[5] Boston Dynamics. Boston dynamics: Dedicatedto the science and art of how things move.http://www.bostondynamics.com/robot bigdog.html, 2015. [Online; visited10-03-2015].

[6] Boston Dynamics. Boston dynamics: Dedicatedto the science and art of how things move.http://www.bostondynamics.com/robot ls3.html, 2015. [Online; visited10-03-2015].

[7] Wikipedia. Microcontroller —Wikipedia, the free encyclope-dia. http://en.wikipedia.org/w/index.php?title=Microcontroller&oldid=654251428,2015. [Online; accessed 17-April-2015].

[8] Lynxmotion. Lynxmotion robot kits. http://www.lynxmotion.com/, 2015. [Online;visited 10-03-2015].

[9] Trossen Robotics. Trossen robotics. http://www.trossenrobotics.com/, 2015. [On-line; visited 10-03-2015].

[10] EZ Moore and M Buehler. Stable stair climb-ing in a simple hexapod robot. Technical report,DTIC Document, 2001.

[11] Xilun Ding, Alberto Rovetta, JM Zhu, and Zhiy-ing Wang. Locomotion analysis of hexapod robot.INTECH Open Access Publisher, 2010.

[12] S. Manoiu-Olaru, M. Nitulescu, and V. Stoian.Hexapod robot. mathematical support for model-ing and control. In System Theory, Control, andComputing (ICSTCC), 2011 15th InternationalConference on, pages 1–6, Oct 2011.

[13] Roland Siegwart. Introduction to autonomousmobile robots. MIT Press, Cambridge, Mass,2004.

[14] Raspberry Pi Foundation. Respberry pi. http://www.raspberrypi.org/, 2014. [Online;visited 09-04-2015].

[15] Atmel. Atmega2560. http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561 datasheet.pdf, 2015. [Online;visited 21-03-2015].

[16] Arduino. Arduino - arduinoboardmega2560.http://arduino.cc/en/Main/ArduinoBoardMega2560, 2015. [On-line; visited 21-03-2015].

[17] Digia. Qt project. http://qt-project.org/, 2015. [Online; visited21-03-2015].

[18] NETLab Toolkit Group. Varspeedservo. https://github.com/netlabtoolkit/VarSpeedServo, 2013. [Online; visited21-03-2015].

[19] Wikipedia. Voltage divider -Wikipedia, the free encyclopedia.http://en.wikipedia.org/w/index.php?title=Voltage%20divider&oldid=654047356, 2015.[Online; accessed 17-April-2015].

[20] Arduino. Arduino - pulsein. http://arduino.cc/en/Reference/pulseIn,2015. [Online; visited 21-03-2015].