375 Report

52
Supervised by: Author: Prof. Dr. Roland Y. Siegwart Lukas Meier Marco Hutter Mark H¨ opflinger Optimization of a Robotic Spider Leg for Maximum High Jump Bachelor thesis July 2, 2012

description

robot

Transcript of 375 Report

Page 1: 375 Report

Supervised by: Author:Prof. Dr. Roland Y. Siegwart Lukas MeierMarco HutterMark Hopflinger

Optimization of a RoboticSpider Leg for Maximum

High Jump

Bachelor thesis

July 2, 2012

Page 2: 375 Report
Page 3: 375 Report

Declaration of Originality

I hereby declare that the written work I have submitted entitled

Optimization of a Robotic Spider Leg for Maximum High Jump

is original work which I alone have authored and which is written in my ownwords.1

Author

Lukas Meier

Supervising lecturer

Prof. Dr. Roland Y. SiegwartMarco HutterMark Hopflinger

With the signature I declare that I have been informed regarding normal aca-demic citation rules and that I have read and understood the information on ’Ci-tation etiquette’ (http://www.ethz.ch/students/exams/plagiarism_s_en.pdf). The citation conventions usual to the discipline in question here havebeen respected.

The above written work may be tested electronically for plagiarism.

Place and date Signature

1Co-authored work: The signatures of all authors are required. Each signature attests to theoriginality of the entire piece of written work in its final form.

I

Page 4: 375 Report

II

Page 5: 375 Report

Abstract

The goal of this Bachelor Thesis is to optimize a leg of a spider robot for max-imum high jump. The idea is to optimize the jumping height of the spiderby applying parallel springs into the joints to support the existing motors. Tooptimize the leg, a simulation is created to numerically optimize different pa-rameters of the leg. These results are experimentally validated on a test leg.The simulation and the test leg were compared and appeared to be quite con-gruent. It was achieved that the testing leg even without parallel springs isable to jump up to 13 centimetres, which is 35% of the leg length. The sim-ulation pointed out that parallel springs are useful to maximize the maximumhigh jump but due to velocity saturation in the position controlled servos thebenefit is just about 15%.

III

Page 6: 375 Report

IV

Page 7: 375 Report

Contents Contents

Contents

1 Introduction 11.1 Goals, Background and Motivation . . . . . . . . . . . . . . . . . 11.2 Starting Position . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Existing Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.1 Master Thesis by Jonas Fisler at the ASL[6] . . . . . . . . 21.3.2 Leg from HyQ, a Wuadruped Walking Robot . . . . . . . 31.3.3 Robotic Jumping Leg by Toyota . . . . . . . . . . . . . . 4

1.4 Biological Principles . . . . . . . . . . . . . . . . . . . . . . . . . 41.4.1 Hemolymph Pressure - Hydraulic System in Spider Legs . 41.4.2 Ligamentum Nuchae - Parallel Spring in the Neck of Hoofed

Mammals . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4.3 Click Mechanism . . . . . . . . . . . . . . . . . . . . . . 6

1.5 Evaluation of Mechanisms . . . . . . . . . . . . . . . . . . . . . . 6

2 Simulation 92.1 Simplifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 Schematic Leg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Matlab/Simulink Model . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.1 Trajectory Generator . . . . . . . . . . . . . . . . . . . . . 112.3.2 Servo Motor Model . . . . . . . . . . . . . . . . . . . . . . 122.3.3 Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3.4 Spring Model . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.5 Soft Contact Model . . . . . . . . . . . . . . . . . . . . . 15

3 Experimental Leg 163.1 Basic Structure and Mounting . . . . . . . . . . . . . . . . . . . . 163.2 Foot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3 Springs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.4 Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5 Electronic Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.5.1 Arduino Duemilanove . . . . . . . . . . . . . . . . . . . . 173.5.2 Servo Motors . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.3 Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 Optimization 214.1 Gear Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2 Springs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.3 Trajectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3.1 Explanation . . . . . . . . . . . . . . . . . . . . . . . . . . 23

V

Page 8: 375 Report

Contents Contents

5 Evaluation 255.1 Comparison Simulation/Test Leg . . . . . . . . . . . . . . . . . . 255.2 Springs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

6 Conclusion and Outlook 296.1 Achievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.2 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.3 Suggested Changes and Future Steps . . . . . . . . . . . . . . . . 306.4 Final Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Appendix 36

A Inverse Kinematics 37

B Matlab Code 38

C Essential Scripts and Functions 41

VI

Page 9: 375 Report

Contents Contents

Abbreviations

ASL Autonomous Systems Lab

DOF Degree of freedom

DRZ Disney Research Zurich

ETHZ Federal Institute of Technology Zurich

PWM Pulse Width Modulation

ZHAW Zurich University of Applied Sciences

CFRP Carbon Fiber reinforced Plastics

VII

Page 10: 375 Report

Contents Contents

VIII

Page 11: 375 Report

Introduction

1 Introduction

1.1 Goals, Background and Motivation

Within the focus project ARAC, a spider robot was developed. A main goalwas that the robot looks and moves as spiderlike as possible. There is a familyof spiders which is able to jump, the so called jumping spiders (Salticidae[2]).The idea of this Bachelor thesis is to enable the existing spider robot to jump.Therefor a leg from ’ARAC’ is taken and modified for maximum high jump. Arobot leg that is able to jump brings several benefits for the system it is builtin. It allows to execute highly dynamic movements, as jumping with a singleleg or running in the full spider setup. In walking gaits there is at least one footon the ground all time. While running there is a time when no foot has contactto the ground. So it can be said that jumping is a requirement for running.To achieve the goal of single leg jumping, the leg and the jumping motion aresimulated and parameters like spring constants and gear ratios are numericallyoptimized using the simulation.

1.2 Starting Position

’ARAC’ is a eight-legged spider robot developed at the ASL by a team of elevenstudents from ETHZ and ZHAW within a focus project.

Figure 1.1: Spider robot built in the focusproject ARAC

1

Page 12: 375 Report

1.3 Existing Solutions Introduction

Its legs consist of 3D rapid prototyping material coated by a layer of carbonfiber reinforced plastics for more stability. The legs have three elements andare actuated by 3 servo motors. The joints are actuated by position controlledservo motors over a cable pulley system. In the foot there is a force sensorbuilt in for ground contact detection. Detailed information can be found in thereport of the project[1].

1.3 Existing Solutions

To know what solutions for a jumping leg already exist and how it is managedto concentrate power for a jumping motion, a literature research was made. Inthis section some existing solutions for jumping are showed.

1.3.1 Master Thesis by Jonas Fisler at the ASL[6]

Figure 1.2: Robotic jumping leg by Jonas Fisler, taken from [6]

Figure 1.2 depicts the jumping leg that Jonas Fisler developed in his MasterThesis at the ASL. To be able to jump higher, it has rotational springs in seriesto the motors. It is able to jump about six centimetres high, which is about15% of the leg legth.

2

Page 13: 375 Report

Introduction 1.3 Existing Solutions

1.3.2 Leg from HyQ, a Wuadruped Walking Robot

Figure 1.3: Leg of the walking robot HyQ of the Italian Institute of Technology inGenoa1

The leg in figure 1.3 is from HyQ, a quadruped walking robot developed atthe Italian Institute of Technology in Genoa[3]. It is actuated by a hydraulicsystem. A speciality of the leg is that through the hydraulic actuation system,springs and damping elements can be emulated, while the leg is mechanicallystiff. The stiffness and the damping are freely selectable. It wasn’t possible tofind out the maximum jumping height, but in videos, it jumps more than 40centimetres high, which is about 55% of the leg length.

1http://images.gizmag.com/inline/hyquadruped-5.jpg

3

Page 14: 375 Report

1.4 Biological Principles Introduction

1.3.3 Robotic Jumping Leg by Toyota

Figure 1.4: Self balancing jumping robot leg by Toyota 2

In figure 1.4 a jumping leg developed by Toyota can be seen. It is able to bal-ance itself while jumping. Another feature is that it has an additional toe jointin the foot. It is able to jump up to four centimeters, which is about 5% of theleg length.

The literature examples are showing some interesting concepts that are partiallyfundamentaly different to our hardware.It was noticed that these approachesare based on force controlled systems. Another big difference is that these legsare all big scaled and the ARAC leg is much smaller.

1.4 Biological Principles

In this section some biological principles and mechanisms which help humansand animals to jump, or which could be useful to increase the maximum highjump in general, will be investigated.

1.4.1 Hemolymph Pressure - Hydraulic System in Spider Legs

Figure 1.5 shows that the upper legs of a jumping spider are much thinnercompared to the upper legs of a locust.

2http://cache.gizmodo.com/assets/images/4/2006/09/toyotarobotleg.jpg

4

Page 15: 375 Report

Introduction 1.4 Biological Principles

Figure 1.5: Comparison: The jumping spider (left) has much thinner upper legs thanthe locust (right) 3

The locust has very thick muscles in the upper leg to produce the torque forjumping in the knee. The spider has not. The reason for this is that a jumpingspider produces most of the force for jumping by a hydraulic system in its bodyinstead of muscles in the leg. It has only muscles for bending the knee jointand not for streching it. So if they want to jump they can rapidly increase thehemolymph pressure, this pressure extends a sort of hydraulic cylinder in theirjoints, which can work only in one direction. This system is very powerful, sothat jumping spiders are able to jump up to 25 times their bodylength [4].

1.4.2 Ligamentum Nuchae - Parallel Spring in the Neck of HoofedMammals

The so called Ligamentum Nuchae, figure 1.6, is a ligament in mammals whichgoes along the neck. In hoofed mammals it serves as a parallel tension springsupporting the muscles to raise the head.

Figure 1.6: The Ligamentum Nuchae in horses is supporting the cervical spine as aparallel tension spring4

3http://www.drkrishi.com/wp-content/uploads/Phintella versicolor-04.jpghttp://pathoftreasure.files.wordpress.com/2010/03/locust2.jpg

4http://svpow.files.wordpress.com/2011/02/horse-nuchal-ligament.jpg

5

Page 16: 375 Report

1.5 Evaluation of Mechanisms Introduction

Measurements on dead deer showed that in normal standing position (with headup) the tension force was about 10 N and in eating position (with head down)up to 80 N. So the ligament mainly supports the muscles in the more exhaustingposition when the cervical spine is almost horizontal [5].

1.4.3 Click Mechanism

Figure 1.7: The click mechanism seen in flies, taken from [5]

Flesh flies and other insect have a special mechanism to move their wings. Asseen in figure 1.7, this mechanism can be modelled as a wing with a joint anda compression spring attached to it. If the wing is moved up, energy is storedin the spring and at a certain point, when the wing is horizontally the wingclicks to the other side. The flies contract and expand their body to power thismechanism.

1.5 Evaluation of Mechanisms

To build a testing leg and to develop a simulation, a mechanism to optimizethe leg for jumping had to be determined.

• The Click Mechanism is interesting but rather difficult to implement in areal leg.

• A hydraulic system as seen in jumping spiders is very effective and makesspider to jump over long distances. The problem is, that it is an activesystem and it would be equal to just build in different motors or hy-draulic/pneumatic cylinders with more power.

• The built in motors produce the same torque in both directions, but forjumping there are only big torques in one direction. As can be seen in fig-ure 1.8, a parallel spring with a function like the mentioned LigamentumNuchae allows to shift the producible torque of a motor from one direc-tion to the other so that the actuating torque in a joint is not symmetricanymore.

6

Page 17: 375 Report

Introduction 1.5 Evaluation of Mechanisms

Figure 1.8: The effect of a parallel spring in a joint: The spring supports only in onedirection, this leads to a different peak torque in the two rotational direc-tions.

A non-linear spring like that is already built-in in the hip joint of ARAC,although different characteristics for jumping than for walking are demanded.

7

Page 18: 375 Report

1.5 Evaluation of Mechanisms Introduction

8

Page 19: 375 Report

Simulation

2 Simulation

In this chapter, the simplifications of the given ARAC leg model are showedand then the corresponding Matlab/Simulink model is explained.

2.1 Simplifications

For simplification and to achieve a better robustness of the system, two funda-mental modifications have been made:

• 2 DOF: The motion of the le is restricted to a planar setup. The joint andthe motor for turning the hip are left away. This is for simplification andbecause it is not necessarily to have a third degree of freedom to performa planar jumping motion.

• 2 Elements: The jumping leg will just consist of two Elements and notthree like in ARAC. This is for simplification and because there is a slip-ping problem in the cable pulley system between the second and thirdelement in the leg.

This simplification will be in the simulation and in the test leg.

2.2 Schematic Leg

A schematic view of the jumping leg can be seen in figure 2.1.

Figure 2.1: Scheme of the jumping leg, attached to a linear slider, so that only planarmotion is possible.

The leg consists of a hip which is attached to a vertical slider and two legelements attached to the hip. The leg has two joints, each one actuated by a

9

Page 20: 375 Report

2.3 Matlab/Simulink Model Simulation

motor and a spring acting in parallel. If the foot is in the air, the system hasthree DOF and if the foot has ground contact and no slip is assumed (2 contactconstraints) the system has only one DOF.

2.3 Matlab/Simulink Model

To optimize the jumping height, a simulation in Matlab/Simulink was devel-oped. The Simulink model can be seen in figure 2.2. First, a short overview onthe model is given and then every part is described in detail.

Figure 2.2: Simulink model

The whole model can be divided into 5 different subsystems:

• Trajectory Generator

• Servo Motor Model and Controller

• MBS Dynamics

• Spring Model

• Output Preparation

The trajectory generator generates the demanded joint angles and hands themto the servo motor model including the controller. The controller comparesthe current angles in the dynamics with the demanded angles and controlsthe motor torque. The dynamics subsystem contains the equations of motion,including a soft ground contact model. The parallel springs are modelled in aseparate block. They produce torque as a function of the joint angles.

10

Page 21: 375 Report

Simulation 2.3 Matlab/Simulink Model

2.3.1 Trajectory Generator

Trajectories

The jumping trajectories are generated based on spring-mass templates thatproved to approximate hopping gaits found in nature to a large extent [7] Springmass system means that in the model a virtual spring is put between bodyand foot, if the system is released with a certain preload it starts to oscillate.The foot loses ground contact and jumps when the spring is expanded to itsmaximum. The trajectories of body and foot can be seen in figure 2.3.

Figure 2.3: Diagram of the Trajectory

The red line in figure 2.3 expresses the length of the spring and so the distancefrom body to foot. This is the distance the motor can control. So it is chosenas the hight trajectory, its form is taken and parametrized, as seen in figure2.4, to be shapeable in optimization. Inverse kinematic equations lead to thedemanded joint angles. The inverse kinematics equations can be seen in theAppendix A.

11

Page 22: 375 Report

2.3 Matlab/Simulink Model Simulation

Figure 2.4: Two examples of a shaped jumping trajectory with different parameterst1,t2,t3,t4

The parameters to shape the jumping trajectory are:

• t1: time the leg is bent before jump (blue)

• t2: time to stretch the leg (yellow)

• t3: time the leg is stretched (red)

• t4: time to bend the leg back to the initial position (green)

2.3.2 Servo Motor Model

The servo motor model is containing a model of the two electric motors andtwo PD-controllers for the position control. Only the hip servo motor will bedescribed since the two motors and the two controllers are equal.

Servo Motor Step Response

The step response of the used servo motor1 was measured and modelled as twofirst order systems connected by a delay element (see figure 2.6). In figure 2.5the measured step response is compared to the modelled step response. Thereis an almost perfect fit of the model with the measurement.

1Specifications of the servo motors can be seen in section 3.5

12

Page 23: 375 Report

Simulation 2.3 Matlab/Simulink Model

Figure 2.5: Measured step response, modelled step response and an overlay of the twocurves

Figure 2.6: Simulink model of the hip servo motor

The parameters in table 2.1 are used to generate the step response in figure 2.5.

Velocity ± 6 rad/sTransport Delay 0.052 s

Table 2.1: table of parameters used in servo model

The saturation block velocity is saturating at ± 6. This is the maximal servospeed in radian per second. The torque of the motor is limited outside of theblock to 4 Nm since the motors can produce a max torque of 4.4 Nm there’s aten percent safety factor.

13

Page 24: 375 Report

2.3 Matlab/Simulink Model Simulation

Controller

As controller, a simple PD structure was taken. For its task to follow the stepresponse as accurately as possible, a controller setup with a high proportionalgain was taken. The parameters can bee seen in table 2.2

Kp 1200Kd 100

Table 2.2: Parameters of the PD controller

2.3.3 Dynamics

The dynamics subsystem is containing the equations of motion. Input of thissubsystem are the two motor torques and the two spring torques, output are thethree position coordinates body height, hip angle and knee angle. The modelcan be seen in figure 2.7.

Figure 2.7: Simulink model of the dynamics

The system can be expressed with the equation:

q = M(q)−1 · (−b(q, q)− g(q) + τ − Jac ∗ f(q)) (2.1)

where

• M : mass matrix

• b: coriolis and centrifugal vector

• τ : motor torque and spring torque vector

• Jac: jacobian matrix of the foot

• f : foot contact forces vector

14

Page 25: 375 Report

Simulation 2.3 Matlab/Simulink Model

2.3.4 Spring Model

The spring model is a function block. In this block, different spring characteris-tics can be selected. It takes the leg positions as input and delivers the torquesof the springs on the joints.

2.3.5 Soft Contact Model

To model ground contact, a soft contact model is used. This means that thefoot forces are generated by spring-damper system between foot and ground.

15

Page 26: 375 Report

Experimental Leg

3 Experimental Leg

To evaluate the results and the accuracy of the simulation, a test leg was built.It is based on the legs of the spider robot ARAC, detailed specification can betaken from the final report of the focus project ARAC [1].

3.1 Basic Structure and Mounting

As in the simulation, the test leg consists of two elements and a vertical slider.The hip motor is mounted directly to the slider and the hip joint is actuateddirectly by the motor, where the motor axis corresponds to the hip rotationaxis. The knee motor is positioned near the hip joint. The knee is actuatedover a cable pull system. The position of the motors in the leg and the cablerouting can be seen in figure 3.1.

Figure 3.1: Test leg with slider, knee and hip motors and cable pulley system.

3.2 Foot

For the test leg, an individual foot was developed. As contact element, a squashball is used. This squash ball provides enough friction to avoid slippage of the

16

Page 27: 375 Report

Experimental Leg 3.3 Springs

foot while pushing off and to damp the shocks that occur at touchdown of theleg.This is necessary since servo motors have a integrated gearbox that can gethurt by shocks. The squash ball is glued into a mounting which can be attachedto the existing axle on the second leg element. In figure 3.2 the foot and themounting to the second leg element can be seen.

Figure 3.2: The squash ball used as foot and the mounting to the second leg element

3.3 Springs

With lack of time, no springs could be integrated into the test leg.

3.4 Transmission

To be more flexible with the actuation of the leg, the original pulley in the kneejoint has been removed and a variable pulley has been integrated. An advantageof this aluminium pulley is that there is no more abrasion, and retighten of thewhole cable pull system is almost negligible. This system allows a variable gearratio in the knee actuation of 1:1 to 1:2.

3.5 Electronic Hardware

3.5.1 Arduino Duemilanove

To control the servo motors, an Arduino Duemilanove (figure 3.3) board is used.It is programmable in C and has a USB port. It is accessible over a serial portinterface from MATLAB.

17

Page 28: 375 Report

3.5 Electronic Hardware Experimental Leg

Figure 3.3: Arduino Duemilanove 1

Microcontroller ATmega328

Clock Speed 16 MHz

Operation Voltage 5 V

Flash Memory 32 KB

SRAM 2 KB

Table 3.1: Specifications of the Arduino Duemilanove Board

Due to performance problems, it was not possible to control the leg in realtime from Matlab. To circumvent this the precalculated jumping trajectoriesare sent to the Arduino Board in advance. While running, the Arduino boardsends the sensor data to the serial input buffer in Matlab, where they are readout after the jump. In this way, it is possible to move the leg with an inputfrequency of 100Hz. This is important since a jumping motion takes about0.2 s, so it is possible to use approximately 20 trajectory points. The code canbe found in Appendix B.

3.5.2 Servo Motors

For actuation of the leg, the servo motor HS-7980TH from HITEC (figure 3.4)were used. The specifications can be seen in table 3.2. The servos have beenmodified in such way that it is possible to read out their position (see paragraph3.5.3).

1http://www.spikenzielabs.com/Catalog/images/medium/LabsImages/SPL006001 MED.jpg

18

Page 29: 375 Report

Experimental Leg 3.5 Electronic Hardware

Figure 3.4: Servo Motor Hitec HS-7980TH 2

Speed 330 °/s

Stall Torque 4.6 N·mStall Current 9 A

Control System PWM

Weight 76.5 g

Table 3.2: Specifications of the used servo motor HS-7980TH at 7.4 V

3.5.3 Sensors

Position Sensors

In both motors, the internal signal of the position measuring potentiometer ispicked off to read out the actual position of the motors. This is an analogoussignal and hence is noise-affected. In figure 3.5 it can be seen that the sensorvalue jumps in the wrong direction in the beginning of the motion. The delaytime of the servo motor can be seen too. So in every plot this deviations haveto be kept in mind.

Figure 3.5: Motor position sensor response on a trajectory

2http://www.hitecrcd.com/photo.php?pi=876&size=four

19

Page 30: 375 Report

3.5 Electronic Hardware Experimental Leg

Contact Sensor

In order to know whether the foot is on ground or not, a strip of a so calledForce Sensing Resistor (figure 3.6) is placed in the area on the table where thefoot can have ground contact. The sensor is analogous, but the signal is ratherinaccurate, so it is not really possible to measure forces, but with a reasonablethreshold a reliable detection of contact is possible.

Figure 3.6: The Force Sensing Resistor strip FSR 408 is used to detect ground contact.

20

Page 31: 375 Report

Optimization

4 Optimization

In the optimization process the parameters in the simulation got optimized bynumerical optimization or by calculation.

4.1 Gear Ratio

The problem connected to the gear ratio was that in simulation and on the realleg the knee motor velocity was saturating when doing a quick jumping motion.The maximum servo motor speed is 330°/s by specification. To stretch the legwith the original gear ratio of 1:1, the knee motor has to perform a rotationof 97° where the hip motor just has to rotate by 60°(see figure 4.1). Since themotors have to rotate synchronized, the knee motor has to be more than 60percent faster.

Figure 4.1: The different angles to be stridden within a jumping motion

If one motor velocity is saturating then the jumping motion isn’t performedlinearly. To avoid this problem, a force controlled motor would be necessarybut the servo motors are only position controlled, so another possibility is tosynchronize them by changing the gear ratio. The optimized gear ratio has tobe 60

97 = 0.62.

4.2 Springs

To get the maximal support of the springs to stretch the leg for the jump, it wasassumed that they are as strong that the motors have to deliver their maximalnegative torque to bend the leg and move the body down. So the motors haveto work to get the body down and to tension the springs. Then there will be thespring torque and the maximal positive motor torque available for the stretch.

21

Page 32: 375 Report

4.3 Trajectory Optimization

For this, the static gravitational torque and the maximal motor torque has tobe equal to the spring torque.The static loads on the motors without springs can be determined by

Tstatic = JacT ∗ F

whereJac : Jacobian matrix of the foot

F =

(Fx

Fy

): Forces acting on the foot

For this calculation no friction is assumed so Fx = 0, in y-direction the grav-itational force is acting so Fy = (mbody + m1 + m2) ∗ g. In the hip joint, thisstatical analysis is resulting in Tmotorstatic = 0. In the knee joint, the analysisresults in the green curve in figure 4.2.

Figure 4.2: Static Motor Torques and Optimal Spring Characteristics for|Tmotor max| = 3 Nm and the gear ratio = 1

The green line is the static motor torque in the knee joint. To get the theoptimal torque of the spring, the spring torque and the other acting torqueshave to be in balance, so it can be said:

Tspring opt − |Tmotor max| ∗ gear ratio− Tstatic!

= 0

What equals to:

Tspring opt = |Tmotor max| ∗ gear ratio + Tstatic

For the knee Tspring opt is the blue line in figure 4.2, in the hip Tspring opt =Tmotor max since Tstatic = 0 so it is the constant red line.

4.3 Trajectory

To optimize the jumping trajectory, it was parametrized as seen in section2.3.1. A numerical optimization of the parameter t2, t3 and t4 has been made

22

Page 33: 375 Report

Optimization 4.3 Trajectory

to determine the optimal values. On the first view, the results were confusing.Due to the optimization the optimal parameters are:

t2 = 0 t3 = 0.12 t4 = 0

This means that the optimal jumping trajectory is just a step (see figure 4.3).

Figure 4.3: Optimal jumping trajectory due to numerical optimization

4.3.1 Explanation

An explanation for this result in the optimization is obvious. If the demandedcurve is a step, the leg accelerates with the maximum torque to the maximumvelocity. If the gear ratio is optimized, the leg will move straight to de demandedpoint. There is no other option to be faster and jumping height is dependingon the velocity.

23

Page 34: 375 Report

4.3 Trajectory Optimization

24

Page 35: 375 Report

Evaluation

5 Evaluation

To evaluate data from the simulation and the test leg they have been comparedand the benefit of the springs could be rated.

5.1 Comparison Simulation/Test Leg

To compare the simulation with the testing leg, the same trajectory parametershad to be used in both systems. The test bench parameters had to be deter-mined and put into the simulation. All these parameters can be seen in table5.1.

Trajectory Parameters

t2 0 s

t3 0.08 s

t4 0 s

Leg System Parameters

gear ratio hip 1

gear ratio knee 0.533

upper leg mass 0.169 kg

lower leg mass 0.0644 kg

body mass 0.35 kg

upper leg length 0.148 m

lower leg length 0.205 m

Table 5.1: table of parameters in the test leg

The simulation result with this parameters and the servo output of the jumpwith the testing leg can be seen in figure 5.1.

25

Page 36: 375 Report

5.1 Comparison Simulation/Test Leg Evaluation

(a)

(b)

Figure 5.1: Output of the jump with parameters from table 5.1 in the simulation a)and test leg b).

