Bepalen van een optimale draaistrategie bij vierpotige robots Enric Junqué de Fortuny
Promotor: prof. dr. ir. Benjamin Schrauwen Begeleiders: Francis wyffels, Tim Waegeman Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2010-2011
Bepalen van een optimale draaistrategie bij vierpotige robots Enric Junqué de Fortuny
Promotor: prof. dr. ir. Benjamin Schrauwen Begeleiders: Francis wyffels, Tim Waegeman Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2010-2011
Voorwoord
Artificiële intelligentie en robotica zijn een levenslange passie en ik ben dan ook zeer blij dat ik de kans heb gekregen van de Universiteit Gent om mij hier een jaar in te mogen verdiepen. Graag zou ik iedereen willen bedanken die mij gesteund heeft in het verwezenlijken van deze thesis. In de eerste plaats dank ik mijn promotor prof. dr. ir. Benjamin Schrauwen voor de inzichtvolle feedback tijdens de tussentijdse evaluaties en het bijzonder interessante vak Machine Learning. Verder wil ik ook mijn begeleiders bedanken. Ir. Francis wyffels voor zijn intensieve begeleiding, expertise en inspiratie alsook alle andere begeleiders van het Reservoir Lab die nooit een kans lieten liggen om nuttige, opbouwende kritiek te geven: irs. Tim Waegeman, Ken Caluwaerts, Pieter-Jan Kindermans ... Ik dank ook Bert Guns en Joeri Ruyssinck voor de gezellige sfeer, interessante uitwisselingen van ervaringen en vruchtvolle samenwerkingen gedurende de laatste twee jaar van onze studies. Natuurlijk bedank ik ook allen die mij op niet-academische manier geholpen hebben. Eerst en vooral mijn familie voor hun steun gedurende mijn studiejaren aan de universiteit. Ook wil ik mijn vrienden bedanken die steeds voor de nodige afleiding wisten te zorgen.
i
Toelating tot bruikleen
“De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van de scriptie te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze scriptie.” “The author gives permission to make this master dissertation available for consultation and to copy parts of this master dissertation for personal use. In the case of any other use, the limitations of the copyright have to be respected, in particular with regard to the obligation to state expressly the source when quoting results from this master dissertation.”
Enric Junqué de Fortuny, juni 2011
ii
Bepalen van een optimale draaistrategie bij vierpotige robots door Enric Junqué de Fortuny Masterproef ingediend tot het bepalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Academiejaar 2010-2011 Promotor: Prof.Dr.Ir. Benjamin Schrauwen Begeleiders: Ir. Francis wyffels, Ir. Tim Waegeman Faculteit Ingenieurswetenschappen en Architectuur Universiteit Gent Vakgroep Elektronica en Informatiesystemen Voorzitter: Prof.Dr.Ir. Jan Van Campenhout
Samenvatting In deze masterproef trachten we een optimale draaistrategie te bepalen voor een meegevende, vierpotige robot. Hiervoor maken we op de natuur geïnspireerde, morfologische aanpassingen aan een bestaand model. Zowel het gebruik van schoudergewrichten (scapulae) als van een ruggengraat (vertebra) worden nader bestudeerd. We leren de robot rechtdoor lopen en bochten nemen met deze nieuwe morfologie m.b.v. CMA-ES, een evolutionair algoritme. Er worden verschillende experimenten uitgevoerd waarin de aangebrachte morfologische aanpassingen gevalideerd worden. Eveneens worden de voor- en nadelen m.b.t. de bouw van een regelaar voor de robot afgewogen.
Trefwoorden Robotica, vierpotig, meegevend, CMA-ES, draaien, vertebra, scapula
iii
Determining An Optimal Strategy for Quadruped Turning Control Enric Junqu´e de Fortuny Supervisor(s): Benjamin Schrauwen, Francis wyffels, Tim Waegeman Abstract— This work explains the development, validation and comparison of biomimical features in a quadruped robot for turning control. Differences in posture created by scapulae and a vertebra result in different patterns of force production. These different patterns of force production allow for better turning control in the transverse plane. Keywords— Robotics, quadruped, compliant, CMA-ES, turning, vertebra, scapula
I. I NTRODUCTION OBOTICS have evolved from a niche to mainstream technology and increasingly more complex robots are being designed every day to meet with modern society’s evolving needs. One of the main concerns in robotics is robot locomotion. In order to cope with unstructured terrains legged locomotion is being researched quite heavily. One of they key problems that will be addressed in this article is the maneuverability in the transverse plane. We will propose mechanically feasible adaptations that can generate and help turning behaviour. Afterwards we will analyse and validate their performance using numerical simulations.
R
II. M ORPHOLOGICAL F EATURES A. Basic Model The basic model was inspired by two compliant, underactuated models: Reservoir Dog [1] developed by the University of ´ Ghent and the Cheetah robot [2] developed by the Ecole Polytechnique F´ed´erale de Lausanne. The only degree of freedom of the legs as a whole is a rotation in the saggital plane. With this model two strategies can be used in order to perform a turn. Either increase step frequency [3][4] or stride length [5][3][4]. Because of instability problems encountered when using the first method, we use the latter method in our experiments. We will now discuss two biomimical morphological adaptations to the model to enhance turning capabilities. B. Vertebra The vertebra of animals consists of several joints allowing different degrees of freedom (DOF). Predators such as cats curve their backs extensively in the transverse plane. This is key to their success because it allows them to take turns considerably faster when chasing prey. We simplify this approach by implementing one vertebra joint. C. Scapula The scapula is a commonly found bone in quadruped mammals that connects a leg with the main body. It allows the animal to perform an upward/downward rotation in the coronal plane of
t
Ts
3.5 1.5 0
Fig. 1. Trajectories followed during training with CMA-ES.
the legs with respect to the body. We will use the scapula in different ways. The center of mass is displaced with respect to the center of pressure of the robot. The resulting effect is an inward force, causing the robot to turn. Furthermore, observations in greyhounds have led us to a secondary usage of the scapulae. They enhance their turning speed by actively performing an inward swipe movement with the front legs [7]. Another method of interest is using the scapulae in a reactive way. By banking the robot, we can counter centrifugal forces due to turning with other methods (such as the suggested vertebra method) [8]. This is similar to the strategy that motorcyclists employ when banking in sharp turns. III. E XPERIMENTS A. Methodology We used the Covariance Matrix Adaptation - Evolutionary Strategy (CMA-ES) [6] to develop gaits on the robot in a simulation environment. Evolutionary algorithms are designed to optimize a target function by evaluating candidate solutions. In this case, each candidate solution represents a gait parameterset and results in a path in the simulation environment that is followed by the robot (displayed in Figure 1). The target functions to optimize are: fstraight fturn
= =
(∆x)2 ∆t (∆t∆z)∆x.
(1) (2)
Where ∆x is the distance in the forward direction and ∆z the distance in the lateral direction in the path resulting from a given parameter set. Note that ∆t denotes the stable time (bounded at 15s) and is critical for stability in early populations.
Lateral speed (m/s) 0.03 0.04 Scapulae(rad)
0.05
0.06
0.07
0.34 0.32 0.3 0.28 0.26 0.24 0.22 0.2 0.18 0.16 0.14
0.006 0.008 0.01
0.012 0.014 0.016 0.018
0.02 0.022 0.024
Vertebra (rad)
0.55
0.5
0.5 0.45 0.4 0.35 0.3 0.25
0
0.05 0.1 0.15 0.2 0.25 0.3 Maximal deviation of amplitude left front scapula (rad)
0.08
0.4
0.06
0.3
0.04
0.2
0.02
0.1 0.04
0.08 0.12 Scapulae (rad)
0
0.16
Lateral speed (m/s)
0.02
Vertebra (rad)
Lateral speed (m/s) Lateral speed (m/s)
0.28 0.27 0.26 0.25 0.24 0.23 0.22 0.21 0.2 0.19 0.01
Fig. 2. Experimental results of the analysis of the joints. Values shown are an average of the best three results (thick line). A roughly linear relationship is found (dotted line). (top left) static scapulae (bottom left) dynamic scapulae (top right) static vertebra (bottom right) vertebra and scapula combination, color intensity increases as the lateral speed values increase.
B. Straight Walking Two gaits were developed using the straight trajectory (displayed in Figure 1) and CMA-ES. First we found a trot gait (see Figure 3) using phase relationships between input signals in the joints inspired by quadruped animals. Afterwards we found a bounding gait using similar methods. The bounding gait lacks a proper flight phase and is not suitable for further experiments, whereas the trot gait proved to be adequate. C. Optimal Turning Similarly, we applied CMA-ES to find optimal gaits using the suggested morphological adaptations for turning. The basis for all of these gaits was the previously found trot gait. The results of all CMA-ES experiments are displayed in Table I for comparison. The performance measure used is the lateral speed, defined as: vz
=
∆z . ∆t
(3)
though, is that results for static scapulae (top left) and the scapulae and vertebra combination (bottom right) are too rough too use in a control strategy. Dynamic use of scapulae is the ideal candidate for a potential control strategy due to both the smoothness of the behaviour and the effectiveness of the method. The vertebra might be used as well, but some form of feedback will probably be required to prevent deviation from the control path after a few turns. TABLE I C OMPARISON OF TURNING EXPERIMENTS , ORDER BY MAXIMAL LATERAL SPEED .
Turning Joint Scapulae Scapula and Vertebra Vertebra Scapula None
Static/Dynamic D S/S S S S
vz 0.49 m/s 0.35 m/s 0.32 m/s 0.26 m/s 0.07 m/s
We can conclude from Table I that the optimal method for turning is using the scapulae dynamically. Interestingly, combining both the scapulae and the vertebra statically seems to be a better strategy overall, compared to using only one of both adaptations. Further tests have to validate whether this is true for dynamic scapulae as well. D. Controller Strategy Experiments were conducted to analyse the behaviour of the joints and their usability in a control mechanisms. A local grid search was performed in the region near the optima given in Table I. Figure 2 displays the average of the best three results in the grid search. In general we can see a linear relationship between the servopositions and the lateral speed averages. A first point to notice
Fig. 3. Optimal trot gait in a numerical simulation using webots.
IV. C ONCLUSION AND F UTURE W ORK We have shown different biomimical morphological features that can be useful for turning. Subsequently each of these features has been analysed thoroughly using different methods of
control. A precise control strategy can be made upon these results, but might need some form of feedback. More experiments are however needed to obtain a global view on the different possibilities of these new joints. First of all the combination of a static vertebra and a dynamic scapula seems to be a promising candidate for optimal control. Using the joints passively could give more energy-effici¨ent and less control-intensive solutions and are therefore an interesting path of further exploration. R EFERENCES [1] F. Wyffels, M. D’Haene, T. Waegeman, K. Caluwaerts, C. Nunes, and B. Schrauwen. Realization of a passive compliant robot dog. In Proceedings of the 2010 3rd IEEE RAS & EMBS International conference on Biomedical Robotics and Biomechanics, page 882, 2010. [2] S. Rutishauser, A. Sprowitz, L. Righetti, and A.J. Ijspeert. Passive compliant quadruped robot using Central Pattern Generators for locomotion control. 2008 2nd IEEE RAS EMBS International Conference on Biomedical Robotics and Biomechatronics, (c):710–715, 2008. [3] D. Graham. A behavioural analysis of the temporal organisation of walking movements in the 1st instar and adult stick insect (Carausius morosus). Journal of Comparative Physiology A: Neuroethology, Sensory, Neural, and Behavioral Physiology, 81(1):23–52, 1972. [4] V. Zolotov, L. Frantsevich, and E.-M. Falk. Kinematik der phototaktischen Drehung bei der Honigbiene (Apis Mellifera L.). Journal of Comparative Physiology A: Neuroethology, Sensory, Neural, and Behavioral Physiology, 97(4):339–353, 1975. [5] R. Franklin, W. Bell, and R. Jander. Rotational locomotion by the cockroach (Blattella Germanica). Journal of Insect Physiology, 27(4):249–255, 1981. [6] N. Hansen and A. Ostermeier. Adapting arbitrary normal mutation distributions in evolution strategies: The covariance matrix adaptation. In Proceedings of the 1996 IEEE International Conference on Evolutionary Computation, 1996 Ieee International Conference on Evolutionary Computation, pages 312–317. I E E E, 1996. [7] J.R. Usherwood and A.M. Wilson. No force limit on greyhound sprint speed. Nature, 438(7069):753–754, 2005. [8] K. Tsujita, H. Toui, and K. Tsuchiya. Dynamic turning control of a quadruped robot using nonlinear oscillators. 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566), (0):969–974.
Inhoudsopgave Voorwoord
i
Toelating tot bruikleen
ii
Extended Abstract
iv
1 Introductie
1
1.1
Robots, een kort overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Robots met poten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3
Doelstelling van deze thesis . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2 Constructie van de robot
5
2.1
Het hardware model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Het software model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
Morfologische aanpassingen aan het model . . . . . . . . . . . . . . . . . . .
6
2.3.1
Vertebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.2
Scapula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3 Aansturing
12
3.1
Aansturing van de servo’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2
Heuristieken voor het zoeken van parameters . . . . . . . . . . . . . . . . . 12
3.3
Covariance Matrix Adaptation - Evolution Strategy . . . . . . . . . . . . . . 13 3.3.1
Algemene beschrijving . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.2
Zoekprocedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.3
Aandachtspunten bij het gebruik van CMA-ES . . . . . . . . . . . . 16
4 Experimentele opstelling
19
4.1
De Webots simulatieomgeving . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2
Architectuur van de opstelling . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3
Het C++ raamwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4
Het python raamwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5 Rechtdoor lopen
23
5.1
Introductie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2
De drafgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3
5.2.1
Theoretische analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2.2
Leerprocedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
De gebonden gang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.3.1
Theoretisch analyse
5.3.2
Leerprocedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6 Bochten nemen 6.1
6.2
6.3
. . . . . . . . . . . . . . . . . . . . . . . . . . . 27
31
Gebruikte methodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.1.1
Optimale bocht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.1.2
Analyse gewrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.1.3
Evaluatiemaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Bochten nemen met het oorspronkelijke model . . . . . . . . . . . . . . . . . 34 6.2.1
Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.2.2
Resultaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Bochten nemen met het nieuwe model . . . . . . . . . . . . . . . . . . . . . 34 6.3.1
Scapulae (statisch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.3.2
Scapulae (dynamisch) . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.3.3
Vertebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.3.4 6.4
Scapula en vertebra gecombineerd . . . . . . . . . . . . . . . . . . . 41
Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7 Besluit
44
Appendices
46
A Afkortingen
47
B Stellingen
48
C Codefragmenten
49
D Inhoud CD
51
Bibliografie
52
Lijst van figuren 1.1
Gebruik van meegevende gewrichten in de Reservoir Dog . . . . . . . . . . .
3
2.1
Het hardware model: CAD ontwerp en implementatie
. . . . . . . . . . . .
5
2.2
Schematische voorstelling van het robotmodel . . . . . . . . . . . . . . . . .
6
2.3
Gebruik van gewrichten tijdens het draaien bij roofdieren. . . . . . . . . . .
7
2.4
Schematische voorstelling van de morfologische aanpassingen. . . . . . . . .
8
2.5
Demonstratie van de vertebra in een Webots simulatie. . . . . . . . . . . . .
9
2.6
Gebruik van scapulae tijdens het draaien bij de windhond. . . . . . . . . . . 10
2.7
Demonstratie van de scapulae in een Webots simulatie. . . . . . . . . . . . . 11
3.1
Conceptuele voorstelling van het zoeken naar een optimum in CMA-ES. . . 14
4.1
Communicatie tussen de verschillende softwareonderdelen. . . . . . . . . . . 20
4.2
Architectuur van het C++ raamwerk . . . . . . . . . . . . . . . . . . . . . . 21
4.3
Architectuur van het python raamwerk. . . . . . . . . . . . . . . . . . . . . 21
5.1
Faserelatie in de drafgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2
Leertraject voor rechtdoor lopen . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3
Leerevolutie CMA-ES voor de drafgang. . . . . . . . . . . . . . . . . . . . . 27
5.4
Demonstratie van de drafgang in een Webots simulatie. . . . . . . . . . . . . 28
5.5
Faserelatie in de gebonden gang . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.6
Leerevolutie CMA-ES voor de gebonden gang. . . . . . . . . . . . . . . . . . 29
5.7
Demonstratie van de gebonden gang in een Webots simulatie. . . . . . . . . 29
6.1
Leertraject voor bochten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2
Leerevolutie CMA-ES voor scapulae . . . . . . . . . . . . . . . . . . . . . . 35
6.3
Faserelatie in de gebonden gang . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.4
Analyse scapulae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.5
Leerevolutie CMA-ES voor vertebra . . . . . . . . . . . . . . . . . . . . . . 37
6.6
De slagbeweging m.b.v. een scapula . . . . . . . . . . . . . . . . . . . . . . 38
6.7
Leerevolutie CMA-ES voor dynamische scapula . . . . . . . . . . . . . . . . 39
6.8
Analyse van de dynamische aansturing van scapulae . . . . . . . . . . . . . 40
6.9
Optimale zijwaartse snelheid in functie van vertebrapositie . . . . . . . . . . 41
6.10 Leerevolutie CMA-ES voor de combinatie van beide gewrichten. . . . . . . . 42 6.11 Analyse van de combinatie van vertebra en scapulae . . . . . . . . . . . . . 43
Lijst van tabellen 5.1
Overzicht van de geactueerde servo’s en overeenstemmende symbolen. . . . . 23
5.2
CMA-ES parameters voor de drafgang . . . . . . . . . . . . . . . . . . . . . 27
6.1
CMA-ES parameters voor scapulae . . . . . . . . . . . . . . . . . . . . . . . 36
6.2
CMA-ES parameters voor de vertebra . . . . . . . . . . . . . . . . . . . . . 40
6.3
Vergelijking van de resultaten van de verschillende experimenten . . . . . . 43
Hoofdstuk 1
Introductie
1.1
Robots, een kort overzicht
In 1920 werd de term robot gelanceerd door K. Čapek in zijn stuk Rossum’s Universal Robots. Hierin beschreef hij een robot als een automaton1 dat geavanceerde taken van mensen uitvoert en gelijkaardige gedragingen overneemt [14]. I. Asimov leidde hiervan in 1941 de term robotica af en zorgde zo voor een algemene noemer voor het vakgebied der robots. Ook hij had een gelijkaardig utopisch toekomstbeeld met geavanceerde robots die allerhande taken van mensen overnemen [3]. Men kan zich afvragen hoe het komt dat deze idealen nog steeds zo ver buiten bereik zijn, ondanks de evolutie van de techniek ... Bij nadere inspectie blijkt dat, tot op de dag van vandaag, industriële robots veelal vaste, voorgeprogrammeerde patronen volgen en verre van autonoom zijn. Zelfs geavanceerde, autonome robots hebben nog steeds problemen met het oplossen van triviale taken zoals een trap oplopen [1]. Hoewel we ons momenteel in een stroomversnelling van ontwikkelingen bevinden, zal het naar alle waarschijnlijkheid nog een lange evolutie vereisen alvorens we echt kunnen voldoen aan de vooropgestelde idealen. Deze thesis situeert zich ergens middenin deze evolutie. Bij de voortbeweging van robots in het bijzonder staan we nog voor grote uitdagingen. Meer specifiek zijn er nog onopgeloste problemen omtrent o.a. snelheid, robuustheid, draaicapaciteit en stabiliteit. Vaak moeten er nog trade-offs gemaakt worden tussen deze eigenschappen. Deze uiten zich onder meer in de morfologie2 van de robots.
1.2
Robots met poten
Bij de voortbeweging is het onderscheid tussen robots met poten en deze met wielen van groot belang. Robots met wielen presteren zeer goed (energie efficiënt) op een vlakke ondergrond en halen over het algemeen ook hogere snelheden dan robots met poten. 1 2
van het Griekse autos ’zelf’, automatos uit zichzelf bewegende, automaton autonome machine wij gebruiken de biologische betekenis van morfologie en bedoelen hiermee de uitwendige bouw en vorm van de robot
Hoofdstuk 1. Introductie
2
Desalniettemin wordt er veel onderzoek gedaan naar robots met poten en ook het model dat we doorheen deze thesis bespreken is van dit type. Een belangrijke vraag dringt zich daarbij op: waarom een minder energie efficiënte morfologie gebruiken? Hoewel wielen uitermate goed presteren op voorbereide grond zoals wegen, gebouwen en sporen, zijn ze ongeschikt voor voortbeweging op ruwer terrein. Dit is te wijten aan het feit dat ze een continu pad van ondersteuning nodig hebben tijdens de voortbeweging [26]. Omwille van deze beperkingen is volgens M.H. Raibert3 ongeveer de helft van de landmassa van de aarde momenteel onbereikbaar voor robots met wielen [17]. De achterliggende gedachte bij het maken van robots met poten is dat deze uiteindelijk in staat zouden moeten zijn dezelfde locaties te bereiken als potige dieren. Dit omvat dus ook ruwere, discontinue ondergronden zoals rotsachtig gebied. Eenbenige robots bestaan, maar worden vooral gebruikt voor onderzoek i.v.m. de werking van de poten en hebben weinig direct praktisch nut. Bij robots met poten maken we daarom vooral een onderscheid tussen tweebenige robots en deze met meer poten. Het grootste voordeel van tweebenige robots is dat deze androïde4 zijn en dus eenvoudig ingezet kunnen worden ter vervanging van mensen. Een tweebenige robot zal immers eenvoudiger faciliteiten die ontworpen zijn voor mensen kunnen gebruiken (bijvoorbeeld een trap). Robots met meer poten hebben dan weer het voordeel dat ze veel stabieler lopen dan tweebenige robots (een robot kan statisch stabiel staan op drie of meer poten). Deze robots met meer dan twee poten kunnen verder worden ingedeeld in verschillende klassen afhankelijk van het aantal poten dat ze hebben. De meest voorkomende types gebruiken echter vier poten (geïnspireerd op zoogdieren) of zes poten (geïnspireerd op zespotige insecten). Zespotigen worden voornamelijk gekozen omdat deze stabieler zijn dan vierpotigen en omdat hun neurlogische circuits eenvoudiger te analyseren zijn. Vierpotigen laten dan weer rijkere, dynamische gangen toe en zijn flexibeler (bijvoorbeeld bij het springen over een hindernis). Historisch gezien werden de eerste vierpotige robots gemaakt met stijve, inflexibele poten. Voorbeelden hiervan zijn de Quadruped van het MIT [18] en Artificial Intelligence roBOt (AIBO) [6] (een gecommercialiseerd platform). Een vrij recent ontwikkeld perspectief op de intelligentie en robotica die morphological computation genoemd wordt, beschouwt het lichaam van de robot zelf als een deel van de intelligentie [16] . Meer bepaald de dynamiek resulterende uit de morfologie van het lichaam van de robot wordt gezien als een stuk van de intelligentie van de robot zelf. Zo kunnen stukken uit de controlehiërarchie onder meer overgenomen worden door passieve meegevende poten. 3
Befaamde robotica onderzoeker, professor aan het Massachusetts Institute of Technology (MIT) en oprichter van Boston Dynamics, bekend van de Big Dog robot 4 van het Griekse andros ’mannelijk’, -eides ’gelijkend’: androïde op een man (mens) gelijkend
Hoofdstuk 1. Introductie
3
Figuur 1.1: Gebruik van een meegevend gewricht in de Reservoir Dog: (links) een hondenskelet, (midden) mechanisch ontwerp, (rechts) foto. De heup- en kniegewrichten worden actief aangestuurd door een servo terwijl de enkel passief aangestuurd wordt door een veer. (overgenomen uit [27])
Het is binnen deze context dat later onderzoek zich eerder toespitst op gesegmenteerde, ondergeactueerde5 robots met meegevende (compliant) poten. Voorbeelden hiervan zijn de Scout robots [22], de Reservoir Dog [27] ontwikkeld aan de Universiteit Gent (UGent) (zie Figuur 1.1) en de Cheetah robot [20] ontwikkeld aan het École Polytechnique Fédérale de Lausanne (EPFL). Het model dat in deze thesis gebruikt wordt, bouwt voort op deze laatste twee modellen. Onderactuatie met behulp van meegevende poten leidt echter tot een zeker verlies van controle en kan contra-intuïtief lijken. Ook hier fungeerde de natuur nochtans als inspiratiebron en dus rijst de vraag: waarom kiest de natuur voor onderactuatie en welke rol spelen morphological computing en meegevende gewrichten hierbij? Hoewel het antwoord op die vraag nog steeds niet volledig gekend is, werden wel enkele belangrijke argumenten gevonden. Eerst en vooral zijn meegevende poten nuttig voor het opslaan van energie. Kinetische energie wordt tijdens het lopen omgezet in elastische potentiële energie die weer omgezet wordt in een nieuwe acceleratie van de poten. Zonder wrijving met de grond en andere objecten en zonder luchtweerstand zou er theoretisch gezien geen energieverlies zijn en zou de robot aldus een perpetuum mobile worden [2]. Bovendien heeft onderzoek uitgewezen dat meegevende pootontwerpen de robot veiliger en robuuster maken t.o.v. externe verstoringen [21]. Dit zorgt deels voor de waargenomen ’intelligentie’ bij voortbeweging m.b.v. passieve meegevende poten.
1.3
Doelstelling van deze thesis
Het doel van deze thesis bestaat erin om een bestaande vierpotige robot met passieve meegevende poten stabiel te laten draaien. Er werd tot nu toe - naar ons weten - nog geen 5
Men verkrijgt onderactuatie door een kleiner aantal actuators dan vrijheidsgraden te hebben.
Hoofdstuk 1. Introductie
4
uitgebreid wetenschappelijk onderzoek gedaan naar de mogelijkheden van morfologische aanpassingen bij het draaien van dit type robots. We zullen dan ook onderzoeken welke aanpassingen er vereist zijn en hoe we deze uiteindelijk kunnen gebruiken in een controlestrategie. In het eerste hoofdstuk overlopen we de constructie van de gebouwde robot en de geïmplementeerde morfologische aanpassingen die het draaien kunnen bevorderen. Daarna bespreken we hoe we het model aansturen en hoe we gangen aanleren aan de robot d.m.v. een evolutionair algoritme (Hoofdstuk 3). Hierna volgt een beschrijving van de experimentele opstelling (Hoofdstuk 4), gevolgd door het vinden van gangen voor rechtdoor lopen (Hoofdstuk 5). Uiteindelijk trachten we aan de hand van de gevonden gangen en de morfologische aanpassingen bochten te maken met de robot (Hoofdstuk 6).
Hoofdstuk 2
Constructie van de robot
In dit hoofdstuk bespreken we eerst het model dat we doorheen de thesis gebruiken. Daarna bespreken we het softwaremodel en aanpassingen aan dit model die mogelijk het draaien kunnen bevorderen.
2.1
Het hardware model
De robot waar ons onderzoek op gebaseerd is, werd ontworpen op basis van twee andere modellen: de Cheetah robot (EPFL) [20][24] en de Reservoir Dog [27]. Uit deze twee modellen heeft men in het kader van het Adaptive Modular Architectures for Rich Motor Skills (AMARSi) project een nieuw vierpotig hardwareplatform gemaakt. Dit vierpotige model bevat tri-gesegmenteerde pantografische poten die meegevend zijn en wordt afgebeeld in Figuur 2.1 [24]. De beensegmenten werden geproportioneerd volgens karakteristieke waarden voor zoogdieren.
Figuur 2.1: Het hardware model: CAD ontwerp en implementatie
Het pantografische aspect houdt in dat de hoek tussen het bovenstuk-middelstuk en middelstuk-onderstuk van een been steeds gelijk gehouden wordt. Dit impliceert dat deze stukken altijd ongeveer parallel zullen staan t.o.v. elkaar. Mechanisch wordt dit gerealiseerd door een meegevende verbinding tussen de twee servo’s (κ en ) zoals in Figuur 2.2a wordt afgebeeld.
Hoofdstuk 2. Constructie van de robot
6
Een gevolg hiervan is dat we (in de plaats van drie) twee vrijheidsgraden hebben per poot. Deze twee aankoppelingspunten (γ en κ) worden in het echte model geactueerd door twee servo’s (één per aankoppelingspunt). Dit is een vorm van onderactuatie, de derde servo wordt als het ware vanzelf mee aangestuurd. Saggitale vlak
y
Coronale vlak
Transversale vlak
γ
κ
ε
ε volgt κ
(a) Schematisch model
z x
(b) Benaming vlakken
Figuur 2.2: (a) Schematische voorstelling van het robotmodel met pantografische, meegevende poten. Wanneer κ aangestuurd wordt, zal automatisch mee aangestuurd worden. Merk op dat er een veer-demper systeem aanwezig is aan κ. (b) Benaming der vlakken zoals gebruikelijk in de anatomie.
2.2
Het software model
De Cheetah robot werd later vertaald naar een computermodel door A. Tuleu (EPFL) [24] in Virtual Reality Modeling Language (VRML). Dit model is gemaakt voor Webots [15], een numerieke wereldsimulator met achterliggend de Open Dynamics Engine (ODE) physics engine. We zullen gebruik maken van dit model en dezelfde simulator om de draaicapaciteit van de robot te valideren. Teneinde alternatieve manieren van draaien te ontwikkelen, zullen we aanpassingen maken aan dit model gebaseerd op morfologieën uit de natuur. Ook deze aanpassingen worden gevalideerd in het software model.
2.3
Morfologische aanpassingen aan het model
Om betere manieren van draaien te vinden, moeten we extra vrijheidsgraden invoeren door morfologische aanpassingen aan het model te maken. Belangrijk bij het ontwerp is dat deze ook mechanisch geïmplementeerd moeten kunnen worden. We lieten ons hiervoor inspireren door voorbeelden uit de natuur en de literatuur.
Hoofdstuk 2. Constructie van de robot
7
In observaties van biologen van zespotigen (insecten) [13] toonde men aan dat kakkerlakken een bocht maken door de voorste poten lateraal anders te positioneren dan de middelste en de achterste. In het geval van insecten staat de richting van de voorste poten bijna loodrecht op deze van de rest van het lichaam. Dit resulteert in een verschillende krachtdistributie met als uiteindelijke resultaat het draaien van het insect. Er werden tot op vandaag nog geen gelijkaardige, analytische studies uitgevoerd bij zoogdieren, maar we gaan uit van hetzelfde basisidee. Stelling 1. Verschillende houdingen leveren verschillen in de krachtverdeling uitgevoerd door de robot en dus verschillen in voortbeweging.
2.3.1
Vertebra
Motivatie Zoals in de vorige sectie werd besproken, draaien insecten door het lateraal verschillend positioneren van de poten. Insecten gebruiken deze strategie zeer effectief, het is hun enige (morfologisch) middel om te draaien. Het is dus zeker interessant om naar de morfologie van insecten te kijken om inspiratie op te doen voor onze robot. Er zijn wel enkele caveats waarmee we rekening moeten houden bij het overnemen van deze structuren. De basismorfologie van een insect is significant anders dan die van een vierpotig zoogdier. Het zwaartepunt ligt veel lager en er zijn meer steunpunten. Hierdoor zijn veel extremere positioneringen van de poten mogelijk zonder nadelige effecten. Op onze robot zullen deze extreme posities leiden tot het verlies van evenwicht. Dit stabiliteitsverlies is hoofdzakelijk te wijten aan een combinatie van centrifugale krachten, de zwaartekracht en de Corioliskracht [23]. We kunnen deze deels tegenwerken door de robot te laten overhellen m.b.v. schoudergewrichten, maar uiteindelijk zullen we in ons huidige model nooit zulke extreme posities als die van insecten kunnen aannemen.
(a) Vertebra
(b) Scapula
Figuur 2.3: Gebruik van gewrichten tijdens het draaien bij roofdieren.
Hoofdstuk 2. Constructie van de robot
8
We zien in de natuur dat zoogdieren (d.m.v. hun ruggengraat) op een gelijkaardige manier kunnen draaien. Zo zal de ruggengraat van een roofdier vaak flexibeler zijn dan die van zijn prooi. Hierdoor is het roofdier in staat sneller bochtenwerk te verrichten en hopelijk zo zijn prooi te vangen [2]. Een eerste aanpassing zal dus het implementeren van een ruggengraatgewricht zijn, de vertebra. Stelling 2. Het asymmetrisch positioneren van de poten in het transversale vlak1 (d.m.v. de vertebra) verhoogt de beweegbaarheid van de robot in het transversale vlak.
Implementatie Het mechanisch nabootsen en implementeren van een ruggengraat is geen sinecure. We maken daarom een vereenvoudiging door slechts één ruggengraatsegment te introduceren in het model en dit aan te sturen door een servo ρ. Dit is een geldige vereenvoudiging gezien we enkel geïnteresseerd zijn in één vrijheidsgraad: die van de rotatie in het transversale vlak (zie Stelling 2). De hieruit resulterende krachten, die anders georiënteerd zijn dan de algemene looprichting, zorgen dan voor het nemen van de bocht. ρ
σ
(a) Vertebra
(b) Scapula
Figuur 2.4: Schematische voorstelling van de morfologische aanpassingen.
De uiteindelijke implementatie in Webots bestaat uit het invoeren van een extra VRMLnode aan het model die het lichaam in twee stukken verdeelt. De herverdeling werd zo gekozen dat de eigenschappen van de robot zo getrouw mogelijk zijn aan deze van het oorspronkelijke model. De relevante code voor deze aanpassing alsook een illustratie van het hieruitvolgende webots model worden weergegeven in Codefragment C.1 (appendix) en Figuur 2.5. 1
Ter referentie staan de benamingen van de vlakken zoals gebruikelijk in de anatomie afgebeeld in Figuur 2.2b
Hoofdstuk 2. Constructie van de robot
9
Figuur 2.5: Demonstratie van de vertebra in een Webots simulatie.
2.3.2
Scapula
Motivatie 1: verplaatsing massamiddelpunt - drukmiddelpunt Zoogdieren maken ook gebruik van een schoudergewricht bij het draaien, de zogenaamde scapula. Het stelt het dier in staat om een opwaartse/neerwaartse rotatie van de poten uit te voeren in het coronale vlak t.o.v. het lichaam. Tijdens het draaien zijn de scapulae op zo’n manier gedraaid dat de houding van het lichaam overhelt in de draairichting van de draaibocht. Hierdoor worden eerst en vooral de centrifugale krachten tegengewerkt door het massamiddelpunt anders te positioneren t.o.v. het drukmiddelpunt (gedefinieerd als het middelpunt van het oppervlak bepaald door de drukpunten te verbinden) [23]. We zullen dit mechanisme gebruiken om geïntroduceerde instabiliteiten zoals besproken in Sectie 2.3.1 tegen te werken2 . De verplaatsing van het massamiddelpunt t.o.v. het drukmiddelpunt heeft verder ook als gevolg dat de robot duwt naar de buitenkant van de bocht. Mits genoeg wrijving zal de resulterende reactiekracht van de grond de robot naar de binnenkant van de bocht duwen. Stelling 3. Het asymmetrisch positioneren van de poten in het coronale vlak (d.m.v. scapula) verhoogt de beweegbaarheid van de robot in het transversale vlak en kan de stabiliteit tijdens het snel draaien verhogen. Merk op dat we hier een afweging moeten maken tussen flexibiliteit en stabiliteit. Een te grote overhelling zal als gevolg hebben dat de robot valt ten gevolge van de zwaartekracht. De mate van mogelijke overhelling staat hierbij in functie van de snelheid van de robot in de bocht. Verder steunt het voorgestelde mechanisme op andere principes dan de vertebra. We kunnen dus hypothetisch stellen dat ze complementair op elkaar werken en hieruitvolgend dat de combinatie van beide gewrichten minstens een verbetering zou moeten opleveren. Stelling 4. Het combineren van Stelling 2 en 3 verhoogt de draaicapaciteit. 2
Ook motorrijders gebruiken dit principe wanneer ze overhellen in een bocht.
Hoofdstuk 2. Constructie van de robot
10
Figuur 2.6: Gebruik van scapulae tijdens het draaien bij de windhond.
Motivatie 2: dynamisch bijsturen in bocht Uit videofragmenten van zowel windhonden als katten blijkt dat deze de scapulae op een secundaire manier gebruiken. De scapulae zorgen voor een voetplaatsing in de laterale richting. Deze voetplaatsing wordt dan op twee manieren gebruikt: 1. Voetplaatsing als rotatiepunt waarrond het lichaam draait. 2. Ter ondersteuning van een slagbeweging in de draairichting. Dit zorgt voor een extra voortstuwing in de bochtrichting. [25]. Bij methode 1 wordt er door middel van de scapulae een voetplaatsingspatroon gezet dat er uiteindelijk voor zorgt dat de kat draait. De vertebra lijkt hierbij op een passieve meegevende manier mee te draaien (zoals het middenstuk van een vrachtwagen op een passieve manier draait en de achterkant meetrekt). Deze methode wordt - naar ons vermoeden - vooral gebruikt bij tragere gangen. Hiervoor moeten we het vertebragewricht meegevend maken d.m.v. het invoeren van een veer. Voor methode 2 is geen extra mechanische aanpassing vereist buiten deze voorgesteld in motivatie 1. Deze wordt zowel bij trage als bij snelle gangen gebruikt. Stelling 5. Dynamisch positioneren van scapula gewrichten is beter t.o.v. statisch positioneren bij draaien.
Hoofdstuk 2. Constructie van de robot
11
Figuur 2.7: Demonstratie van de scapulae in een Webots simulatie.
Implementatie De benodigde aanpassing bestaat eruit de poten los te koppelen van het lichaam. Hiervoor introduceren we aan de heup van elke poot een nieuw gewricht en daarbijhorend een nieuwe servo σi . De code voor deze aanpassing en het resulterende Webots-model worden getoond in Codefragment C.2 en Figuur 2.7.
Hoofdstuk 3
Aansturing
In Hoofdstuk 2 hebben we het robotmodel besproken en aangepast. In dit hoofdstuk zullen we eerst nagaan hoe we de servo’s in het model juist moeten aansturen en daarna hoe we hier leerstrategieën op kunnen toepassen.
3.1
Aansturing van de servo’s
De robot wordt voortbewogen d.m.v. periodieke signalen die aan de ingang van de servo’s worden aangelegd. In Hoofdstuk 5 gaan we verder op de concrete invulling van de parameters in, maar voor de hiernavolgende bespreking volstaat het deze periodieke signalen algemeen voor te stellen als oscillatoren met drie parameters (Ai ,fi ,Oi ):
Servoi = Ai cos(2πfi t) + Oi Merk op dat dit zonder reductie 39 te optimaliseren vrijheidsgraden oplevert: [ 4 poten x (1 heup + 1 scapula + 1 knie) + 1 vertebra] x 3 parameters.
3.2
Heuristieken voor het zoeken van parameters
Een belangrijk deel van het vinden van gangen bestaat uit het vinden van de optimale parameters voor de invoersignalen en we moeten dus stilstaan bij de vraag hoe we dit probleem juist gaan oplossen en of er überhaupt wel een oplossing voor bestaat. Zoals aangehaald in de vorige sectie levert een niet-gereduceerde vorm van een gang een 39dimensionale continue zoekruimte. Gegeven dat het uitvoeren van één simulatie gemiddeld 10 seconden duurt, is het rekenkundig onmogelijk om een grid-search uit te voeren op alle mogelijk parameters. Hier bovenop komt nog dat er geen eenvoudige gradiëntenfunctie bestaat die we kunnen gebruiken om het optimum te vinden. Er is een periode geweest in dewelke men de parameters van de oscillatoren daarom handmatig met het nodige Fingerspitzengefühl probeerde in te vullen (met succes). Deze
Hoofdstuk 3. Aansturing
13
werkwijze is echter zeer omslachtig en een kleine aanpassing aan één parameter kan voor een volledige destabilisatie van de andere parameterwaarden zorgen [7]. In de computerwetenschappen is dit type problemen ondertussen gelukkig al uitvoerig bestudeerd en hieruit volgend zijn er een heel pletora aan algoritmes ontwikkeld die we kunnen gebruiken. Eigen aan deze algoritmes is dat deze heuristisch werken en meestal nooit een écht optimum zullen bereiken. Verder hebben ze allen een vrij uiteenlopend gedrag en niet elk algoritme is geschikt voor de optimalisatie van de oscillatoren. Het gebruik van een fout algoritme kan leiden tot andere grootteorders van aantal benodigde iteraties en dus tot het niet vinden van een geschikte (sub)optimale oplossing binnen een aanvaardbare tijd. Wij kiezen voor Covariance Matrix Adaptation - Evolutionary Strategy (CMA-ES) als heuristiek omdat deze door verschillende studies de beste werd bevonden voor robotica toepassingen.[7] Eigenschappen die in het bijzonder aantrekkelijk zijn voor het vinden van gangen: • Invariantie-eigenschappen • Rangorde-eigenschappen: niet de uiteindelijke doelfunctiewaarde, maar eerder de rangschikking van resultaten t.o.v. elkaar is belangrijk (we gaan hier in Sectie 3.3.2 verder op in) • Uitbuiting paarsgewijze afhankelijkheden1 Deze eigenschappen zijn nuttig voor het leren van nieuwe gangen. Zo zullen de invariantieeigenschappen er bijvoorbeeld voor zorgen dat een aanpassing van de doelfunctie en/of lineaire transformaties van de parameterruimte niet tot andere resultaten zullen leiden.
3.3 3.3.1
Covariance Matrix Adaptation - Evolution Strategy Algemene beschrijving
CMA-ES [10] is een relatief nieuw evolutionair algoritme dat niet-lineaire, niet-convexe optimalisatie in het continue domein realiseert [9]. Nieuwe kandidaat-oplossingen worden gekozen uit hercombinaties van oude kandidaat-oplossingen die multivariaat normaal verdeeld zijn. Formeel schrijven we het zoekprobleem met CMA-ES als volgt: Gegeven : doelfunctie f : Rn → R 1
gangen bevatten zeer sterke paarsgewijze correlaties tussen de poten onderling en tussen segmenten van de poten, zie Hoofdstuk 5
Hoofdstuk 3. Aansturing
14
Objectief : Genereer een sequentie (xt )t=0,1,2,... ∈ Rn waar f (xt ) zo klein mogelijk is voor alle t=1,2,... Zoeken : Elk zoekpunt (parametervector) xt wordt at random gekozen uit een gegeven multivariate distributie P
generatie 0
generatie (g)
generatie (g+1)
Figuur 3.1: Conceptuele voorstelling van het zoeken naar een optimum in CMA-ES.
3.3.2
Zoekprocedure
De zoekprocedure bestaat uit drie stappen die herhaald worden tot een zeker criterium bereikt wordt: 2 C(g) ) 1. Bemonster kandidaat-oplossingen x uit het huidige model N (m(g) , σ(g)
2. Evalueer de kandidaat-oplossingen en rangschik ze op basis van score 3. Pas het model en de interne toestandsvariabelen aan op basis van de beste oplossingen Hierbij duidt superscript (g) op de waarde van een variabele in generatie g. Na het uitvoeren van deze drie stappen in generatie (g), gaan we terug naar stap 1 en beginnen we generatie (g + 1).
Beschrijving van het model 2 C(g) ) die doorheen Het model bestaat uit een multivariate normaalverdeling N (m(g) , σ(g) het leerproces aangepast zal worden, superscript (g) duidt het generatienummer aan, beginnende op 0. Het model wordt initieel opgesteld voor alle variabelen vanuit geschatte startwaarden voor de x-vector. Het model veronderstelt initieel ook dat alle variabelen autogecorreleerd zijn (C0 = I).
Hoofdstuk 3. Aansturing
15
Het gemiddelde m(g) van de distributie geeft een idee van de huidige schatting van de beste oplossing. De covariantiematrix C(g) modelleert de relaties tussen de verschillende variabelen. 2 is een goede maatstaf voor De stapgrootte σ (g) die een afgeleide is van de variantie σ(g) convergentie van het algoritme. Hoe kleiner deze waarde, hoe kleiner de spreiding van de monsters. De grootteorde van de variabelen is O(100 ) . Empirisch blijkt dat een waarde van σk2 < 10−6 zeker een voldoende voorwaarde is voor convergentie.
Selectie van kandidaat-oplossingen CMA-ES trekt uit de distributie λ verschillende mogelijke kandidaat-oplossingen (mon(g+1) (g+1) sters) x1 , ..., xλ en evalueert deze. Deze evaluatie levert een score f (xi ) voor ieder monster. De monsters worden dan gerangschikt van goede naar slechte score als volgt:
{xi:λ | i = 1 . . . λ} = {xi | i = 1 . . . λ}
(3.1)
f (x1:λ ) ≤ · · · ≤ f (xµ:λ ) ≤ f (xµ+1:λ ) ≤ . . .
(3.2)
Op basis van een selectie van de µ beste oplossingen van de huidige generatie g, wordt de distributie aangepast. Nota bene: enkel de rangschikking is van belang en de score wordt verder niet gebruikt, dit is de rangorde-eigenschap.
Aanpassing van het gemiddelde m Het gemiddelde wordt aangepast zodat de waarschijnlijkheid (likelihood ) van vorige succesvolle kandidaat-oplossingen gemaximaliseerd wordt. Dit doen we simpelweg door het gewogen gemiddelde te nemen van de µ vorige beste oplossingen : m
(g+1)
=
µ X
(g)
wi xi:λ
(3.3)
i=1 µ X
wi = 1
(3.4)
i=1
Deze procedure zorgt voor het opschuiven van het centrum van distributie in figuur 3.1. De gemiddelden van verschillende generaties worden bijgehouden in een evolutiepad p, gebruikt als maatstaf voor de correlatie tussen de stappen in de evolutie.
p =
√
µw
m(g+1) − m(g) . σ (g)
(3.5)
Hoofdstuk 3. Aansturing
16
Hierbij is µw een gewichtswaarde gelijk aan het inverse van de som van de kwadraten van de gewichten en dus 1 ≤ µw ≤ µ.
Aanpassing van de stapgrootte σ Om de stapgrootte aan te passen, maken we gebruik van een afgeleide maatstaf pσ van het evolutiepad (formule 3.5). Een grotere correlatie tussen verschillende paden laat grotere stapgroottes toe en vice versa.
q p pσ ← (1 − cσ )pσ + 1 − (1 − c2σ ) C−1 (g) p kpσ k cσ σk+1 = σk exp −1 dσ E [kN (0, I)k]
(3.6) (3.7)
Hierbij staat cσ voor een constantente die vrij gekozen kan worden. Dit mechanisme noemt men Cumulatieve Stapgrootte Adaptatie (CSA). Een uitvoerige bespreking van CSA valt buiten het bestek van deze thesis, voor meer informatie zie [11]. Kwalitatief is het van belang om te weten dat de constante zo werd gekozen dat ze premature convergentie in lokale optima voorkomt zonder globale convergentie tegen te houden. [9] Deze procedure zorgt voor de grootte van de verschuivingen in figuur 3.1
Aanpassing van de covariantiematrix C Voor het aanpassen van de covariantiematrix maken we gebruik van beide mechanismen: (g+1) een maximum likelihood update (Cµ ) en CSA. p pc ← (1 − cc )pc + 1[0,α√n] (kpσ k) (1 − (1 − cc )2 )p (3.8) ! ! T µ (g) (g) X xi:λ − m(g) xi:λ − m(g) (g+1) Cµ = wi (3.9) σ (g) σ (g) i=1 C(g+1)
=
(1 − c1 − cµ + cs )Cg + c1 pc pTc + cµ C(g+1) µ
(3.10)
Deze procedure zorgt voor het aanpassen van de vorm van de distributie in figuur 3.1.
3.3.3
Aandachtspunten bij het gebruik van CMA-ES
Oneindige zoekruimte CMA-ES werd ontworpen om in oneindig grote ruimtes te zoeken. Oneindig ver zoeken is voor de parameters van de oscillatoren echter niet nodig en de zoekruimte oneindig groot
Hoofdstuk 3. Aansturing
17
laten, vertraagt het leerproces aanzienlijk. Standaard biedt CMA-ES geen opties tot het limiteren van de zoekruimte. Met een eenvoudige toevoeging aan het algoritme kan men deze beperking bekomen [19]: x0 = x mod 2xmax x0 x0 ≤ xmax x00 = 0 anders 2x max − x x∗ = x00 + xof f set
(3.11) (3.12) (3.13)
Hierbij staat x voor een element uit de parametervector x. Deze transformatie x → x0 → x00 → x∗ projecteert de reële ruimte volgens een projectieve functie P : R → [xof f set , xof f set + xmax ]. De exacte waarden van xof f set en xmax variëren per gang en per parameter.
Populatiegrootte λ Om snelle zoektochten uit te voeren moet λ klein gekozen worden. Om robuuste of globale zoektochten uit te voeren moet λ groot zijn. Voor onze toepassing wordt λ zo gekozen dat deze min of meer kwadratisch stijgt in het aantal te optimaliseren variabelen. Een mogelijke strategie bestaat eruit λ geleidelijk te vergroten na een zeker aantal episodes2 of na convergentie (en zo bij elke restart globaler te zoeken), de zogenaamde restart CMAES [4].
Selectiegrootte µ Typisch wordt deze zo gekozen dat µ ≤ λ/2. Hoe kleiner µ, hoe scherper de evolutie, maar ook hoe groter de kans op vervuiling van volgende populaties ten gevolge van een slechte generatie. Deze trade-off leidt binnen onze toepassing tot een ideale waarde van 2λ λ 10 ≤ µ ≤ 10 .
Doelfunctie f De doelfunctie is een vrij te kiezen vaste functie die aangeeft hoe goed een kandidaatoplossing (parametervector) voor het probleem is. CMA-ES past de parameters zo aan dat deze de doelfunctie maximaliseren. Een goede doelfunctie kiezen voor een bepaald objectief is niet evident. Gezien het hier over numerieke simulaties gaat en er duizenden trajecten gegenereerd worden, zal het 2
Een episode is een volledig CMA-proces, van initialisatie tot beëindiging
Hoofdstuk 3. Aansturing
18
algoritme snel in niet nuttige lokale optima blijven steken (bijvoorbeeld waarbij één poot niet gebruikt wordt). Verder moet de doelfunctie in staat zijn om het volledige leerproces te bekrachtigen. Dit kan lastig zijn aangezien verschillende criteria belangrijker worden in verschillende stadia van het zoekproces. We zullen hier verder op ingaan in de relevante secties waar de leerprocedure toegepast wordt.
Hoofdstuk 4
Experimentele opstelling
In de vorige hoofdstukken hebben we het model en de leerstrategie besproken. In dit hoofdstuk overlopen we de experimentele opstelling alsook de architectuur van de bestaande en toegevoegde raamwerken.
4.1
De Webots simulatieomgeving
Webots is een 4D-simulatieomgeving met achterliggend de Open Dynamics Engine (ODE) Solver. Webots zelf zorgt voor de modellering van de robot en de gesimuleerde omgeving. ODE simuleert de interacties en gedragingen door de achterliggende differentiaalvergelijkingen die de dynamica van de opgestelde omgeving uitdrukken te benaderen. Een bekende kritiek op het uitvoeren van experimenten in simulatieomgevingen is dat deze niet (genoeg) overdraagbaar zouden zijn naar de realiteit. De zogenaamde simulatierealiteit kloof is in de meeste gevallen niet volledig overbrugbaar en ook hier zal dit het geval zijn voor de numerieke resultaten aangezien de simulator niet volledig accuraat is. De kwalitatieve resultaten zullen echter wel generaliseerbaar zijn tot een reële omgeving en waarschijnlijk zelfs tot andere robotmodellen 1 .
4.2
Architectuur van de opstelling
De aansturing van een model in Webots gebeurt door middel van een regelaar (controller ). Deze regelaar kan de servo’s actueren en krijgt tegelijkertijd ook informatie over de wereld terug. Wij kiezen ervoor om deze een TCP connectie te laten maken met een python module. Deze python module bevat de controlelogica voor CMA-ES en de kennis over de gangen. Dit wordt weergegeven in figuur 4.1. De keuze om een apart python raamwerk te maken volgt uit verschillende motivaties: 1
Er is geen methode om deze externe validiteit te meten tenzij dit experiment herhalen in andere condities. Het feit dat verschillende klassen van vierpotige dieren deze gebruiken, is echter een sterke indicatie.
Hoofdstuk 4. Experimentele opstelling
Python raamwerk
20
C++ raamwerk aansturing
Interface
TCP verbinding Interne verbinding
info
aansturing Regelaar
info
Simulator
Figuur 4.1: Communicatie tussen de verschillende softwareonderdelen.
• Python bevat verschillende nuttige bibliotheken (i.e. scipy). • Python is sneller qua ontwikkelingstijd. • Webots is inherent onstabiel. • De ODE Solver is onstabiel wanneer je met veren werkt. We kunnen deze bovengenoemde onstabiliteiten opvangen door middel van een python supermodule die instaat voor het opstarten/afsluiten van Webots.
4.3
Het C++ raamwerk
Het C++ raamwerk is een natuurlijke uitbreiding van het AMARSi raamwerk (libamarsiquad ), geschreven door A. Tuleu (EPFL) en wordt weergegeven in Figuur 4.2. Concreet werden er twee nieuwe actuatorklasses geschreven om de geïmplementeerde scapula en vertebra servo te kunnen gebruiken (respectievelijk Scapula en Vertebra). Verder werd er ook een Regelaar geschreven die zowel de oude als de nieuwe actuatorklassen gebruikt om de uiteindelijke gangen te realiseren. Deze communiceert op zijn beurt met zowel de interne Webots interface als het python raamwerk.
4.4
Het python raamwerk
Het python raamwerk is opgedeeld in drie logische blokken: de CMA-module, de definities module en de rapporteringsmodule (zie Figuur 4.3). De Definitions Module staat in voor de codering van de afhankelijkheden tussen variabelen en de manier waarop deze vertaald worden in oscillatoren zoals beschreven in Hoofdstuk 3. Verder staat hier ook per gang de doelfunctie gedefinieerd als Rewards.
Hoofdstuk 4. Experimentele opstelling
21
“extends”-relatie gebruikt-relatie
scapspine
libamarsi-quad
VoidActuator
Scapula
SimpleActuator
Actuator
KneeActuator
Vertebra
ServoDriver
regelaar
Webots Regelaar
Supervisor
Robot
Figuur 4.2: Architectuur van het C++ raamwerk, halfvolle pijlen staan voor de gebruikt-relatie, volle pijlen voor de ’extends’-relatie. De vetgedrukte modules werden ontwikkeld ter ondersteuning van de experimenten.
Definitions Module
CMA Module CMA
Parameters
gebruikt-relatie Gaits Rewards
Experiment Reporting Module Interface
Evaluation
Archiving
Figuur 4.3: Architectuur van het python raamwerk.
Measurement
Hoofdstuk 4. Experimentele opstelling
22
De CMA-module bevat de implementatie van CMA-ES en de logica voor het uitvoeren van een experiment. Een experiment bestaat uit meerdere evaluaties van telkens een parameterset. Eén evaluatie wordt afgehandeld door de Evaluation klasse. Deze connecteert via een Interface met de controller in het C++ raamwerk. De parametersets worden gegenereerd op basis van de huidige gang en het huidige CMA-ES model dat in de CMA klasse opgenomen wordt. Verder is er ook nog de reporting module waarin functionaliteiten staan om grafieken te genereren m.b.v. GnuPlot.
Hoofdstuk 5
Rechtdoor lopen
In het vorige hoofdstuk hebben we de experimentele opstelling besproken. In dit hoofdstuk maken we gebruik van deze opstelling om gangen voor rechtdoor lopen te vinden voor de robot.
5.1
Introductie
Zoals voorheen besproken werd, gebruiken we CMA-ES voor het vinden van optima voor de parameters van de oscillatoren (zie Tabel 5.1). Deze oscillatoren dienen als invoer voor de servo’s en zorgen zo voor de uiteindelijke voortbeweging van de robot. Teneinde het probleem computationeel minder complex te maken en zinvolle resultaten te bekomen, moeten we beperkingen en afhankelijkheden aan de oscillatoren opleggen. Zo bekomen we een sterke reductie van het aantal parameters en een eenvoudigere analyse van gevonden resultaten. Deze beperkingen hangen sterk af van het type van gang. In dit hoofdstuk behandelen we enkele methodes om rechtdoor te lopen op basis van gangen die in de natuur terug te vinden zijn. Tabel 5.1: Overzicht van de geactueerde servo’s en overeenstemmende symbolen.
Symbool
Naam servo
γi κi ρ σi
heup i knie i vertebra (ruggengraat) scapula i (schoudergewricht)
Hoofdstuk 5. Rechtdoor lopen
5.2
24
De drafgang
5.2.1
Theoretische analyse
Een gang is een faserelatie tussen de verschillende poten/gewrichten die een bepaald patroon van beweging teweegbrengt. De drafgang is een gang van middelmatige snelheid die in bijna elk vierpotig dier terug te vinden is. Hij bestaat uit een tweedelig diagonaal patroon: poten die diagonaal t.o.v. elkaar staan bewegen tegelijkertijd op een symmetrische manier. In het eerste deel van de beweging (stance fase) beweegt de poot op de grond van voor naar achter. In het tweede deel van de beweging (swing fase) beweegt de poot in de lucht van achter weer naar voor. Deze faserelatie bij de drafgang wordt geïllustreerd in het fasediagram1 (Figuur 5.2.1). Merk op dat de wrijving tussen poot in de stance fase (zwart gekleurd in de figuur) voor de voortbeweging zorgt. We kunnen dit periodieke patroon coderen als vier sinusoïdale signalen in de heupservo’s en de afhankelijkheden hierin overnemen. Indien we de parameters van deze periodieke signalen kennen, verkrijgen we een manier van lopen voor de robot, de gang. Dit levert de volgende vergelijkingen:
ω = 2πf t
LH LF
γLH
= Ah cos(ω) + Oh
RH
γLF
= Af cos(ω + π) + Of
RF
γRH
= Ah cos(ω + π) + Oh
γRF
= Af cos(ω) + Of
ω 0
π
2π
Figuur 5.1: Faserelatie in de drafgang: swing fase en stance fase en de vertaling hiervan in de oscillatoren. Indices staan voor voorkant (F ront), achterkant (Hind), links (Left) en rechts (Right).
Teneinde in de swing fase de poten van de grond te krijgen, is het belangrijk dat we een in de tijd tegenovergesteld patroon uitvoeren met de knieën. De actuatiesignalen van de knieën zien er als volgt uit:
κLH,RF
κLF,RH 1
A k = 0 A k = 0
(ω mod 2π) ≤ Tk anders (ω + π mod 2π) ≤ Tk anders
Fasediagram gebaseerd op oorspronkelijke fasediagrammen van M. Hildebrand[12].
Hoofdstuk 5. Rechtdoor lopen
5.2.2
25
Leerprocedure
Traject De robot zal tijdens de leerfase van CMA-ES een bepaald parcours moeten afleggen. Hoe beter de robot dit parcours aflegt, hoe beter de score en hoe meer waarschijnlijk een gelijkaardige selectie van parameters zal worden in de volgende populaties. Wanneer men een kind leert lopen, neemt men het eerst vast bij de handen en leert men het zo stappen. Wanneer het kind hierin slaagt, wordt het losgelaten en hoopt men dat het kind erin zal slagen om zonder ondersteuning te kunnen stappen en uiteindelijk zelfs lopen. Een gelijkaardige methode wordt gebruikt wanneer men een kind leert fietsen, zwemmen ... Net zoals bij de mens is het nuttig om de robot te helpen in het begin van zijn parcours. In dit geval doen we dit door in de simulatie de robot ’vast te houden’ in het begin van het traject. In een eerste tijdsinterval t ∈ [0s, 1.5s[ wordt de robot vastgehouden in het saggitale vlak en kan deze dus enkel recht vooruit of achteruit gaan (en dus niet vallen). In een tweede tijdsinterval t ∈ [1.5s, 3.5s[ staan we de robot toe om ook zijn helling aan te passen in het saggitale vlak. In een derde tijdsinterval t ∈ [3.5s, 15s[ laten we de robot volledig vrij. Dit alles wordt schematisch voorgesteld in Figuur 5.2.
0 1.5 3.5
(xs ,zs )
z
te
t
(xe,ze )
x Figuur 5.2: Ideaal traject voor rechtdoor lopen, de robot loopt van links naar rechts doorheen de tijd (weergegeven door de stippellijn).
Doelfunctie Een voor de hand liggend criterium is de afgelegde afstand in de x-richting (fx , formule 5.1). Deze doelfunctie leidt echter tot een zeer snelle, onstabiele gang. De reden hiervoor is te vinden in de leerprocedure uit de vorige paragraaf. CMA-ES blijft vast zitten in een zeer brede kuil van lokale optima die de afgelegde x-afstand optimaliseert zonder rekening te houden met stabiliteit. In de eerste 3.5 seconden wordt de robot immers
Hoofdstuk 5. Rechtdoor lopen
26
sowieso vastgehouden en worden instabiliteiten getolereerd. Deze doelfunctie is dus enkel nuttig eens we al een min of meer stabiele basisgang hebben gevonden. ∆x = (xe − xs ) ∆t = (te − 3.5) fx (∆t, ∆x) = ∆x
(5.1)
ft (∆t, ∆x) = ∆t
(5.2)
fopt (∆t, ∆x) = (∆x)2 ∆t
(5.3)
Het criterium ’stabiele tijd’ (ft , formule 5.2) leidt tot een zeer trage, stabiele gang en is dus ideaal voor in de beginfase van het leerproces. Idealiter wensen we een combinatie van beide voorgestelde eigenschappen te gebruiken. Dit resulteert in fopt (formule 5.3) die het volledige zoekproces bekrachtigt. Bij het testen met deze doelfunctie komen er nog enkele subtiele problemen naar boven. Deze hebben vooral te maken met onrealistische gedragingen en het uitbuiten van eigenschappen specifiek aan de engine (zoals het ontbreken van luchtweerstand). Verder bestaan er ook onstabiliteiten in zowel Webots als ODE die ervoor zorgen dat geldige - en mogelijk nuttige - parametervectoren plots zeer slecht worden. Een eerste manier om deze op te vangen is door een zeer slechte score toe te eigenen aan ongeldige simulaties. Deze methode heeft echter als nadeel dat indien er zo veel zijn, we in principe een veel grotere µλ ratio verkrijgen (en bijgevolg ook de karakteristieken van een lokale zoektocht). Verder krijgen we ook veel vals-negatieven omwille van de onstabiliteiten. In de praktijk is gebleken dat het beter is om deze op te vangen door een score van N aN (Not a Number) toe te kennen aan ’foutieve’ parametervectoren. Deze negeren we in het CMA-ES algoritme en we vragen nieuwe parameters aan. Zo behouden we een gezonde µλ ratio ten koste van een verwaarloosbaar licht vervormde distributie. Deze is te wijten aan slechte voorbeelden die niet in rekening gebracht worden (maar deze vervorming is dan überhaupt gewenst).
Resultaten Uit het theoretische model halen we acht parameters die we moeten optimaliseren. We beperken de zoekruimte voor de parameters tot de waarden zoals afgebeeld in Tabel 5.2 met behulp van de projectie P die in Sectie 3.3.3 besproken werd. Het optimalisatieproces van CMA-ES werd gevisualiseerd in Figuur 5.3. Hierbij stelt de volle lijn de fitness score volgens formule 5.3 voor en de stippellijn de variantie σ 2 van de multivariate distributiehypothese (zie 3.3). Zoals voorheen beargumenteerd werd, levert deze een goede maat voor convergentie.
Hoofdstuk 5. Rechtdoor lopen
27
Tabel 5.2: CMA-ES parameters voor de drafgang: zoekruimte, startwaarden en optimaal gevonden waarden.
Symbol
Zoekruimte
xstart
xopt
f Af Ah Ak Of Oh Tk
[0.10, 2.50] [0.20, π/2] [0.20, π/2] [0.00, π/2] [−π/8, π/8] [−π/8, π/8] [0.00, π/2]
1.00 π/4 π/4 0.10 0.00 0.00 0.10
2.40 0.62 0.65 0.22 0.00 0.18 0.40
25000
0.35 0.3 0.25
15000
0.2
10000
0.15 0.1
5000 0
σ2
Score
20000
0.05 0
10
20
30 40 Generatie
50
60
0
Figuur 5.3: Leerevolutie CMA-ES voor de drafgang: score (stippellijn) en variantie (volle lijn).
CMA-ES convergeert na ongeveer 65 iteraties (130.000 simulaties) naar een optimale gang die eveneens stabiel is. De optimale waarden xopt staan in tabel 5.2. De gang wordt weergegeven in Figuur 5.4.
5.3 5.3.1
De gebonden gang Theoretisch analyse
De gebonden gang is een gang die vooral gebruikt wordt bij snelle verplaatsing. Ook deze gang is bij veel vierpotigen terug te vinden. Zoals af te leiden uit het fasepatroon (Figuur 6.3.1) bestaat hij uit een tweedelig symmetrisch patroon: de voor- en achterpoten bewegen respectievelijk simultaan van voor naar achter. Verschillend aan het fasepatroon van de
Hoofdstuk 5. Rechtdoor lopen
28
Figuur 5.4: Demonstratie van de drafgang in een Webots simulatie.
gang is er ook een derde, vliegend deel van de beweging (flight fase) waarin geen enkele poot op de grond steunt. We kunnen dit periodieke patroon, net zoals bij de draf, coderen als vier sinusoïdale signalen in de heupservo’s en de afhankelijkheden hierin overnemen. Dit levert de volgende vergelijkingen:
ω = 2πf t
LH LF
γLH
= Ah cos(ω + φ) + Oh
RH
γLF
= Af cos(ω) + Of
RF
γRH
= Ah cos(ω + φ) + Oh
γRF
= Af cos(ω) + Of
ω 0
π
2π
Figuur 5.5: Faserelatie in de gebonden gang: fasepatroon en de vertaling hiervan in de oscillatoren. Indices staan voor voorkant (F ront), achterkant (Hind), links (Left) en rechts (Right).
Ook hier gebruiken we analoge kniesignalen en doelfunctie als bij de draf.
5.3.2
Leerprocedure
De resulterende gang wordt weergegeven in Figuur 5.7. Uit het leertraject (Figuur 5.6) kunnen we afleiden dat er convergentie optreedt naar een onstabiele gang (te zien aan zowel de inconsistente scorewaarde als de resulterende gang). Om de verklaring hiervoor te vinden, moeten we de gebonden gang iets dieper analyseren. Een goede gebonden gang heeft een vliegende fase voor ongeveer 50% van de volledige gang [12]. Hiervoor moet de robot dus voldoende snelheid (energie) produceren om in deze vliegende fase te geraken. Vierpotige dieren zijn in staat om in deze vliegende fase te geraken door een afduwbeweging die deels bekrachtigd wordt door een uniek mechanisme in de rug.
29
140000
0.7
120000
0.6
100000
0.5
80000
0.4
60000
0.3
40000
0.2
20000
0.1
0
0
50
100 150 Generatie
200
σ2
Score
Hoofdstuk 5. Rechtdoor lopen
0
Figuur 5.6: Leerevolutie CMA-ES voor de gebonden gang: score (stippellijn) en variantie (volle lijn).
Dit mechanisme bestaat erin de rug afwisselend op te spannen en te ontspannen tijdens het lopen. Dit zorgt voor opslag van kinetische energie (resulterende uit de loopbeweging) als elastische potentiële energie (in de opgespannen ruggengraat) die op zijn beurt omgezet wordt in interne kinetische energie (ontspannen van de ruggengraat) die uiteindelijk gebruikt wordt in de afduwbeweging [2]. Bijna alle dieren die de gebonden gang gebruiken, hebben dit mechanisme 2 Ons robotmodel heeft dit mechanisme echter niet en het is voorlopig mechanisch onhaalbaar om dit te implementeren. Wanneer we kijken naar de resulterende gang, constateren we inderdaad dat de achterste poten niet van de grond komen door gebrek aan kracht. Merk op dat de onstabiele resultaten te wijten zijn aan het feit dat de poten als het ware over de grond slepen en zo een voortdurende wisselwerking met het veermechanisme veroorzaken. Hierdoor worden zowel ODE als de robot onstabiel. Of dit in de echte robot een probleem zal zijn, is nog niet bekend. Deze wrijving heeft wel een negatieve impact op 2
met uitzondering van kleine krokodillen die een eigen variant hebben.
Figuur 5.7: Demonstratie van de gebonden gang in een Webots simulatie.
Hoofdstuk 5. Rechtdoor lopen
30
de voortbewegingssnelheid en is dus sowieso ongewenst. Een mogelijke oplossing die geen mechanische aanpassing vereist, zou het verhogen van het plafond van de frequentie of amplitude kunnen zijn, zodat we alsnog genoeg inertie kunnen verkrijgen om de robot in de lucht te krijgen. We gaan hier niet verder op in aangezien we ons vooral willen focussen op het ontwikkelen van draaistrategieën en de drafgang die hier geschikt voor is.
Hoofdstuk 6
Bochten nemen
In het vorige hoofdstuk hebben we gangen gevonden voor rechtdoor lopen. In dit hoofdstuk gaan we uit van de gevonden drafgang en maken we gebruik van de aanpassingen aan het robotmodel om ook bochten te kunnen nemen. We gaan hierbij na hoe elk gewricht het beste gebruikt kan worden en wegen de voor- en nadelen van keuzes in aansturing af.
6.1 6.1.1
Gebruikte methodologie Optimale bocht
De gebruikte methodologie voor het vinden van een optimale bocht volgt hoofdzakelijk deze van het rechtdoor lopen. Hier laten we de robot echter eerst een stuk rechtdoor lopen, waarna de bocht gestart wordt. Dit is van belang, omdat we geïnteresseerd zijn in de draaicapaciteiten tijdens het lopen (meer bepaald de transitie van rechtdoor lopen naar een bocht nemen). Het traject ziet er dan uit zoals afgebeeld in Figuur 6.1. Hierbij wordt de robot vastgehouden van 0 tot 3.5 seconden zoals besproken in Sectie 5.2.2. Tijdstip ts geeft aan op welk ogenblik de bocht zal begonnen worden. Dit moet mee aangeleerd worden, aangezien er een sterke samenhang is tussen het signaal van de heupservo en die van de vertebra/scapula servo. Te vroeg of te laat beginnen t.o.v. van de heupservo leidt tot onstabiel gedrag. Met behulp van CMA-ES wordt eerst een gang gevonden die de optimale bocht voorstelt. De optimale bocht wordt gedefinieerd als deze die de volgende doelfunctie maximaliseert:
∆x = (xs − xe ) ∆z = (zs − ze ) ∆t = (ts − te ) fopt (∆t, ∆x, ∆z) = (∆t∆z)4 ∆x
(6.1)
Hierbij is te de tijd dat de numerieke simulatie aanstaat en dus ook de tijd dat de robot stabiel blijft lopen (gelimiteerd op 15 s voor heel stabiele gangen). Deze factor is, zoals
Hoofdstuk 6. Bochten nemen
0 1.5 3.5
32
ts
te t
(xe,ze )
(xs ,zs )
z x
Figuur 6.1: Leertraject voor bochten, de robot beweegt van linksonder naar rechtsboven doorheen de tijd (weergegeven door de stippellijn).
vermeld in Sectie 3.3.3, belangrijk voor het ontwikkelen van een stabiele gang. (xs , zs ) is de begincoördinaat van het stuk van het pad waarop de robot wordt losgelaten en dus de bocht kan beginnen. (xe , ze ) is de eindcoördinaat van de robot. De te optimaliseren parameters zijn deze die het tijdsverloop van de posities van de servo’s (scapula/vertebra) bepalen. Merk op dat de tijdsfactor nog belangrijker is geworden, omdat we heel snel in onstabiele situaties zullen terechtkomen.
6.1.2
Analyse gewrichten
Teneinde bochten te kunnen maken met de robot m.b.v. een regelaar is het nuttig om niet enkel de optimale bocht te kennen, maar ook te weten hoe de bochtsterkte verandert in functie van aanpassingen aan de parameters van de servo’s. Een analyse van het karakter van de gewrichten vereist het vinden van vele gelijkaardige gangen (één voor elke te analyseren aanpassing aan de parameters van een servo). CMA-ES is hier niet voor geschikt aangezien dit enkel het optimum voor één servo positie zoekt. Al die posities afgaan, zou met de beschikbare rekenkracht telkens minstens enkele maanden in beslag nemen. Ook een globale zoektocht zou qua rekenwerk te duur zijn, maar gegeven dat we al de optimale bochtparameters kennen na één CMA-ES episode (zie Sectie 6.1.1) en
Hoofdstuk 6. Bochten nemen
33
gegeven dat we een klein aantal parameters moeten optimaliseren, is een lokale zoektocht (grid search) in zekere mate wel mogelijk. De lokale zoekruimte wordt dan bijvoorbeeld:
xservo ∈ [0, 2x∗servo ] xtijd ∈ [x∗tijd − tcyclus , t∗tijd + tcyclus ]
(6.2) (6.3) (6.4)
Hierbij zijn x∗ , t∗ de positie- en tijdsparameters van de met behulp van CMA-ES gevonden draaigang. tcyclus is de tijd die een poot erover doet om een cyclus te vervolledigen en is dus gelijk aan 1/f ∗ = 1/2.456 = s (met f ∗ de frequentie van de optimale drafgang). Het aantal tussenniveaus werd zo gekozen dat we ongeveer 50 servo-posities afgaan en zo’n 1000 tijdsposities. Dat levert een totaal van 50 000 iteraties, qua rekentijd dus ongeveer equivalent aan één grondige CMA-ES episode.
6.1.3
Evaluatiemaat
We kunnen verschillende criteria hanteren voor het evalueren van een goede bocht: bochtsnelheid, stabiliteit, energie-efficiëntie ... Aangezien wij vooral geïnteresseerd zijn in de maximale mogelijkheden van de modelaanpassingen, kiezen we voor een eenvoudige maat: de zijwaartse snelheid. Deze definiëren we als volgt:
∆z = (zs − ze ) ∆t = (ts − te ) ∆z , vz = ∆t
(6.5)
waarbij de ∆z de afgelegde weg in de z-richting is vanaf het ogenblik van loslaten en ∆t de duur van het tijdsinterval waarin de robot deze weg aflegde. Deze maat kent een bijna kwadratische stijging naarmate de robot verder kan draaien tot een kwartdraai bereikt wordt, waarna de winst terug kwadratisch zakt. Een steeds groter wordend deel van de voorwaartse snelheid wordt immers snelheid in de z-richting tijdens het nemen van de bocht naarmate de robot meer gedraaid staat (in het eerste kwadrant). Dit is echter geen probleem gezien in onze toepassing de robot nooit langer dan 10 seconden kan draaien en dus nooit een bocht groter dan 2P3 i rad zal draaien (dit werd empirisch vastgesteld). Merk op dat deze maat verschillend is van de gebruikte doelfunctie. Dit komt omdat het nut van de doelfuncties het bekrachtigen van het leerproces is, terwijl de prestatiemaat enkel dient ter evaluatie van de gevonden gangen.
Hoofdstuk 6. Bochten nemen
6.2 6.2.1
34
Bochten nemen met het oorspronkelijke model Methode
Als we de poten als een geheel beschouwen, kunnen we stellen dat de enige vrijheidsgraad van de poten een rotatie is in het saggitale vlak. In de literatuur zijn er twee veelgebruikte draaistrategieën voor dergelijke systemen. Beide strategieën voeren een asymmetrie in het voetplaatsingspatroon in teneinde de robot te doen draaien. De eerste strategie, voorgesteld door [8][28], bestaat uit het verhogen van de frequentie van de buitenste poten in de bocht. Hierdoor zal de robot meer momentum krijgen langs de buitenkant van de bocht en als direct gevolg hiervan draaien. Een tweede strategie, voorgesteld door [5][8][28] bestaat uit het verhogen van de grootte van de schreden. Hoewel hierrond verder geen onderzoek op robots is gedaan, kiezen we deze strategie omdat uit onze empirische waarnemingen gebleken is dat deze minder snel resulteert in instabiliteiten in de resulterende gang1 .
6.2.2
Resultaat
Gebruik makend van deze methode is de maximaal bereikte laterale snelheid vz vastgelegd op 0.07 m/s. Dit is zoals verwacht een zeer slecht resultaat en legt een ondergrens om de hiernavolgende resultaten mee te vergelijken.
6.3
Bochten nemen met het nieuwe model
In Hoofdstuk 2 hebben we verschillende morfologische aanpassingen besproken. In deze sectie evalueren we elke morfologische aanpassing experimenteel.
6.3.1
Scapulae (statisch)
Methode De grenzen en startwaarde van de CMA-ES zoekruimte worden afgebeeld in Tabel 6.1a. Merk op dat er maar één scapulapositiewaarde aangeleerd wordt i.p.v. vier om symmetrieredenen. Deze wordt als volgt omgezet in constante aansturingssignalen (posities) voor de scapulae: 1
De eerste strategie is immers voortgekomen uit observaties bij insecten en deze zijn inherent veel stabieler dan vierpotigen (zie Sectie 2.3.1).
35
4000
0.14
3500
0.12
3000
0.1
2500
0.08
2000
0.06
1500 1000
0.04
500
0.02
0
0
20
40 60 Generatie
80
σ2
Score
Hoofdstuk 6. Bochten nemen
0 100
Figuur 6.2: Leerevolutie CMA-ES voor scapulae: score (stippellijn) en variantie (volle lijn)
σ
σ
σout
0 = σ
σLH
= σout
σLF
= σout
σRH
= −σout
σRF
= −σout
als t ≤ ts anders
Figuur 6.3: Faserelatie in de gebonden gang: fasepatroon en de vertaling hiervan in de oscillatoren. Indices staan voor voorkant (F ront), achterkant (Hind), links (Left) en rechts (Right).
Dit heeft als resultaat dat alle poten over eenzelfde hoek overhellen, wat overeenkomt met observaties bij dieren die we gemaakt hebben.
Resultaat De optimale bereikte zijwaartse snelheid bedraagt 0.26 m/s, een significante verbetering t.o.v. het resultaat van Sectie 6.2.2. De volledige leercurve staat in Figuur 6.2. Na 70 generaties blijft de waarde stabiel variëren rond het optimum en convergeert CMA-ES. Dit resultaat toont aan dat het massamiddelpunt anders zetten t.o.v. het steunmiddelpunt inderdaad een bocht op zich als gevolg heeft, zelfs zonder het invoeren van een asymmetrie in de amplitudes van de invoersignalen. Dit is verschillend van vorig onderzoek waarin scapulae veelal reactief gebruikt werden om de stabiliteit tijdens het bochtwerk te hel-
Hoofdstuk 6. Bochten nemen
36
pen [23]. We kunnen dus concluderen dat een proactieve aanpassing in principe beter is bij een constant invoersignaal op de scapulae. x0
Parameter
Zoekruimte
σ ts
[−0.30, 0.00] [5.00, 8.00]
-0.15 6.50
Parameter σ ts ∆σmin ∆σmax t0
x0
Zoekruimte
[−1, 0] [−1, 0] [0, 3π 4 ]
-0.051 6.627 0.000 0.100 0.000
(b) Dynamisch
(a) Statisch
Tabel 6.1: CMA-ES parameters voor scapulae: zoekruimte en startwaarden.
Analyse statische scapula
Snelheid vz (m/s)
De resultaten van de lokale zoektocht rond het optimum van de scapula geeft een goed beeld van de mogelijkheden van het gewricht. De resultaten hiervan staan afgebeeld in Figuur 6.4. Elk punt in deze grafiek stelt het gemiddelde van de drie beste gangen per servo positie voor.
0.28 0.27 0.26 0.25 0.24 0.23 0.22 0.21 0.2 0.19 0.01
f(σ) = 0.1 + σ
0.02
0.03
0.04 0.05 Scapulae σ (rad)
0.06
0.07
Figuur 6.4: Bijna lineaire karakteristiek van de statische aansturing van de scapulae.
Hoe hoger de scapula-positiewaarde, hoe verder de poten verwijderd worden van het lichaam. Na een waarde van σ = 0.07 rad wordt de robot instabiel. Dit is wat we verwachtten: het massamiddelpunt wordt te ver verwijderd van het steunmiddelpunt waardoor de robot omvalt omwille van de inwerkende zwaartekracht. Verrassend genoeg krijgen we ook lagere scapula-positiewaarden, waarbij de poten maar marginaal weinig naar buiten gezet worden, een onstabiele situatie. Hier wordt niet de robot, maar de simulatie
Hoofdstuk 6. Bochten nemen
37
zelf onstabiel. Dit is vermoedelijk te wijten aan het feit dat ODE (de achterliggende fysica simulator) maar tot een zekere nauwkeurigheid werkt. Uit de analysecurve (Figuur 6.4) blijkt dat de draaisnelheid met behulp van scapulae ruwweg een lineaire functie is van de gebruikte positie van de scapulae. Desalniettemin is het door de ruizigheid van de gevonden resultaten niet aan te raden om op basis hiervan een regelaar maken; deze zou immers te inaccuraat zijn.
5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0
0.18 0.16 0.14 0.12 0.1 0.08
σ2
Score
Merk op dat voor σ = 0.48 rad een betere waarde (0.27 m/s) gevonden werd dan bij de oorspronkelijke CMA-ES zoektocht. Dit toont nogmaals aan dat het woord optimaal in deze context zeker niet gelijk is aan het absolute optimum.
0.06 0.04 0.02 0
20
40 60 Generatie
80
0 100
Figuur 6.5: Leerevolutie CMA-ES voor vertebra: score (stippellijn) en variantie (volle lijn).
6.3.2
Scapulae (dynamisch)
Methode Zoals voorheen vermeld, zijn er twee manieren waarop we dynamische scapulae kunnen gebruiken. We gaan hier voort op de tweede manier waarbij we een extra slagbeweging in de draairichting veroorzaken, omdat deze geen aanpassingen aan het robotmodel vereist. Deze slagbeweging wordt bij de geobserveerde dieren enkel gemaakt door de voorste poot en dit lijkt ook ons de meest logische keuze. Hiervoor moduleren we een tweede signaal op het constante invoersignaal σLF dat we tot nu toe gebruikten (zie fig 6.6). Het bovenste signaal stelt het heupsignaal γ voor, het onderste het gemoduleerde scapula signaal. We kiezen hier voor een sinusoïdaal signaal
Hoofdstuk 6. Bochten nemen
38
A ω
Δσmax Δσmin
A σmax σ σmin
ω π
to
2π
Figuur 6.6: Schematische voorstelling van het heupsignaal (boven) en de modulatie van de slagbeweging op constant scapula signaal (onder).
vanaf tijdstip t0 met als enige niet vastgelegde variabele de amplitude. σmax bepaalt in welke mate we de poot naar binnen brengen tijdens de slagbeweging. Merk op dat we de poot iets naar buiten zetten alvorens de slagbeweging te beginnen om deze nog net iets meer energie te geven. Ook windhonden lijken dit te doen [25]. Hiervoor introduceerden we de variabele σmin . Het resulterende scapulasignaal voor de linkervoorpoot wordt dan: ω = 2πf t σ min + σmax cos(ω + π) σLF = σ
als (ω mod 2π) ≥ t0 anders
Hierbij geldt dat σmin ≤ σ ≤ σmax , met σ als de oorspronkelijk scapula waarde die nog steeds in de andere poten gebruikt wordt zoals besproken in de vorige sectie. De aangeleerde waarden voor de parameters staan in tabel 6.1b. Voor de codering van de parameters in CMA-ES gebruiken we afgeleide variabelen ∆σmax en ∆σmin , de maximale afwijking naar boven/onder op het oorspronkelijke scapula signaal. σmin = σ − ∆σmin σmax = σ + ∆σmax
Resultaat Uit de leercurve (Figuur 6.10) kunnen we afleiden dat zeer snel een goed resultaat gevonden wordt. Dit kunnen we verklaren door het feit dat we al beginnen met een vrij goede gang
Hoofdstuk 6. Bochten nemen
39
(die met statische scapulae). De optimale laterale snelheid bedraagt vz = 0.49 m/s, een enorme verbetering op het statische gebruik van de scapulae.
9000
0.1
8000
0.08
7000
0.06
5000
σ2
Score
6000 4000
0.04
3000 2000
0.02
1000 0
0
20
40 60 Generatie
80
0 100
Figuur 6.7: Leerevolutie CMA-ES voor dynamische scapula: score (stippellijn) en variantie (volle lijn)
Analyse dynamische scapulae Voor het bepalen van het karakter van de dynamische scapulae moeten we een driedimensionale lokale zoektocht ondernemen (in de tijdsdimensie, ∆σmin en ∆σmax ). De resultaten worden in Figuur 6.8 voorgesteld. Hierin wordt het gemiddelde van de drie beste resultaten samen met het beste resultaat voor verschillende ∆σmax waarden weergegeven. De resultaten staan dus in functie van hoe ver we de poot naar binnen brengen tijdens het uitvoeren van de slagbeweging. Voor een te grote initiele scapula-positie (groter dan 0.275 rad) verliest de robot het evenwicht en valt om. Ook hier merken we een lineair verband op tussen de scapulapositie en de uiteindelijk draaisnelheid. De resultaten zijn minder ruizig dan bij het vorige experiment en mits enige extra aanpassingen lijkt het zeker mogelijk om een nauwkeurige controlestrategie te maken op basis van het dynamisch aansturen van de voorste scapulae.
6.3.3
Vertebra
Methode Voor de vertebra experimenten moeten we één servo signaal aanleren, dat van de ruggengraat. Analoog aan de vorige experimenten moeten we ook hier het ogenblik waarop dit
Hoofdstuk 6. Bochten nemen
40
Snelheid vz (m/s)
0.55
f(∆σmax) = 0.3 + 0.72 ∆σmax
0.5 0.45 0.4 0.35 0.3 0.25
0
0.05 0.1 0.15 0.2 0.25 Maximale uitwijking amplitude scapula (rad)
0.3
Figuur 6.8: Lineaire karakteristiek van de dynamische aansturing van de scapulae uitgemiddeld over de drie beste waarden (behaalde maxima worden aangeduid door een cirkel).
signaal aangelegd wordt aanleren teneinde instabiliteiten te vermijden. 0 als t ≤ ts ρout = ρ anders De grenzen en startwaarden van de zoekruimte staan in Tabel 6.2. Tabel 6.2: CMA-ES parameters voor de vertebra experimenten: zoekruimte en startwaarden.
Parameter
Zoekruimte
x0
ρ ts
[−0.05, 0.0] [5, 8]
-0.02 6.55
Resultaat De optimale bereikte zijwaartse snelheid vz bedraagt hier 0.32 m/s, een betere prestatie dan met statische scapulae alleen. De resulterende evolutie van CMA-ES wordt afgebeeld in Figuur 6.5.
Analyse vertebra Hier werd een lokale zoektocht gelijkaardig aan die bij de karakteranalyse van de scapulae gebruikt (afgebeeld in Figuur 6.9). Ook hier zien we ruwweg een lineair verband tussen de
Hoofdstuk 6. Bochten nemen
41
Snelheid vz (m/s)
vertebrapositie en de laterale snelheid. Qua grilligheid liggen de resultaten ergens tussen die van de statische en de dynamische scapula-aansturing. Het lijkt mogelijk om ook op basis van deze resultaten een controlestrategie te ontwerpen mits enige feedback voor het corrigeren van fouten.
0.34 0.32 0.3 0.28 0.26 0.24 0.22 0.2 0.18 0.16 0.14
f(ρ) = 0.1 + 9.2ρ
0.006 0.008
0.01
0.012 0.014 0.016 0.018 Vertebra ρ (rad)
0.02
0.022 0.024
Figuur 6.9: Optimale zijwaartse snelheid in functie van vertebrapositie
6.3.4
Scapula en vertebra gecombineerd
Methode Uit de voorgaande experimenten bleek dat vertebra actief aansturen net iets beter presteert dan scapulae actief aansturen. We gaan in deze sectie na of de combinatie een meerwaarde levert. De achterliggende idee is dat de scapulae de centrifugale kracht ten gevolge van het nemen van de bocht kan tegenwerken tegenwerken [23].
Resultaat Na ongeveer 100 generaties bekomen we convergentie in een stabiel optimum (zie Figuur 6.3.4). De optimale laterale snelheid vz bedraagt hier 0.35 m/s, een verbetering op het vorige experiment waar we enkel de vertebra gebruikten. Dit resultaat is niet beter dan de dynamische aansturing van de scapulae. We kunnen wel concluderen dat we bij het draaien met een vertebra alleszins best ook een scapula gebruiken.
42
140000
0.7
120000
0.6
100000
0.5
80000
0.4
60000
0.3
40000
0.2
20000
0.1
0
0
50
100 150 Generatie
200
σ2
Score
Hoofdstuk 6. Bochten nemen
0 250
Figuur 6.10: Leerevolutie CMA-ES voor de combinatie van beide gewrichten: score (stippellijn) en variantie (volle lijn).
Analyse van de scapula en vertebra combinatie We bestuderen de combinatie van scapulae en vertebra d.m.v. een lokale zoektocht op de scapula- en vertebraparameters. De resultaten hiervan worden weergegeven in Figuur 6.11. Ook hier werden de resultaten uitgemiddeld over de drie beste gangen per servo-combinatie. Wegens beperkte rekenkracht is deze grafiek zeer ruw en ook hier zijn de resultaten vrij ruizig. Desalniettemin kunnen we proberen een paar conclusies te trekken uit deze grafiek. Er is een optimaal gebied te zien centraal bovenaan ((σ, ρ) ∈ [0.02, 0.14] × [0.05, 0.1]). Dit is logisch, want grotere draaistanden van de servo’s behoren een betere bocht te geven (tot op een zeker kritisch punt waarna de robot onstabiel wordt). Wanneer we de scapula positie minimaal houden (σ < 0.04), presteert de robot slecht voor grote vertebraposities omwille van stabiliteitsverlies. Dit stabiliteitsverlies lijkt opgevangen te worden door de scapulae, te zien aan een verschuiving van betere waarden naar het centrum (voor σ ≈ 0.02 naar σ ≈ 0.05 verschuift het optimale gebied van ρ ≈ 0.06 naar ρ ≈ 0.08 ). Het spreekt voor zich dat op basis van deze resultaten het maken van een nauwkeurig controlealgoritme nog niet mogelijk is. Verdere experimenten zijn hiervoor aangewezen. Idealiter zouden deze experimenten met een snellere gang moeten uitgevoerd worden dan deze die wij gebruikt hebben, om het effect van scapulae ten volle te kunnen benutten.
Hoofdstuk 6. Bochten nemen
43
Vertebra ρ (rad)
0.5 0.08
0.4
0.06
0.3
0.04
0.2
0.02
0.1 0.04
0.08 0.12 Scapulae σ (rad)
0
0.16
Figuur 6.11: Analyse van de combinatie van beide gewrichten. Optimale zijwaartse snelheid (kleur) in functie van scapula en vertebraposities.
6.4
Conclusie
Verschillende morfologische aanpassingen werden getest. Hieruit bleek dat de vertebra beter presteert dan de scapulae onder actieve aansturing door een constant signaal. De vertebra combineren met scapulae is waarschijnlijk aangewezen bij sterkere bochten om de centrifugale krachten tegen te gaan. Zowel de ’optimale’- als de ’analyse’-experimenten bevestigen dat dynamisch actief aansturen leidt tot de beste resultaten. Bovendien zijn de gevonden resultaten met actieve dynamische aansturing ook redelijk nauwkeurig. Een regelaar maken die de robot doet draaien op basis van een controlealgoritme m.b.v. deze strategie is dus zeker mogelijk. Een samenvatting van de resultaten wordt weergegeven in Tabel 6.3. Tabel 6.3: Vergelijking van de resultaten van de verschillende experimenten, gerangschikt op prestatie.
Gewricht
Actief/Passief
Statisch/Dynamisch
vz
Scapula Scapula en vertebra Vertebra Scapula Oorspronkelijk model
A A/A A A nvt
D S/S S S S
0.49 0.35 0.32 0.26 0.07
m/s m/s m/s m/s m/s
Er zijn nog verschillende experimenten mogelijk die interessante informatie kunnen leveren omtrent het gebruik van de morfologische aanpassingen. De belangrijkste categorie lijkt hierbij de combinatie tussen actief en passief aangestuurde servo’s. Zo zou de alternatieve methode die uitgewerkt werd in Sectie 2.3.2 voor trage gangen tot nog betere resultaten kunnen leiden.
Hoofdstuk 7
Besluit
Over rechtdoor lopen ... Uit de experimenten betreffende rechtdoor lopen is gebleken dat een aangepaste versie van CMA-ES een zeer nuttig hulpmiddel is voor het vinden van gangen. Er werden experimenten uitgevoerd rondom de drafgang en gebonden gangen. Hieruit kunnen we concluderen dat het robotmodel uitstekend geschikt is voor de draf, maar minder voor de gebonden gangen. Hiervoor kunnen nieuwe morfologische aanpassingen nuttig zijn.
Over het bepalen van een optimale draaistrategie bij vierpotige robots ... We hebben verschillende draaistrategieën geanalyseerd. Het oorspronkelijke model was niet geschikt om te draaien en morfologische aanpassingen moesten gemaakt worden. Uit de analyses van de morfologische aanpassingen kunnen we de volgende conclusies trekken: 1. Scapulae statisch proactief aanpassen is in se een geldige draaistrategie. 2. Scapualae statisch aansturen levert minder goed bochten op dan de vertebra statisch aansturen. 3. Bij actieve aansturing van de vertebra tegen hoge draaisnelheden worden scapulae belangrijk om de centrifuge krachten tegen te werken. 4. Scapulae dynamisch aansturen levert de beste resultaten. Verdere experimenten rond het passief gebruik van gewrichten lijken nodig om een volledig beeld te krijgen van de mogelijkheden van deze gewrichten. Tijdens het uitvoeren van de experimenten hebben we enkele stellingen empirisch gevalideerd, deze worden samengevat in Appendix B.
Over het ideaalbeeld van de robots ... De aandachtige lezer zal bij het lezen van dit werk opgemerkt hebben dat er heel wat komt bij kijken om een robot flexibel te laten bewegen. We zijn nog steeds niet in staat om de
Hoofdstuk 7. Besluit
45
robot volledig vrij en autonoom te laten bewegen, maar we hebben wel het vraagstuk van het vinden van een optimale draaistrategie uitgespit en deels opgelost. Een kleine stap in een grote evolutie ...
Appendices
Bijlage A
Afkortingen
UGent Universiteit Gent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
CMA-ES Covariance Matrix Adaptation - Evolutionary Strategy . . . . . . . . . . . . . . . . . . . . 13
EPFL École Polytechnique Fédérale de Lausanne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
AMARSi Adaptive Modular Architectures for Rich Motor Skills . . . . . . . . . . . . . . . . . . . . . . 5
ODE Open Dynamics Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
CSA Cumulatieve Stapgrootte Adaptatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
MIT Massachusetts Institute of Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
AIBO Artificial Intelligence roBOt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
CAD Computer-Aided Design
TCP Transmission Control Protocol
VRML Virtual Reality Modeling Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Bijlage B
Stellingen
Stelling 1. Verschillende houdingen leveren verschillen in de krachtverdeling uitgevoerd door de robot en dus verschillen in voortbeweging. Stelling 2. Het asymmetrisch positioneren van de poten in het transversale vlak (d.m.v. de vertebra) verhoogt de beweegbaarheid van de robot in het transversale vlak. Stelling 3. Het asymmetrisch positioneren van de poten in het coronale vlak (d.m.v. scapula) verhoogt de beweegbaarheid van de robot in het transversale vlak en kan de stabiliteit tijdens het snel draaien verhogen. Stelling 4. Het combineren van Stelling 2 en 3 verhoogt de draaicapaciteit. Stelling 5. Dynamisch positioneren van scapula gewrichten is beter t.o.v. statisch positioneren bij draaien.
Bijlage C
Codefragmenten
Codefragment C.1: VRML Vertebra node Webots-model DEF VERTEBRA_SERVO Servo { children [ DEF FR4_BODY_PARTS Solid { ... //definitie achterkant lichaam } DEF MOTORS_GROUP Solid { ... //definite motors } DEF LEFT_HIND_SCAPULA_SERVO Servo { ... //definitie scapula LH } DEF RIGHT_HIND_SCAPULA_SERVO Servo { ... //definitie scapula RH } Shape { appearance Appearance { ... //definitie uiterlijk materiaal servo } geometry Cylinder { height 0.02 radius 0.01 } } ] name "VERTEBRA_servo" boundingObject Group { children [ USE BIG_BOARD USE RIGHT_REAR_UP_MOTOR USE LEFT_REAR_UP_MOTOR ] } physics USE HALF_HALF_MOTOR_INERTIA maxForce 1000 minStop -0.3 maxStop 0.3 }
Codefragment C.2: VRML Scapula node Webots-model DEF LEFT_FORE_SCAPULA_SERVO Servo { translation 0.09 0.01 -0.075 rotation 1 0 0 1.6 children [ DEF dummy1 Servo { children [ DEF LEFT_FORE_HIP_SERVO Servo { .... //codering linkse voorpoot } ... //codering dummy servo ] ] name "LEFT_FORE_scapula_servo" boundingObject DEF FEMUR Transform { translation 0 -0.0275 0 children [ Shape { appearance DEF GREEN_PLASTIC_APP Appearance { material Material { diffuseColor 0.752941 0.862745 0.505882 } } geometry Box { size 0.0154 0.055 0.0033 } } ] } physics Physics { density 1800 centerOfMass 0 -0.035 0 } maxForce 1000 minPosition -0.3 maxPosition 0.3 minStop -0.3 maxStop 0.3 }
Bijlage D
Inhoud CD
Video Al het videomateriaal bevindt zich in de submap /video. • bound.avi: demonstratie van de gebonden gang en de hangende poten • vertebra.avi: demonstratie van het gebruik van de ruggengraat bij een kat en de robot • scapula.avi: demonstratie van het gebruik van scapulae in zowel dieren als de robot (zowel statisch als dynamisch actief aangestuurd) • traject.avi: demonstratie van het leertraject voor gangen bij mensen en de robot
Code Alle python code bevindt zich in de /code/python/. De C++ code voor het aansturen van de nieuwe servo’s bevindt zich in /code/webots/controller/basic/.
Robotmodel De VRML code voor de aanpassingen aan het model staan telkens beschreven in world bestanden (.wrld) in /code/webots/world/.
Bibliografie [1] Honda robot asimo running stairs, CES, 2007. [2] R. McNeill Alexander. Principles of Animal Locomotion. Princeton University Press, 2003. [3] I. Asimov. The early Asimov, volume 3. Del Rey, 1972. [4] A. Auger and N. Hansen. A Restart CMA Evolution Strategy With Increasing Population Size. 2005 IEEE Congress on Evolutionary Computation, pages 1769– 1776, 2005. [5] R. Franklin, W. Bell, and R. Jander. Rotational locomotion by the cockroach (Blattella Germanica). Journal of Insect Physiology, 27(4):249–255, 1981. [6] M. Fujita. AIBO: Toward the era of digital creatures. The International Journal of Robotics Research, 20(10):781–794, 2001. [7] D. Gong, J. Yan, and G. Zuo. A review of gait optimization based on evolutionary computation. Applied Computational Intelligence and Soft Computing, 2010:1–12, 2010. [8] D. Graham. A behavioural analysis of the temporal organisation of walking movements in the 1st instar and adult stick insect (Carausius morosus). Journal of Comparative Physiology A: Neuroethology, Sensory, Neural, and Behavioral Physiology, 81(1):23– 52, 1972. [9] N. Hansen. The CMA evolution strategy: a comparing review, volume 102 of Studies in Fuzziness and Soft Computing, chapter 4, pages 75–102. Springer Berlin Heidelberg, 2006. [10] N. Hansen. The CMA evolution strategy : a tutorial. Identity, pages 1–32, 2010. [11] N. Hansen and A. Ostermeier. Adapting arbitrary normal mutation distributions in evolution strategies: The covariance matrix adaptation. In Proceedings of the 1996 IEEE International Conference on Evolutionary Computation, 1996 Ieee International Conference on Evolutionary Computation, pages 312–317. I E E E, 1996. [12] M. Hildebrand. Vertebrate locomotion an introduction how does an animal’s body move itself along? BioScience, 39(39):764–765, 1989. [13] D. Jindrich and R. Full. Many-legged maneuverability: dynamics of turning in hexapods. The Journal of experimental biology, 202 (Pt 12:1603–23, June 1999.
[14] I. Klíma. Karel Čapek: life and work. Catbird Press, 2002. [15] O. Michel. Webots TM: Professional mobile robot simulation, issn 1729-8806. International Journal of Advanced Robotic Systems, 1(1):39–42, 2004. [16] R. Pfeifer and J. Bongard. How the body shapes the way we think a new view of intelligence. MIT Press, 2006. [17] M.H. Raibert. Legged robots that balance, volume 1. MIT Press, 1986. [18] M.H. Raibert. Trotting, pacing and bounding by a quadruped robot. Journal of Biomechanics, 23(1):79–98, 1990. [19] M. Römmermann, M. Edgington, J. Metzen, J. de Gea, Y. Kassahun, and F. Kirchner. Learning walking patterns for kinematically complex robots using evolution strategies. Parallel Problem Solving from Nature, pages 1091–1100, 2008. [20] S. Rutishauser, A. Sprowitz, L. Righetti, and A.J. Ijspeert. Passive compliant quadruped robot using Central Pattern Generators for locomotion control. 2008 2nd IEEE RAS EMBS International Conference on Biomedical Robotics and Biomechatronics, (c):710–715, 2008. [21] A. Seyfarth, H. Geyer, S. Lipfert, J. Rummel, Y. Minekawa, and F. Iida. Running and walking with compliant legs. Artificial Intelligence, 340:1–16, 2006. [22] S. Talebi, I. Poulakakis, E. Papadopoulos, and M. Buehler. Quadruped robot running with a bounding gait. Engineering, pages 1–8, 2000. [23] K. Tsujita, H. Toui, and K. Tsuchiya. Dynamic turning control of a quadruped robot using nonlinear oscillators. 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566), (0):969–974. [24] A. Tuleu, M. Ajallooeian, A. Spröwitz, P. Löpelmann, and A.J. Ijspeert. Trot gait locomotion of a cat sized quadruped robot. emn.fr, pages 1–4, 2011. [25] J.R. Usherwood and A.M. Wilson. No force limit on greyhound sprint speed. Nature, 438(7069):753–754, 2005. [26] D. Wettergreen and C. Thorpe. Gait generation for legged robots. Proceedings of the IEEERSJ International Conference on Intelligent Robots and Systems, (July):1413– 1420, 1992. [27] F. Wyffels, M. D’Haene, T. Waegeman, K. Caluwaerts, C. Nunes, and B. Schrauwen. Realization of a passive compliant robot dog. In Proceedings of the 2010 3rd IEEE RAS & EMBS International conference on Biomedical Robotics and Biomechanics, page 882, 2010.
[28] V. Zolotov, L. Frantsevich, and E.-M. Falk. Kinematik der phototaktischen Drehung bei der Honigbiene (Apis Mellifera L.). Journal of Comparative Physiology A: Neuroethology, Sensory, Neural, and Behavioral Physiology, 97(4):339–353, 1975.