Un robot dans chaque foyer, par Bill Gates

À l’instar de l’informatique il y a 30 ans, la robotique est aujourd’hui mûre pour devenir une véritable industrie et se diffuser dans l’ensemble de la société.

Imaginez une industrie qui s’appuie sur des nouvelles technologies révolutionnaires, où une poignée de firmes établies vendent des appareils spécialisés aux entreprises et où un nombre croissant de jeunes pousses produisent des objets innovants et des produits destinés à des usages spécifiques. Une industrie fragmentée, sans normes ni outils communs, où les projets sont complexes, les progrès lents et les applications assez rares. Et dont malgré l’enthousiasme et les promesses qu’elle suscite, nul ne peut dire quand, ni même si elle s’implantera à grande échelle. Mais si elle y parvient, elle pourrait changer la face du monde.

Cela pourrait être le portrait de l’industrie informatique au milieu des années 1970. À l’époque, d’énormes ordinateurs centraux étaient à l’œuvre dans les grandes entreprises, les ministères et autres institutions. Les chercheurs des universités et des laboratoires industriels mettaient au point les éléments constitutifs de ce qui allait devenir l’ère informatique, du microprocesseur aux programmes de jeux. Dans les clubs d’informatique, des enthousiastes spéculaient sur les possibilités de cette technologie naissante.

Cette description s’applique aussi mot pour mot à un phénomène beaucoup plus contemporain : l’émergence de l’industrie robotique, qui connaît un développement comparable à celui de l’informatique il y a 30 ans. Les robots des chaînes de montage automobiles actuelles sont l’équivalent des ordinateurs centraux d’hier. Les bras chirurgicaux robotisés, les robots de surveillance déployés dans les zones de conflits ou les robots aspirateurs sont des exemples de produits destinés à des niches spécifiques. Et des jouets robotisés imitent les humains ou les chiens.

Pendant ce temps, les spécialistes tentent de résoudre des problèmes épineux de la robotique tels que la reconnaissance visuelle, l’orientation et l’apprentissage. Et ils y parviennent. Lors de l’édition 2 004 du Grand Challenge du Darpa (l’Agence des projets de recherche avancés du Département de la défense des États-Unis), un concours pour la conception d’un véhicule capable de naviguer de façon autonome sur un parcours accidenté de 230 kilomètres, le gagnant a réussi à parcourir seulement 12 kilomètres avant de tomber en panne. L’année suivante, cependant, cinq véhicules ont réussi à terminer la course, à la vitesse moyenne de 30,7 kilomètres à l’heure pour le meilleur.

Par ailleurs, les défis auxquels est confrontée l’industrie robotique sont très semblables à ceux que nous avons relevés en informatique il y a trois décennies. Il n’existe pas de logiciels standards qui permettraient à des programmes généraux de fonctionner sur différentes machines. Les processeurs et autres matériels équipant les robots sont très peu standardisés, et seule une petite partie des programmes utilisés sur une machine donnée peut être appliquée à une autre. Chaque nouveau projet de robot doit repartir de la case départ.

Malgré ces difficultés, l’enthousiasme et l’attente au sein de la communauté de la robotique, des chercheurs aux chefs d’entreprise en passant par les amateurs, sont comparables à ceux de l’époque où Paul Allen (cofondateur de Microsoft) et moi assistions à la convergence de nouvelles technologies et rêvions du jour où il y aurait un ordinateur dans chaque foyer. Au vu des tendances qui commencent à converger, je perçois un avenir où les robots feront partie intégrante de notre vie quotidienne. Des technologies telles que l’informatique distribuée, la reconnaissance vocale et visuelle ou les connexions sans fil à haut débit ouvriront la voie à une nouvelle génération d’appareils autonomes qui pourront effectuer des tâches matérielles à notre place. Les ordinateurs sont sur le point de quitter le bureau pour nous permettre de voir, d’entendre et de manipuler des objets à des endroits où nous ne sommes pas physiquement présents.

 

De la Science-Fiction à la réalité

Le terme " robot " est apparu pour la première fois en 1921 dans une pièce du dramaturge tchèque Karel Capek, mais en réalité, les hommes en rêvent depuis des millénaires. Dans la mythologie grecque, Héphaïstos, dieu de la métallurgie, construisait des serviteurs mécaniques en or. Au 1er siècle de notre ère, l’ingénieur grec Héron d’Alexandrie, à qui l’on doit la première machine à vapeur, a conçu les premiers automates, des personnages de théâtre mus par la force de l’eau ou l’écoulement de sable. Le célèbre croquis du chevalier mécanique capable de bouger les bras et les jambes et de s’asseoir, esquissé par Léonard de Vinci en 1495, est considéré comme le premier plan d’un robot humanoïde.

