Différentes techniques pour localiser un robot mobile dans l'espace

Tous les apprentis roboticiens ont construit un robot qui évite les obstacles grâce à des capteurs de contact (type 'moustache') ou à des capteurs de distance infrarouge.

Mais pour des robots plus évolués, qui doivent se déplacer dans des environnements complexes, il faut des capteurs de plus haut niveau. Différents choix s'offrent alors au concepteur de robots, selon le type de robot mobile et son environnement.

  • La robotique mobile en extérieur:
    • Le GPS est une solution souvent utilisée même si sa précision est limitée. Des solutions de GPS indoor arrivent sur le marché avec notamment le concours de spots Wifi.
  • La robotique mobile en intérieur :
    • Avec un système de repérage par caméra externe (arène avec une caméra verticale par exemple)
    • Par l'utilisation de balises (infrarouge, laser...) et triangulation des signaux
    • Une ou des caméras embarquées sur le robot (caméra simple, stéréoscopique, voire caméra avec capteur de profondeur de type Microsoft Kinect), qui nécessitent un traitement des données parfois difficile et intensif.
    • Des télémètres ultrasons (sonars à ultrasons) ou télémètres infrarouge.
    • Un télémètre laser (Laser Range Finder en anglais. On parle aussi de LIDAR)

C'est cette dernière solution que nous allons étudier ici en nous basant sur le capteur laser le plus populaire parmi les constructeurs de robots mobiles: le télémètre laser Hokuyo. Ce capteur est en effet compact (50×50×70mm), léger (160g) et s'alimente en 5V (pour les petits modèles de type URG-04-LX), ce qui permet de l'intégrer facilement dans des robots mobiles, même de taille réduite. Les différents modèles offrent des portées de 4 à 30 mètres.

le télémètre laser Hokuyo

Comment fonctionne un télémètre laser Hokuyo pour la robotique ?

Le principe du télémètre laser

Un télémètre laser Hokuyo estime une distance à partir d'un calcul de différence de phase. Il émet un rayon laser, c'est à dire une onde lumineuse à une fréquence bien définie. On dit que l'onde est monochromatique. La fréquence du télémètre laser Hokuyo URG-04-LX est de 785 nm, ce qui est à la limite entre la lumière visible et les infrarouges. C'est un laser de classe 1, c'est à dire qu'il ne pose aucun problème de sécurité.

Rappel de la classification des lasers :

  • Classe I : Lasers sans dangers, regroupant les produits tels que les imprimantes lasers, les lecteurs de CD et la plupart du temps les produits où l'émetteur laser est inséré dans le produit
  • Classe II : Lasers à rayonnement visible où la protection de l’œil est assurée par le réflexe palpébral (ex : lecteurs de code barre)
  • Classe III : Lasers dont la vision direct est dangereuse pour l’œil immédiatement (class3b) ou dans le cas d'une vision directe supérieur à 0,25s (classe 3a). On retrouve dans ces classe certains pointeurs lasers.
  • Classe IV : Lasers dangereux pour la vision (en vision directe ou diffuse), pouvant créer des lésions et également susceptibles de générer ds incendies. On retrouve là des Lasers industriels et des lasers pour la recherche.

 

Cette onde lumineuse se propage en ligne droite, rebondit sur un obstacle et reviens vers le télémètre laser. Celui-ci compare l'onde reçue et l'onde émise et calcule la différence de phase entre ces deux ondes. Cette différence de phase est en effet proportionnelle au temps mis par la lumière pour aller du capteur vers l'obstacle et en revenir et ce temps est lui-même proportionnel à la distance parcourue.

dephasage entre deux ondes lumineuses émises par le télémètre laser Hokuyo

L'onde verte et l'onde rouge ont la même fréquence mais sont déphasées

La technologie laser est très efficace car l'onde lumineuse se réfléchit sur toutes les surfaces solides avec une diffusion réduite quel que soit la nature de l'obstacle.

