De la recherche

Des robots qui s’adaptent aux dommages en seulement quelques minutes

Notre équipe conçoit des algorithmes qui permettront aux futurs robots de s’adapter aux imprévus. Nous les avons testés pour permettre à un robot hexapode de s’adapter à différents dommages mécaniques, par exemple la perte d’une patte.

Photo : Antoine Cully/UPMC Licence Creative Commons Attribution

Photo : Antoine Cully/UPMC - Licence Creative Commons Attribution.

Après l'accident de la centrale de Fukushima, en 2011 au Japon, les autorités se sont tournées vers les roboticiens : pour évaluer les dégâts, fermer les vannes et couper les systèmes encore actifs, il valait mieux envoyer des robots que risquer des vies. Malheureusement, les robots se sont souvent avérés incapables d'effectuer leur mission ; plusieurs d'entre eux sont même encore coincés dans la centrale.

Les roboticiens furent déçus. Mais ils ne furent pas étonnés : concevoir des robots capables de faire face aux situations non anticipées est un défi que la robotique commence tout juste à effleurer. En effet, si les roboticiens ont obtenu d'impressionnants succès dans l'industrie manufacturière, il s'agit là d'un environnement contrôlé où tout est fait pour minimiser les imprévus. Par exemple, les robots sont dans des cages pour éviter toute interférence avec les ouvriers. Tout se complique quand les robots ont besoin à la fois d'être polyvalents (ouvrir une vanne, monter un escalier...) et de faire face à des environnements complexes (par exemple, une centrale partiellement détruite). Dans ce cas, presque tout peut arriver !

Dans nos travaux, nous essayons de donner aux robots des moyens pour mieux réagir en cas d'imprévus. Nous nous intéressons tout particulièrement aux situations où le robot est physiquement endommagé. Par exemple, comme on le voit sur la vidéo, comment un robot hexapode (un robot « insecte ») peut-il continuer sa mission avec une patte cassée ?

Vidéo (en anglais) accompagnant l'article publié dans Nature : ”Robots that can adapt like animals”.

L'approche la plus intuitive est sans doute d'embarquer dans le robot des systèmes d'autodiagnostic afin de comprendre la panne. Ainsi, un robot marcheur pourrait être équipé d'une caméra qui observe ses membres ; s'il se cassait une jambe, il pourrait alors mesurer la déformation de la patte et ainsi adapter son comportement. Néanmoins, établir un diagnostic correct est souvent très difficile car cela nécessite beaucoup de capteurs et de calculs, ce qui augmente le prix du robot. Cela implique aussi de les placer au bon endroit, ce qui nécessite d'avoir anticipé tous les cas possibles.

