Le grand intérêt de cette thèse est l’approche abstraite du problème qui permet de couvrir un grande variété de cas. Ceci est mis en avant dans ce chapitre au travers d’exemples variés.
Les exemples ci-après utilisent la librairie open-source Humanoid Path Planner. Les algorithmes présentés dans cette thèse, ainsi que les travaux de recherche d’autres membres de l’équipe Gepetto, y ont été intégrés.
Cette librairie traite le problème de planification de mouvement. Les principales caractéristiques sont les suivantes:
Le tableau suivant compare HPP avec OMPL, une librairie de planification de mouvement couramment utilisée. La vidéo suivante montre les benchmarks utilisés pour la comparaison.
{% youtube 01K_nmax9E0?start=237 class=”center-block” poster=/img/thesis/posters/ompl_bench.jpg %}
scenario | min time (s) | avg time (s) | ||||||
---|---|---|---|---|---|---|---|---|
HPP-D | HPP-C | OMPL | OMPL-NR | HPP-D | HPP-C | OMPL | OMPL-NR | |
Pipedream-Ring | 0.065 | 0.043 | 0.458 | 0.618 | 1.24 | 2.05 | 3.00 | 4.23 |
Abstract | 0.159 | 0.408 | 23.5 | 14.3 | 47.6 | 34.4 | 107 | 107 |
Cubicles | 0.049 | 0.024 | 0.096 | 0.118 | 0.271 | 0.130 | 0.277 | 0.329 |
scenario | max time (s) | success rate (%) | ||||||
---|---|---|---|---|---|---|---|---|
HPP-D | HPP-C | OMPL | OMPL-NR | HPP-D | HPP-C | OMPL | OMPL-NR | |
Pipedream-Ring | 6.52 | 7.35 | 10.4 | 14.1 | 100 | 100 | 100 | 100 |
Abstract | 258 | 178 | 297 | 270 | 94 | 94 | 96 | 98 |
Cubicles | 0.902 | 0.946 | 0.665 | 1.06 | 100 | 100 | 100 | 100 |
scenario | avg number of nodes | time-out (s) | |||
---|---|---|---|---|---|
HPP-D | HPP-C | OMPL | OMPL-NR | ||
Pipedream-Ring | 2283 | 2452 | 16100 | 22681 | 20 |
Abstract | 11927 | 10807 | 177914 | 181427 | 300 |
Cubicles | 495 | 302 | 261 | 307 | 20 |
Un prototype d’interface de programmation de robot a été développé. La vidéo suivante a été réalisée avec HPP en suivant la méthode détaillé ici
{% video http://projects.laas.fr/gepetto/uploads/Members/fiad-full-sequence.mp4 560px 315px center-block %}
Le robot Baxter intervertit la position de boîtes, avec un puis deux bras. Ces problèmes ne sont pas monotones, c’est-à-dire qu’il n’existe pas de solution où chaque objet est manipulé au plus une fois, les uns après les autres. Cet exemple montre la capacité du planificateur à trouver des positions de boîtes intermédiaires ainsi qu’à considérer des manipulations simultanées.
{% youtube kptp-zZw634?start=4&end=34 class=”center-block” poster=/img/thesis/posters/baxter_3box.jpg %}
Le robot PR2 doit prendre un objet à l’intérieur d’un tiroir. La contrainte de stabilité assure que l’objet se déplace quand le tiroir est déplacé. Elle à l’avantage d’être complètement indépendante des objets considérés.
La séquence de tâche n’est pas donné. Le planificateur découvre une solution où le robot ouvre le tiroir. Cet exemple montre la capacité d’exploration du planificateur. Il est capable de considérer des objets à la même position au début et à la fin.
{% youtube iRJtmt7RzDM class=”center-block” %}
Le problème de locomotion peut être modélisé comme un problème de manipulation, comme le montre cet exemple. La position des pieds au sol représente un feuilletage. Ce problème est donc sujet au problème de feuillates croisés. La première vidéo utilise un critère de statibilité simple reposant sur le fait que les pieds sont à hauteur constante. La second vidéo utilise le critère de stabilité détaillé plus tôt.
Cet exemple illustre également un cas avec feuilletages croisés.
{% youtube kptp-zZw634?start=53 class=”center-block” poster=/img/thesis/posters/romeo_placard.jpg %}
Dans cet exemple, le planificateur infère qu’il doit ouvrir la porte du placard pour attraper l’objet. L’équilibre du robot est géré en deux étapes. Tout d’abord, on calcule un chemin pour le robot glissant, comme sur la vidéo ci-dessous. Ensuite, le chemin peut être transformé en un chemin faisable dynamiquement en utilisant la méthode détaillé ici.
{% youtube kptp-zZw634?start=34&end=50 class=”center-block” poster=/img/thesis/posters/romeo_fridge.jpg %}
\(SO(3)\) est représenté par des quaternions, avec les opérateurs différence et addition comme définis dans le chapitre 2. Les opérations de différence entre deux quaternions et d’addition d’une vitesse à un quaternion ↩