Calcul du déphasage d'un télémètre laser

Si l'onde émise a pour équation A.sin(w.t) (A étant l'intensité et w la fréquence), l'onde réfléchie a pour équation B.sin(w.(t -dt)) (l'onde a été émise à l'instant t –dt et son intensité a pu baisser si la réflexion n'était que partielle). En utilisant un multiplicateur de signaux, on obtient :

  A.B.(cos(W.dt) – cos(2.w.t – w.dt))/2

Ce signal est la différence entre un signal constant (cos(W.dt)) et un signal haute fréquence (cos(2.w.t – w.dt)). Un filtre passe-bas nous permet de ne conserver que la partie constante, dont on peut extraire le temps de vol dt et donc la distance.

Détection sur un plan à l'aide du télémètre laser

Le principe exposé dans le paragraphe précédent fonctionne dans une direction bien précise. Afin de prendre des mesures suivant un plan, le capteur intègre un petit miroir pivotant qui se décale (de 0.36°) entre chaque mesure. Ce mouvement est très précis mais aussi très rapide : le télémètre laser Hokuyo URG-04-LX n'a besoin que de 100 ms pour un scan à 240 ° !

le miroir tournant permet de modifier l'angle du faisceau laser du télémètre Hokuyo 

 

vue de la zone scannée par le télémètre laser hokuyo

Les scanners laser 3D utilisent la même technique mais avec un miroir pivotant sur deux axes.

Comment se repérer dans l'espace en utilisant un télémètre laser Hokuyo ?

Lors de chaque scan, le télémètre laser Hokuyo URG-04-LX renvoie 683 informations de distances correspondant aux 683 angles auxquels il a fait des mesures via son interface USB. On peut les récupérer dans un fichier CSV ou directement dans du code C ou C++ grâce à l'API (Application Programming Interface) fournie par Hokuyo.

Voici un exemple de données du télémètre :

données brutes du télémètre Hokuyo

Il est ensuite assez simple de transformer ces informations en coordonnées X et Y. En considérant que l'angle varie de -120° à 120° et que l'angle 0 correspond à l'axe Y on obtient:

x = distance*sin(angle)
y = distance*cos(angle)

Il faut maintenant interpréter ces informations pour se positionner dans l'espace.

Si on possède une carte de l'environnement, il faut essayer de repérer des points particuliers ou amer : une porte, un décrochage dans un mur... Le robot peut ensuite se repérer dans son environnement, soit en gardant l'amer à vue ou en utilisant ses encodeurs et un filtre de Kalman par exemple.

Si on ne possède pas de carte de l'environnement a priori, le robot doit à la fois cartographier l'endroit dans lequel il évolue et se positionner dans cette carte. On appelle ce problème le SLAM : Simultaneous Localization And Mapping (localisation et cartographie simultanées). Il existe de nombreuses techniques pour résoudre ce problème, dont à nouveau les filtres de Kalman.

Afin de réduire la quantité d'information à traiter, il peut être avantageux de pré-traiter les données afin d'en extraire des formes, et en particulier des droites. La méthode la plus utilisée pour cela est la transformée de Hough : elle consiste, pour chaque paire de points, à calculer l'équation de la droite qui passe par ces points. Les coefficients de cette équation de droite sont ajoutés à un accumulateur, qui enregistre combien de fois la même équation est calculée. Les coefficients calculés le plus souvent correspondent à de nombreuses paires de points alignés dans les données brutes.

extraction de ligne dans les données du télémètre Hokuyo

Des droites ont été extraites des données brutes en utilisant la transformée de Hough

Les robots mobiles utilisant un télémètre laser Hokuyo

Parmi les robots utilisant un télémètre Hokuyo, citons le robot Khepera III muni de son extension et le robot humanoïde NAO dans sa version avec tête laser...

la tete laser du robot humanoide Nao contient un télémètre Hokuyo