26

Page 37: 375 Report

Evaluation 5.2 Springs

(a)

(b)

Figure 5.2: Picture series of the simulation a) and the test leg b)

The simulation and the real test leg are quite congruent. The sensor signalshave some peaks due to noise. The jumping height is also very comparable withabout 13 centimetres on the test leg and 11.5 centimetres in the simulation.

5.2 Springs

To evaluate the springs, it was planned to build glass fiber springs with thedemanded characteristics and test the results of the simulation on the test leg.Due to a lack of time this evaluation step had to be discarded.A second problem is the velocity saturation on the servo motors. Parallel springshelp the motor to accelerate the leg and so to jump higher. If the motor velocityis already saturating without the springs then additional springs don’t lead to ahigher jump since there is no way to exceed the maximum velocity. A solutionfor this problem could be faster motors or a different gear ratio in both motors.In the testing leg, the gear ratio in the knee joint is already at its minimum so atest is only possible in the simulation. In figure 5.3, a comparison of two jumpswith and without springs in the simulation can be seen. The spring increasesthe maximum jumping height by 15%.

27

Page 38: 375 Report

5.2 Springs Evaluation

Figure 5.3: Maximum foot height with and without springs

28

Page 39: 375 Report

Conclusion and Outlook

6 Conclusion and Outlook

