Pourquoi la visualisation des données est si importante en robotique
Adrian McNeil est cofondateur et directeur général de Foxglove, une start-up qui propose un logiciel puissant de gestion et de visualisation des données pour la robotique. Avant de fonder Foxglove, il dirigeait l'infrastructure et les outils de développement chez Cruise, entreprise spécialisée dans la conduite autonome.
McNeil s'intéresse à l'amélioration de la productivité des développeurs et estime que l'optimisation de la boucle de rétroaction avec les développeurs est essentielle pour innover rapidement en robotique.
Selon lui, lorsque nous pensons au développement de la robotique, nous imaginons souvent un processus logique et structuré. Même si nous ne supposons pas que c'est facile ou simple, nous pouvons penser qu'il est relativement objectif : le but final est évident et les étapes pour l'atteindre sont mesurables.
Mais nous oublions qu'au moment de développer de nouvelles technologies, nous avons besoin de méthodes tout aussi nouvelles pour les tester et résoudre leurs problèmes. Il ne s'agit pas seulement d'un nouveau robot, mais aussi d'outils et de processus entièrement nouveaux, qu'il faut inventer pour créer ce robot. Comme pour tout territoire inexploré, ces outils et processus sont encore en cours de développement ; ils évoluent avec le produit et les personnes qui le créent.

La visualisation des données est l'un des outils les plus importants de ce type. Elle présente des données complexes et détaillées dans un format pratique, ce qui permet de prendre des décisions tout aussi complexes et détaillées sur le fonctionnement du robot et sur les moyens de l'améliorer. Un tel outil élimine le bruit inutile et renforce les signaux importants.
« Elle apporte le sens et l'ordre indispensables à la nature incroyablement multidimensionnelle des données robotiques. Comme science exacte, que nous voulons que la robotique soit, c'est encore un exercice largement subjectif, avec d'innombrables jugements humains qui nous rapprochent d'un pas de notre objectif final : un monde où notre vie quotidienne est améliorée et enrichie par les technologies robotiques »
Développement logiciel traditionnel contre développement robotique
Pour bien comprendre l'importance de la visualisation des données en robotique, il faut d'abord comprendre en quoi le développement robotique diffère du développement logiciel traditionnel.
Diagnostiquer la cause première des problèmes dans le développement logiciel traditionnel est un processus relativement binaire : le code fait ce qu'il doit faire à une étape donnée, ou il ne le fait pas. On sait précisément ce qui doit se produire dans chaque scénario possible.
En suivant le chemin de l'erreur et en exécutant des tests à chaque étape — par exemple en enregistrant des valeurs, en vérifiant les résultats attendus et réels, en activant et désactivant certaines fonctions — les ingénieurs peuvent identifier assez précisément la ligne de code à l'origine du problème.

En revanche, le débogage des problèmes en développement robotique est rarement aussi linéaire. Comprendre ce qui n'a pas fonctionné dans un système robotique est généralement un processus beaucoup plus complexe et donc plus ouvert. Par exemple, lorsqu'un robot mobile autonome (AMR) heurte un autre objet, il n'existe pas de « chemin de code » évident ni de coupable.
Il existe d'innombrables raisons pour lesquelles cela a pu se produire, tout comme il existe de nombreuses raisons pour lesquelles une personne pourrait heurter un obstacle. Peut-être l'AMR n'a-t-il pas vu l'obstacle parce qu'il se trouvait derrière un coin, ou peut-être a-t-il mal calculé sa propre trajectoire pour éviter la collision. Les causes ne sont même pas liées au logiciel : les freins de l'AMR ont pu tomber en panne, ou la vue de sa caméra a pu être momentanément obstruée par quelque chose.
Il n'existe pas de protocole méthodique unique à suivre, et la racine du problème peut être causée par une série de petits problèmes interdépendants qui traversent plusieurs couches de la pile robotique. Les solutions sont souvent conditionnelles et situationnelles, si bien que, lors du débogage, les informations contextuelles doivent être prises en compte au même titre que le code affiché à l'écran.
La visualisation des données pour la robotique
Pour résoudre cette complexité du débogage, il faut une nouvelle génération d'outils sophistiqués permettant d'explorer de nombreux aspects des données robotiques. C'est là qu'intervient la visualisation des données robotiques.
Aux débuts de Cruise, entreprise qui développait des voitures autonomes, les employés ont constaté par eux-mêmes à quel point le développement de robots était pénible sans les outils adéquats.