Au cours du siècle dernier, les robots anthropoïdes sont devenus populaires grâce à des livres comme Les robots d’Isaac Asimov ou des films tels que La Guerre des étoiles. L’omniprésence des robots dans la fiction laisse penser que la plupart des individus sont réceptifs à l’idée que ces machines nous côtoieront un jour, pour nous aider ou même nous tenir compagnie. Néanmoins, bien que les robots jouent à l’heure actuelle un rôle vital dans des industries telles que l’automobile (où il y a environ un robot pour dix ouvriers), il y a long à parcourir avant qu’ils rattrapent leurs homologues de la science-fiction.

De fait, il s’est révélé beaucoup plus difficile qu’on ne l’imaginait de doter les robots de capacités leur permettant de percevoir leur environnement et d’interagir avec lui. Des capacités que les humains considèrent comme allant de soi – s’orienter par rapport aux obstacles dans une pièce, répondre à des signaux sonores et interpréter le langage parlé, ou saisir des objets de tailles, textures ou propriétés mécaniques variées sont très difficiles à conférer à des robots. Même la distinction entre une fenêtre et une porte ouverte est une tâche très compliquée pour un robot.

Les chercheurs commencent pourtant à trouver des réponses à ces problèmes. L’un des facteurs qui les y ont aidés est l’augmentation exponentielle de la puissance de calcul disponible. Une puissance de calcul équivalente à celle d’un microprocesseur cadencé à un mégahertz coûtait plus de 5.000 euros en 1970 ; une telle puissance s’obtient aujourd’hui pour quelques centimes seulement. Le prix des mémoires a lui aussi baissé très rapidement. L’accès à une puissance de calcul bon marché a permis aux scientifiques de s’attaquer à des problèmes fondamentaux pour rendre les robots plus débrouillards. Les programmes de reconnaissance vocale, par exemple, sont aujourd’hui assez performants pour identifier les mots. Construire des machines capables de comprendre ce que ces mots veulent dire sera bien plus difficile, mais, l’augmentation de la puissance de calcul aidant, nul doute que les roboticiens pourront relever ce défi.

L’autre facteur de développement des robots est la baisse rapide du coût du matériel, tels les capteurs et les servomoteurs qui permettent à un robot de se repérer et de manipuler des objets. Les télémètres à laser utilisés pour mesurer les distances avec précision coûtaient environ 10 000 euros il y a quelques années ; ils valent aujourd’hui cinq fois moins. Pour moins cher encore, on peut aussi miser sur de nouveaux capteurs utilisant le radar à ultralarge bande, plus précis.

Désormais, les constructeurs de robots peuvent équiper leurs créations de puces GPS, de caméras vidéo, de réseaux de microphones – plus performants que les microphones simples pour distinguer une voix du bruit de fond –, ainsi que d’une foule de capteurs supplémentaires, le tout pour un coût raisonnable. L’amélioration des fonctionnalités, associée à l’augmentation des capacités de traitement et de stockage, permet par exemple aux robots d’aujourd’hui de nettoyer le sol d’une pièce ou de désamorcer une bombe, tâches qui auraient été impossibles il y a quelques années seulement.

 

L’approche basique

En février 2004, lors d’une tournée de conférences dans des universités américaines, j’ai eu l’occasion de découvrir certains projets de recherche des départements d’informatiques de ces universités. On m’a presque toujours présenté au moins un projet relevant de la robotique.

À cette époque, des universitaires et des acteurs privés de la robotique sollicitaient notre entreprise pour savoir si nous menions des recherches en robotique susceptibles de contribuer à leurs propres travaux. Ce n’était pas le cas, et nous avons décidé de nous pencher sur la question. J’ai demandé à Tandy Trower, l’un de mes collaborateurs, de recueillir les attentes de la communauté de la robotique. Il a trouvé, outre un enthousiasme général, un désir partagé par toute l’industrie de disposer d’outils qui faciliteraient le développement. T. Trower me rapporta que " beaucoup considèrent que l’industrie robotique est à un tournant, où le passage à une architecture de type ordinateur personnel prend de plus en plus de sens. [...] Les capacités matérielles sont pour l’essentiel acquises ; maintenant, il s’agit d’avoir les logiciels adéquats ".