In the last chapter of this report, I want to give a overview on the work that hasbeen done in this bachelor thesis. I want to summarize what I have achieved,where I had problems, what I would do different the next time, and reasonablefuture steps.

6.1 Achievements

Within this thesis, a working simulation of a jumping leg was developed anda testing leg for jumping was built. The system was modelled in detail andcompared to the testing leg in a single legged jumping experiment. It turnedout to be fitting very satisfying.For the test leg, a shock absorbing foot was developed to protect the wholesystem and there have been no defect during the whole testing process.The replaceable aluminium pulley in the knee joint made the cable pull systemmuch more robust and expanded the maintenance interval significantly. Addi-tionally, the gear ratio is modifiable.All this leaded to a maximum high jump of 13 centimetres (about 35% of theleg length) which is very satisfying in comparison to other jumping leg.

6.2 Problems

Naturally there have been problems:

• The limited speed of the servo motors was limiting the jump height anddamped the advantages of parallel springs.

• The position controlled motors are very stiff, so it is not ideal to havetwo motor but only one DOF since the motors start to work against eachother or to cause contact slippage.

• The Arduino Duemilanove board in combination with Matlab was tooslow for real time closed loop control. The amount of data produced bythe sensors shouldn’t be underestimated, additionally the signals fromthe self-made position potentiometer tapping weren’t precise enough toperform a precise measurement.

