Date post: | 21-Oct-2015 |
Category: |
Documents |
Upload: | fratedesange |
View: | 53 times |
Download: | 0 times |
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
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
II
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
IV
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
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
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
Contents Contents
VIII
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
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
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
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
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
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
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
1.5 Evaluation of Mechanisms Introduction
8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
4.3 Trajectory Optimization
24
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
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
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
5.2 Springs Evaluation
Figure 5.3: Maximum foot height with and without springs
28
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
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
Conclusion and Outlook 6.4 Final Statement
Indeces
31
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
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
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
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
List of Tables List of Tables
Appendix
36
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
Matlab Code
B Matlab Code
38
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
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
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
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