Pour déboguer des données ou des résultats de simulation, les ingénieurs devaient installer un environnement de développement complet sur une machine Ubuntu, puis charger un petit nombre d'outils open source différents, comme rviz, rqt et d'autres. Ensuite, ils devaient lancer manuellement la lecture d'un fichier journal et réorganiser plusieurs fenêtres à l'écran pour pouvoir les utiliser simultanément.
Les ingénieurs pouvaient soigneusement disposer les fenêtres sur leur écran pour un flux de travail donné, mais les remplacer pour un autre flux de travail, ou les copier sur l'ordinateur d'un coéquipier, leur faisait perdre un temps précieux. Si ces outils accomplissaient chacun leur tâche, il était clair qu'ils n'avaient pas été conçus pour être utilisés ensemble, ni pour être employés avec une équipe plus large de roboticiens.
Ils étaient peu pratiques à utiliser seuls, difficiles à intégrer les uns aux autres, et impossibles à partager de façon utile avec des coéquipiers. La capacité à itérer sur les robots était fortement freinée, non pas par le talent de l'équipe, mais par l'incapacité à extraire rapidement des informations utiles des données.
Cela a donné lieu à un projet de hackathon, au cours duquel un groupe d'ingénieurs a vu une occasion d'améliorer ce flux de travail. Ils ont présenté un outil web de visualisation des données, qui a été si bien accueilli qu'il a suscité de vifs applaudissements et a finalement été transformé en outil interne doté de sa propre équipe dédiée.
Cet outil était Webviz : il a fini par être publié pour aider d'autres roboticiens à bénéficier d'une boîte à outils mieux intégrée. Avec le temps, l'entreprise a pris conscience de l'impact de Webviz sur Cruise et a décidé de fonder Foxglove afin de continuer à résoudre les problèmes courants de la robotique dans l'ensemble du secteur.

« Nous avons lancé Foxglove Studio pour aider les utilisateurs à visualiser et déboguer leurs données robotiques, et Foxglove Data Platform pour les aider à les stocker et à les gérer dans un dépôt central. Grâce à la visualisation des données, nous pouvons rapidement comprendre nos données — sous différents angles, avec différentes vues, pour différents flux de travail — afin de déterminer la prochaine étape du développement. C'est ainsi que nous pouvons explorer des situations non binaires et porter les jugements humains nécessaires pour faire entrer la robotique dans l'avenir »
La visualisation interactive et riche des données est essentielle, car elle aide les roboticiens à participer aux recherches plus ouvertes qu'exige le développement de la robotique. Elle leur permet d'utiliser leur intuition et leur expérience pour commencer à déboguer un problème donné. Elle les aide aussi à combiner les jugements subjectifs et objectifs, tout aussi importants, nécessaires au dépannage de leur travail.
Elle leur permet de voir d'un coup d'œil comment fonctionnent actuellement leurs robots et comment les améliorer, afin de pouvoir y apporter des modifications plus efficacement.
Différents outils de visualisation des données peuvent aider à porter différents jugements selon les tâches. Chaque étape d'un flux de travail de débogage ou d'analyse peut tirer profit d'une combinaison de divers outils. Par exemple, dans Foxglove Studio, les utilisateurs peuvent choisir parmi une vaste collection de panneaux de visualisation pour créer des mises en page de débogage personnalisées.
Chaque panneau a une fonction précise : dans l'un, on peut tracer des valeurs, dans un autre, repérer des coordonnées sur une carte, dans un troisième, afficher des modèles 3D dans une scène interactive. Qu'il s'agisse de dépanner la pile de planification d'un robot ou de suivre ses diagnostics, il existe un outil de visualisation adapté à la tâche.

Grâce aux riches visualisations interactives des données, les moyens peuvent enfin être à la hauteur des ambitions. Il est désormais possible d'explorer, d'analyser et de comprendre plus en profondeur des données qui étaient auparavant impénétrables, afin d'accélérer la progression vers l'objectif.
L'avenir de la robotique et de la visualisation des données
Malgré leur apparente objectivité, les progrès de la robotique ne sont pas exempts de choix subjectifs et créatifs. Même si le résultat final peut être concret, comme « le robot peut désormais manœuvrer sur le sol d'un entrepôt », les moyens employés par les chercheurs pour y parvenir forment un processus itératif sans fin, exigeant une intervention humaine importante.
« Pour présenter avec succès les robots au grand public, nous devons reconnaître que la robotique est un domaine plus ouvert, qui fait apparaître davantage de problèmes interdépendants, offre davantage de solutions situationnelles et exige donc des outils plus variés que le développement logiciel traditionnel »
Le développement robotique doit encore relever de nombreux défis : une infrastructure de test lourde, des délais imprévisibles de développement matériel et une gestion des données à grande échelle. La liste pourrait se poursuivre. Mais certaines améliorations auront un fort impact sur l'ensemble du secteur de la robotique, comme les excellents outils de visualisation des données.