• The simulation was quite slow and long simulation times occurred. Espe-cially the runtime of numerical optimization tasks, when the simulationhad to be run hundreds of times, was enormous.

It was possible to solve or elude these problem, but every solution consumedtime and disrupted the timetable.

29

Page 40: 375 Report

6.3 Suggested Changes and Future Steps Conclusion and Outlook

6.3 Suggested Changes and Future Steps

For further development there are some changes I recommend for a hitch-freework:

• The Arduino Duemilanove should be replaced by a more powerful board.The calculations and the data processing tasks bring the Arduino to itsperformance limit and the SRAM of 2 KB is just able to save a motionof approximately one second.

• The simulation itself should be optimized to allow an efficient optimiza-tion. The interpreted function blocks should be replaced and the softcontact model, which makes the system stiff, could be substituted by ahard contact model.

• It should be considered to replace the position controlled motors by forcecontrolled or at least to build in faster position controlled motors.

• Springs have to be built into the test leg.

6.4 Final Statement

In a simulation and in reality, a spider robot leg has been built and optimized.To optimise the leg, biological mechanism have been analysed and occurringproblems have been neutralized. All this leaded to a maximum high jump of13 centimetres with a leg length of 35 centimetres, which is very satisfying incomparison to other jumping legs and helps that the vision of a jumping spiderrobot can be realized in the future.