À l’époque des débuts de l’ordinateur personnel, nous nous étions rendu compte qu’il manquait un ingrédient permettant aux recherches d’avant-garde d’aboutir à une véritable industrie, capable de produire à grande échelle des produits réellement utiles. Cet outil, c’était le langage de programmation Microsoft Basic que nous avons élaboré dans les années 1970. Ce langage a permis aux programmes développés pour une machine de fonctionner sur une autre et a aussi rendu la programmation informatique beaucoup plus simple, ce qui a amené un nombre croissant de personnes à travailler dans ce domaine. Le langage Microsoft Basic a été l’un des catalyseurs de la révolution de l’ordinateur personnel.

Pour faire le même bond en avant que l’informatique il y a 30 ans, l’industrie robotique devait trouver son catalyseur. J’ai chargé T. Trower de réunir une équipe de spécialistes de la robotique pour créer un ensemble d’outils de programmation, une sorte de trousse à outils de base, afin que toute personne s’intéressant aux robots et disposant d’un bagage informatique minimal puisse facilement développer des applications robotiques fonctionnant sur différents types de matériel. Le but était de mettre au point un socle commun basique permettant d’intégrer les logiciels et les matériels aux différents concepts de robots, comme le langage Microsoft Basic l’avait permis pour les programmeurs informatiques.

Le groupe de robotique de T. Trower a pu s’appuyer sur des techniques développées par l’équipe de Craig Mundie, responsable en chef de la recherche et de la stratégie chez Microsoft. L’une de ces techniques va contribuer à résoudre l’un des problèmes les plus difficiles auquel sont confrontés les concepteurs de robots, le problème dit de la " concurrence " : comment gérer simultanément les données provenant des multiples capteurs et envoyer les commandes appropriées aux moteurs du robot ? Dans une approche classique, le programme ne comprend qu’un seul processus d’exécution. C’est une longue boucle qui consiste à lire d’abord les données de tous les capteurs, puis à traiter cette information et enfin à délivrer une commande qui détermine le comportement du robot, avant que ne recommence une autre boucle. L’inconvénient de cette approche est évident : si les capteurs du robot reçoivent des données fraîches indiquant que la machine est au bord d’un précipice, par exemple, mais que le programme est encore dans la partie de la boucle consacrée au calcul de la trajectoire et commande aux roues de tourner plus vite en réponse aux précédentes données des capteurs, il y a fort à parier que le robot va tomber dans le vide avant d’avoir eu le temps de traiter la nouvelle information.

Le problème de la " concurrence " dépasse largement le cadre de la robotique. Aujourd’hui, de plus en plus de programmes sont écrits pour être exécutés de façon distribuée sur un réseau d’ordinateurs, et les informaticiens s’escriment à trouver comment orchestrer efficacement l’exécution du programme sur différentes machines en même temps. Et à mesure que les ordinateurs à simple processeur sont remplacés par des machines à processeurs multicœurs (des circuits intégrés comportant plusieurs processeurs réunis pour augmenter les performances), les concepteurs de logiciels doivent programmer les applications de bureautique et les systèmes d’exploitation d’une nouvelle façon. Pour tirer pleinement parti de la puissance de processeurs fonctionnant en parallèle, les futurs logiciels devront régler le problème de la " concurrence ".

Pour ce faire, l’une des approches consiste à écrire des programmes avec plusieurs processus s’exécutant simultanément, qui permettent aux données d’être acheminées par de nombreuses voies. C’est cependant l’un des aspects les plus difficiles en programmation. Les outils mis au point par l’équipe de C. Mundies sont nommés CCR (Concurrency and Coordination Runtime, ou moteur d’exécution pour la concurrence et la coordination). Le CCR est une bibliothèque de fonctions (des séquences de code qui effectuent des tâches spécifiques) qui facilite l’écriture d’applications à processus concurrents, destinées à coordonner plusieurs activités simultanées. Conçu pour aider les programmeurs à exploiter la puissance des systèmes multicœurs et multiprocesseurs, le CCR se révèle idéal pour la robotique aussi. En puisant dans cette bibliothèque pour écrire leurs programmes, les concepteurs de robots réduisent de façon spectaculaire le risque de voir se produire des conflits entre l’acquisition de données sur l’environnement et le calcul des réponses appropriées, et ainsi éviter que leurs robots ne foncent dans les murs, par exemple.

