Dans un article récent, des chercheurs du groupe Microsoft Autonomous Systems and Robotics ont montré comment ChatGPT d’OpenAI peut être utilisé pour des applications robotiques, notamment comment concevoir des invites et comment diriger ChatGPT pour qu’il utilise des bibliothèques robotiques spécifiques pour programmer la tâche à accomplir.
Comme l’expliquent les ingénieurs de Microsoft, la robotique actuelle repose sur une boucle de rétroaction étroite entre le robot et un ingénieur chargé de coder la tâche, d’observer le comportement du robot et de le corriger en écrivant du code supplémentaire.
Dans la vision de Microsoft, ChatGPT pourrait être utilisé pour traduire une description en langage humain de la tâche à accomplir en code pour le robot. Il serait ainsi possible de remplacer l’ingénieur (dans la boucle) par un utilisateur non technique (dans la boucle) chargé uniquement de fournir la description originale de la tâche en langage humain, d’observer le robot et de fournir tout retour d’information sur le comportement du robot, toujours en langage humain, que ChatGPT transformerait également en code pour améliorer le comportement.
À l’aide de leur approche expérimentale, les chercheurs de Microsoft ont créé un certain nombre d’études de cas, dont la planification d’une tâche zéro pour demander à un drone d’inspecter le contenu d’une étagère, la manipulation d’objets à l’aide d’un bras robotique, la recherche d’un objet spécifique dans un environnement à l’aide des API de détection et de distance des objets, etc.
Dans tous ces cas, ChatGPT a été capable de générer le code pour contrôler le robot et de demander des clarifications pour mieux mener à bien la tâche lorsqu’il trouvait les entrées de l’utilisateur ambiguës, explique Microsoft.
Les travaux de Microsoft visant à rendre ChatGPT utilisable pour les applications robotiques se sont concentrés sur trois grands domaines d’investigation : la conception des invites utilisées pour guider ChatGPT, l’utilisation des API et la création de nouvelles API de haut niveau, et la fourniture d’un retour humain par le biais du texte. Ces trois domaines représentent les clés de voûte d’une méthodologie d’utilisation de ChatGPT pour des tâches robotiques.
Dans un premier temps, l’utilisateur définit un ensemble d’API de haut niveau ou de bibliothèques de fonctions que ChatGPT doit utiliser.
Cette bibliothèque peut être spécifique à un robot particulier et doit correspondre aux implémentations de bas niveau existantes de la pile de contrôle du robot ou d’une bibliothèque de perception. Il est très important d’utiliser des noms descriptifs pour les API de haut niveau afin que ChatGPT puisse raisonner sur leurs comportements.
Dans la deuxième étape, l’utilisateur fournit une description de l’objectif de la tâche spécifiée en termes d’API ou de fonctions disponibles.
L’invite peut également contenir des informations sur les contraintes de la tâche, ou sur la manière dont ChatGPT doit formuler ses réponses (langage de codage spécifique, utilisation d’éléments d’analyse auxiliaires).
Enfin, l’utilisateur évalue le code de ChatGPT, en utilisant un simulateur ou en inspectant le code, et fournit un feedback pour que ChatGPT corrige son code.
Lorsque le résultat est satisfaisant pour l’utilisateur, un robot peut être programmé à l’aide du code généré.
Microsoft lance également une plateforme collaborative à code source ouvert permettant aux utilisateurs de partager des stratégies d’incitation pour différentes catégories de robots, qui comprend pour l’instant toutes les incitations et conversations utilisées par l’équipe de Microsoft pour ses recherches. En outre, ils prévoient également d’ajouter des simulateurs et des interfaces robotiques pour tester les algorithmes générés par ChatGPT.