30

Page 41: 375 Report

Conclusion and Outlook 6.4 Final Statement

Indeces

31

Page 42: 375 Report

Bibliography Bibliography

Bibliography

[1] Final Report ARAC, Autonomous Systems Lab, ETH Zurich, 2012

[2] Jumping Spiders, Wikipedia.com, June 2012

[3] HyQ - Design and Development of a Hydraulically Actuated QuadrupedRobot, ITT Genoa, 2010

[4] Rainer F. Foelix: Biologie der Spinnen. Thieme, 1979, ISBN3-13-575801-X

[5] R. McNeill Alexander: Elastic Mechanisms in Animal Movement,Cambridge University Press, 1988, ISBN 978-0521341608

[6] Jonas Fisler : Maximum High Jump with a Robotic Leg, Master Thesis,2008

[7] R. Blickhan : The spring mass model for hopping and running , 1989

[8] J. Gordon Nichol & Kenneth J. Waldron, Biomimetic Leg Design forUntethered Quadruped Gallop

[9] C.Chevallerau & P.Sardain, Design and Actuation Optimization of a 4axes Biped Robot for Walking and Running, 2000

[10] David R. Carrier, Dynamic Gearing in Running Dogs, 1998

[11] W.Gronenberg , Fast actions in small animals: springs and clickmechanisms, 1995

