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.
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.

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 :
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.

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.
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.
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 ° !

Les scanners laser 3D utilisent la même technique mais avec un miroir pivotant sur deux axes.
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 :

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.

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...

|
|