Outre le problème de " concurrence ", une autre technique mise au point par C. Mundies et ses collègues simplifiera aussi l’écriture d’applications robotiques réparties : le DSS (Decentralized Software Services, ou services logiciels décentralisés). Le DSS permet aux développeurs de créer des applications où les services (les parties du programme qui lisent les données d’un capteur, par exemple, ou qui commandent un moteur) fonctionnent comme des processus distincts et dont la gestion est aussi simple que de rassembler du texte, des images et des vidéos sur une page Web à partir de différents serveurs. De ce fait, si l’un des composants logiciels d’un robot tombe en panne, il peut être arrêté et redémarré (ou même remplacé) sans qu’il soit nécessaire d’arrêter et de réinitialiser la machine entière. Par ailleurs, avec cette architecture et un réseau sans fil à haut débit, on peut surveiller et régler un robot à distance par l’intermédiaire d’un simple navigateur Web.

De plus, rien n’oblige une application DSS contrôlant un robot à être implantée sur le robot lui-même : elle peut être répartie entre plusieurs ordinateurs. Par conséquent, le robot peut être doté d’une puissance de calcul modeste, et donc être relativement bon marché, et déléguer le traitement complexe des données aux machines plus performantes que sont les ordinateurs personnels d’aujourd’hui. Je pense que cette approche ouvrira la voie à une nouvelle classe de robots, des appareils périphériques mobiles et sans fil qui exploitent des ordinateurs de bureau pour réaliser des tâches lourdes, telles la reconnaissance visuelle et la navigation. Et du fait que ces appareils pourront être mis en réseau, on peut imaginer que des groupes de robots travaillent de concert pour réaliser des missions d’envergure, telles que la cartographie des fonds marins ou la plantation de cultures.

Ces techniques sont parmi les pièces maîtresses de Microsoft Robotics Studio, une nouvelle boîte à outils de développement de logiciels mise au point par l’équipe de T. Trower. Cet ensemble inclut aussi des outils qui facilitent la création d’applications robotiques utilisant un large éventail de langages de programmation. Il propose entre autres un outil de simulation qui permet aux constructeurs de robots de tester leurs applications dans un environnement tridimensionnel virtuel avant de lancer les essais réels. Notre but est de créer un cadre ouvert et abordable permettant aux développeurs de robots d’intégrer aisément des composants matériels et logiciels à leurs concepts.

 

Faut-il encore parler de robots ?

D’ici combien de temps les robots vont-ils devenir partie intégrante de notre vie quotidienne ? D’après la Fédération internationale de robotique, environ deux millions de robots personnels étaient en service dans le monde en 2004, et sept autres millions devraient être en place d’ici 2008. L’Association japonaise de robotique prédit que d’ici 2025, l’industrie de la robotique personnelle pèsera plus de 40 milliards d’euros par an dans le monde, contre 4 milliards aujourd’hui.

Comme pour l’ordinateur personnel dans les années 1970, il est impossible de prédire exactement quelles applications seront le moteur du développement dans ce domaine. Il est néanmoins probable que les robots joueront un rôle important dans l’assistance physique, et même la compagnie, aux personnes âgées ou aux handicapés. Des appareils robotisés serviront aussi sans doute à suppléer ou augmenter la force et la résistance des soldats, des ouvriers ou d’autres professions physiquement éprouvantes. Les robots seront chargés du contrôle et de la maintenance des installations industrielles dangereuses. Enfin, ils permettront aux professionnels de la santé de diagnostiquer et soigner des patients à distance et joueront un rôle central dans les systèmes de sécurité et les opérations de secours.

Certains des robots de demain ressembleront peut-être aux robots anthropoïdes de La Guerre des étoiles, mais la plupart n’auront rien du droïde Z6PO. En fait, à mesure que les dispositifs périphériques mobiles vont se démocratiser, il va sans doute devenir de plus en plus difficile de dire exactement ce qu’est un robot. Ces machines seront si omniprésentes, si spécialisées et si peu ressemblantes aux humanoïdes de la science-fiction que nous ne les qualifierons peut-être même plus de robots. Quoi qu’il en soit, elles auront probablement un impact aussi profond sur notre façon de travailler, de communiquer, d’apprendre et de nous distraire que l’ordinateur personnel en a eu ces 30 dernières années.

 

Bill Gates – Co-fondateur et Président de Microsoft

Article publié également dans la revue Scientific American et dans Pour la Science, numéro 356, juin 2007.