[12] J.Babic , A Biarticulated Robotic Leg for Jumping Movements: Theoryand Experiments, 2009

[13] Michael Scheint, Marion Sobotka & Martin Buss , Optimized ParallelJoint Springs in Dynamic Motion: Comparison of Simulation andExperiment, 2010

[14] R. McN Alexander , Three Uses for Springs in Legged Locomotion , 1990

32

Page 43: 375 Report

List of Figures List of Figures

List of Figures

1.1 Spider robot built in the focusproject ARAC . . . . . . . . . . . 11.2 Robotic jumping leg by Jonas Fisler, taken from [6] . . . . . . . . 21.3 Leg of the walking robot HyQ of the Italian Institute of Tech-

nology in Genoa1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Self balancing jumping robot leg by Toyota 2 . . . . . . . . . . . 41.5 Comparison: The jumping spider (left) has much thinner upper

legs than the locust (right) 3 . . . . . . . . . . . . . . . . . . . . 51.6 The Ligamentum Nuchae in horses is supporting the cervical

spine as a parallel tension spring4 . . . . . . . . . . . . . . . . . . 51.7 The click mechanism seen in flies, taken from [5] . . . . . . . . . 61.8 The effect of a parallel spring in a joint: The spring supports

only in one direction, this leads to a different peak torque in thetwo rotational directions. . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Scheme of the jumping leg, attached to a linear slider, so thatonly planar motion is possible. . . . . . . . . . . . . . . . . . . . 9