Contrairement aux ingénieurs, les animaux utilisent une stratégie qui ne nécessite pas de diagnostic (ils ne sont pas médecins !). Par exemple, un chien avec une cheville foulée ne comprend pas ce qui est arrivé à ses tendons pour trouver une manière de boiter. À la place, il essaie différents comportements (ici, plusieurs manières de boiter), évalue leur performance pour la tâche considérée (qu'est-ce qui lui permet de se déplacer sans avoir trop mal ?), et choisit celle qui fonctionne le mieux (la marche qui maximise sa vitesse de déplacement). Un robot peut faire de même à l'aide d'un algorithme, que l'on appelle généralement un algorithme d'apprentissage par renforcement : il peut essayer un comportement (par exemple une manière de marcher), mesurer sa performance (par exemple, mesurer sa vitesse de déplacement avec une caméra et un algorithme de reconstruction 3D), puis sélectionner le comportement qui a le plus de chance de mieux fonctionner. Néanmoins, aucun des algorithmes existants ne semble capable de rivaliser avec les animaux : typiquement, ces algorithmes nécessitent des centaines d'essais pour trouver une nouvelle manière de marcher, alors que les animaux semblent y arriver en quelques essais et quelques minutes seulement.

Depuis plusieurs années, notre équipe travaille sur ce problème : permettre aux robots de s'adapter par essai-erreur presque aussi vite que des animaux. Notre démarche part de l'observation que les êtres vivants n'apprennent jamais à partir d'une page blanche, contrairement aux algorithmes classiques d'apprentissage par renforcement. Plus précisément, les animaux sont guidés par leurs instincts, issus de milliards d'années d'évolution, et par leur expérience, accumulée depuis la naissance. Néanmoins, aucun animal ne s'entraîne à marcher à trois pattes pour être « prêt » en cas de blessure ! Dit autrement, les animaux basent ces « guides » sur leur corps en bonne santé. Pour permettre à un robot d'apprendre rapidement, nous suivons une approche similaire : nous le dotons de bons « instincts », basés sur ce que le robot est capable de faire lorsqu'il est intact. Même si le robot est endommagé, il peut utiliser cette connaissance pour s'adapter car les comportements qui n'utilisent pas ou peu les parties endommagées fonctionneront de manière similaire sur le robot intact et sur le robot endommagé.

Techniquement, ces instincts sont construits avec une forme particulière d'algorithme évolutionniste (nous appelons cette forme un « algorithme d'illumination »). Cet algorithme commence avec un ensemble aléatoire de comportements potentiels, les teste avec une simulation du robot intact, et identifie les plus performants (pour un robot marcheur, ceux qui mènent aux meilleures vitesses de déplacement) ; puis l'algorithme « mute » ces meilleurs comportements en ajoutant des variations aléatoires, il les teste en simulation, garde à nouveau les meilleurs, etc. Contrairement aux algorithmes évolutionnistes classiques (par exemple, un algorithme génétique), cet algorithme ne cherche pas « LA » meilleure solution. À la place, il cherche le meilleur comportement de chaque famille : la façon de marcher le plus vite possible avec six pattes, avec cinq pattes et demie, en mettant le poids sur l'arrière, etc. Parmi les millions de façons différentes de marcher, l'algorithme en retient un peu moins de quinze mille, toutes différentes et intéressantes. De plus, il les organise sous la forme d'une « carte » de façon que les comportements qui se ressemblent soient proches.

Quand le robot s'aperçoit qu'il ne marche plus aussi bien que prévu, il utilise cette carte de deux manières. Premièrement, la carte guide ses essais vers les solutions les plus prometteuses compte tenu de ses connaissances (par exemple, marcher à six pattes est le plus efficace pour un robot insecte) ; deuxièmement, quand le robot teste un comportement, il met à jour sa prédiction de performance pour ce comportement, mais aussi pour les comportements voisins, en fonction de leur distance au comportement testé. Ainsi, après chaque essai, le robot améliore sa prédiction des comportements qui ont le plus de chances de fonctionner malgré le dommage, jusqu'à ce qu'il en essaie un suffisamment performant.

Nous avons testé notre algorithme avec notre robot hexapode endommagé de cinq manières différentes (une patte perdue, deux pattes perdues, une patte cassée en deux, une patte débranchée, une patte réparée grossièrement) dont le but est de marcher le plus vite possible en ligne droite. Pendant chaque essai, ce robot mesure avec une caméra 3D (similaire aux caméras Kinect vendues par Microsoft pour les jeux vidéo) sa vitesse de déplacement, c'est-à-dire sa performance. Pour chacun des dommages testés, le robot a pu trouver un comportement compensatoire en moins de deux minutes et d'une quinzaine d'essais. Il y arrive même souvent en moins d'une minute ! Nous avons aussi testé notre algorithme sur un bras robot endommagé de quatorze manières différentes et nous avons obtenu des résultats similaires.

Ce nouvel algorithme ouvre la possibilité de fabriquer des robots capables de s'adapter aux imprévus en quelques minutes. Ces robots seraient plus autonomes et plus robustes que les robots actuels. Néanmoins, cet algorithme nécessitera encore plusieurs années de travail avant de pouvoir être exploité sur des robots polyvalents comme ceux utilisés après l'accident de Fukushima. En particulier, nos robots n'arrivent pour l'instant à maximiser leur performance que sur une unique tâche dont la performance est bien définie (ici, marcher) : dans le futur, il faudra rendre possible le transfert de connaissance, afin que ce qui est appris pour une tâche (par exemple, marcher) puisse servir à une autre (par exemple, attraper un objet avec le pied).

Niveau de lecture

Aidez-nous à évaluer le niveau de lecture de ce document.

Il vous semble :

Si vous souhaitez expliquer votre choix, vous pouvez ajouter un commentaire (qui ne sera pas publié).