2.2 Simulink model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 Diagram of the Trajectory . . . . . . . . . . . . . . . . . . . . . . 112.4 Two examples of a shaped jumping trajectory with different pa-

rameters t1,t2,t3,t4 . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5 Measured step response, modelled step response and an overlay

of the two curves . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.6 Simulink model of the hip servo motor . . . . . . . . . . . . . . . 132.7 Simulink model of the dynamics . . . . . . . . . . . . . . . . . . 14

3.1 Test leg with slider, knee and hip motors and cable pulley system. 163.2 The squash ball used as foot and the mounting to the second leg

element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3 Arduino Duemilanove 5 . . . . . . . . . . . . . . . . . . . . . . . 183.4 Servo Motor Hitec HS-7980TH 6 . . . . . . . . . . . . . . . . . . 193.5 Motor position sensor response on a trajectory . . . . . . . . . . 193.6 The Force Sensing Resistor strip FSR 408 is used to detect ground

contact. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1 The different angles to be stridden within a jumping motion . . . 214.2 Static Motor Torques and Optimal Spring Characteristics for

|Tmotor max| = 3 Nm and the gear ratio = 1 . . . . . . . . . . . . . 224.3 Optimal jumping trajectory due to numerical optimization . . . . 23

33

Page 44: 375 Report

List of Figures List of Figures

5.1 Output of the jump with parameters from table 5.1 in the sim-ulation a) and test leg b). . . . . . . . . . . . . . . . . . . . . . . 26

5.2 Picture series of the simulation a) and the test leg b) . . . . . . . 275.3 Maximum foot height with and without springs . . . . . . . . . . 28

34

Page 45: 375 Report

List of Tables List of Tables

List of Tables

2.1 table of parameters used in servo model . . . . . . . . . . . . . . 132.2 Parameters of the PD controller . . . . . . . . . . . . . . . . . . . 14

3.1 Specifications of the Arduino Duemilanove Board . . . . . . . . 183.2 Specifications of the used servo motor HS-7980TH at 7.4 V . . . 19

5.1 table of parameters in the test leg . . . . . . . . . . . . . . . . . 25

35

Page 46: 375 Report

List of Tables List of Tables

Appendix

36

Page 47: 375 Report

Inverse Kinematics

A Inverse Kinematics

y: body height x: horizontal coordinate of the foot q1: hip angle q2: knee angle

q1 = −(atan(x

y) + acos(

(l22 − l12 − x2 − y2)−2 ·

√x2 + y2 · l1

)) (A.1)

q1 = π − acos((x2 + y2 − l22 − l12)−2 · l1 · l2

) (A.2)

where:

y: body heightx: horizontal coordinate of the footq1: hip angleq2: knee anglel1: length of the upper leg elementl2: length of the lower leg element

37

Page 48: 375 Report

Matlab Code

B Matlab Code

38

Page 49: 375 Report

1

%jump_1.m%Author: Lukas Meier%This m-file generates the trajectories, sends them to the Arduino board%over a serial port connection and then reads out and plots the sensor%signals.

clcclear alldisp('Generating Trajectories...')

%Generate trajectoriesrun trajectories2a1 = '1,';a2 = '2,';%Define and open serial connectionarduino=serial('COM9', 'BaudRate', 115200);arduino.InputBufferSize=2048;fopen(arduino);

N=length(input1);pos_array=[];out={};a=5;output={};

%Prepare data to transmit to Arduinoticfor i=1:1:N output1 = [a1 int2str(round(input1(i))), 13]; output2= [a2 int2str(round(input2(i))), 13]; output = [output;{output1;output2}];

end%Delete serial Buffer flushinput(arduino); flushinput(arduino);

%Start transmission of trajectoriesdisp('Transmitting trajectories to Arduino...')fprintf(arduino,'S');

for i=1:1:N; while(toc<0.008) end ticfprintf(arduino,[output{2*i-1},output{2*i}]);end for i=N:-1:1; while(toc<0.008) end

Page 50: 375 Report

2

fprintf(arduino,[output{2*i-1},output{2*i}]); %out=[out;{fscanf(arduino)}]; end fprintf(arduino,'E')%End of trajectory transmission

%Start reading out sensor valuesdisp('Reading out sensors...') flushinput(arduino); flushinput(arduino); while(arduino.BytesAvailable<=500) end while(arduino.BytesAvailable~=0) output5=fscanf(arduino); out=[out;{output5}]; disp(output5); pause(1/100); end fclose(arduino);%End reading out sensor values

%Compute Data for Plotting for i=1:1:length(out); pos=str2num(out{i});

%Convert to angle in degrees if length(pos)==6; pos(1)=90-(pos(1)-2050)/10.4; pos(2)=90-((pos(2)-11000)/86.1111); pos(3)=0+(pos(3)-1330)/19.5; pos(4)=((pos(4)-6000)/150); pos(5)=(7500-pos(5))/120; pos_array=[pos_array;pos]; end endpos_array(:,6)=pos_array(:,6)-pos_array(1,6);plot(pos_array(:,6),pos_array(:,1:5));axis([pos_array(3,6) pos_array(length(pos_array(:,6)),6) 0 120]);title(strcat('motion plot for: h_{min}=',num2str(h_min),' h_{max}=',num2str(h_max),' steps=',num2str(steps),' transmission=', num2str(ueb)));xlabel('time in [ms]');ylabel('angle');legend({'q_{knee}','q_{knee\_dem}','q_{hip}','q_{hip\_dem}','F_{foot}'},'Location','SouthEast');hold off;disp('Movement and sensor readout successful!')

Published with MATLAB® 7.14

Page 51: 375 Report

Essential Scripts and Functions

C Essential Scripts and Functions

In the following section the essential sripts and fuctions will be mentioned andit will be explained what they do. The Code can be found on the CD in thefolder ’Code’ and its subfolders.

MBS

./MBS/utils/body 2joints y slider.m : In this script the MBS functions, whichare used in the simulation, are generated with the proNEu library from MarcoHutter. Additional information can be found in the file./MBS/utils/proNEu documentation.pdf .

Servo Controlling

./ServoControlling/Arduino − Code/Arduino/Arduino.pde: This is the Ar-duino code that has to be running on the Arduino, to run the test leg.

./ServoControlling/Matlab−Code/jump 1.m: Start this script to let the testleg jump controlled by matlab. It sends the trajectories to the Arduino Boardand reads out the sensor values.

./ServoControlling/Matlab−Code/eval angles: The inverse kinematics func-tion.

./ServoControlling/Matlab − Code/trajectories2.m: This script is generat-ing the trajectories for the jump, here the trajectory parameter can be set.

Simulation

./Simulation/utils/film controller.m : Start this script to run the simulationand get out a movie of the results.

./Simulation/utils/jump with controller soft.mdl: This is the model of thewhole jumping leg with controllers, soft contact model and trajectory generator.

./Simulation/utils/parameter.m: In this Script the parameters of the leg(length,mass,...) are stored.

./Simulation/utils/contact model.m: This is the Scipt for the Soft Contactmodel. Spring, damping constant of the ground and friction can be changed

41

Page 52: 375 Report

Essential Scripts and Functions

here../Simulation/utils/jac matrix.m: In this script the jacobian matrix of thefoot is stored and evaluated within simulation.

./Simulation/utils/feder matrix.m: In this script the matrix to evaluate thespring torques is stored. The spring characteristics can be changed here.

./Simulation/utils/bpne matrix.m: The MBS coriolis and centrifugal com-ponents matrix is stored here and evaluated within simulation.

./Simulation/utils/fpne matrix.m: The MBS forces matrix is stored hereand evaluated within simulation

./Simulation/utils/gpne matrix.m: The MBS gravitational matrix is storedhere and evaluated within simulation.

./Simulation/utils/mpne matrix.m: The MBS mass matrix is stored here andevaluated within simulation.

42