Canalblog
Suivre ce blog Administration + Créer mon blog

RAVEN : Robot Autonome de Vérification d'ENvironnement

22 juin 2015

RAVEN : Suivi de ligne

Le suivi de ligne est un grand classique de la robotique.

De plus comme RAVEN est destiné à travailler dans des datacenters (où le sol est souvent fait de dalles jointes) le suivi de ligne prend tout son intéret.

 

Après quelques problèmes, RAVEN est enfin capable de suivre une ligne noire sur un support blanc.

RAVEN - Suivi de ligne

 

Le cas est simple (ligne droite), mais j'ai testé en commençant avec la ligne noire en limite des capteurs, le robot a bien re trouvé la ligne.

 

Prochaine étape : une commande à distance.

Publicité
Publicité
10 janvier 2015

Premier scan de RAVEN

Voici (la très attendue) première vidéo de RAVEN.

Vous pouvez voir RAVEN effectuer un scan avec son télémètre de ce qui est placé devant lui.

IMGP5092

 Il faut encore que je retravaille l'inclinaison du télémètre en fonction des capteurs placés au dessus.

On peut voir que par moment le télémètre est légèrement incliné.

 

A suivre ...

 

4 janvier 2015

Raven. Fin de la phase matérielle

Bonne nouvelle pour RAVEN.

La construction matérielle est quasiment terminée (j'ai encore en projet d'ajouter un écran LCD pour afficher différentes informations, mais ce n'est pas crucial). Cette phase matérielle étant terminée, on va pouvoir passer à la partie logicielle (programmation du robot).

IMAG0301

IMAG0302

IMAG0303

IMAG0304

En avant du robot, on a un télémètre sur une tourelle qui permet d'établir un plan de ce qui est placé devant (débattement d'un peu moins de 90° à gauche comme à droite). Deux capteurs d'inclinaison sont placés également à coté du télémètre pour s'assurer que la mesure est bien effectuée dans le plan horizontal).

Une batterie LiPo (comme celles utilisées en modélisme) alimente le robot et est visible juste derrière la tourelle.

Au dessus de la chenille droite (en haut sur la vue de dessus) est également présent une horloge (base temps), un récepteur GPS (positionnement si le robot est en extérieur), et un lecteur de carte SD pour enregistrer différentes informations (et décharger la mémoire de l'arduino de cette tache).

Des encodeurs sont placés au niveau des moteurs du robot pour permettre de mesurer le déplacement effectué par le robot.

Une barre de 5 capteurs IR est placés sous le robot pour lui permettre de suivre un parcours placé au sol (ligne définissant le trajet à suivre).

Le circuit électronique visible sur le dessus du robot permet la connexion et l'alimentation des différents capteurs.

 

25 juin 2014

Positionnement de raven

Une question récurrente consiste à déterminer la position du robot dans un environnement déterminé.

 

La première solution envisagée utilise une sorte de radar qui recherche les éléments placés autour du robot :

- Un télémètre est placé sur une tourelle. Le robot balaye l'espace autour de lui et enregistre les couples de données angle de la tourelle/distance. Cete ensemble de données permet de définir un plan sommaire de l'environnement de Raven. En se déplaçant un peu et en répétant l'opération, le robot est ainsi capable de cartographier l'ensemble de son espace de travail. Une fois cet environnement cartographié, il peut retrouver sa position (en recherchant de nouveau son environnement et en le comparant avec sa cartographie).

 

Néanmoins ce type de positionnement est assez imprécis (le télémètre ultra-son possède un cone de détection assez diffus, et la détection d'une surface plane oblique par rapport au capteur est aléatoire). Ce système peut etre utile pour cartographier son espace, mais ne permetrait pas un positionnement précis. Voici un autre système, plus complexe, mais qui devrait permettre d'obtenir un positionnement précis de Raven.

Ce système est séparé en plusieurs parties :

- Sur Raven, un émetteur laser est monté sur une tourelle qui peut effectuer une rotation à l'horizontale (comme dans la première solution). Cet émetteur laser trace une ligne verticale.

- A différents endroits de l'espace de travail de Raven, sont disposées des balises. Chaque balise possède un numéro différent et lorsque le rayon laser éclaire la balise, cette dernière envoie un signal radio avec son numéro. Le rayon laser émis par Raven forme une ligne verticale pour etre certain de toucher la balise, meme s'il y a une légère différence de hauteur/d'inclinaison entre Raven et ses balises.

- Quand Raven cherche à connaitre sa position, il scanne autour de lui en envoyant sa ligne laser autour de lui. Quand une balise répond, on connait l'emplacement de la balise (puisqu'elles sont identifiées et que leur emplacement est connu) et Raven connait l'angle qu'il forme avec le rayon. On peut donc déterminer une droite sur laquelle on est placé. L'intersection de plusieurs droites détermine la position de Raven

Gauche

Positionnement_002Le croqui ci-contre présente deux cas de positionnement. Les trois balises qui répondent (et dont on connait l'emplacement) ermettent de déterminer la position et la direction de Raven.

12 juin 2014

Architecture retenue

Concernant la plateforme, les premiers essais utilisaient une simple plaque avec deux moteurs (et donc deux roues) et une "foue folle" à l'arrière. Ce modèle d'architecture a vite montré ses limites face à des obstacles assez mineurs; un simple cable, une sifférence de niveau meme faible bloquait un coté du robot.

Rapidement je me suis orienté sur un chassis de type DAGU Rover 5 (dont voici un schéma)

dagu-rover-5 Ce type de chassis permet de franchir des obstacles simples (un cable électrique, un tapis, ...). Chaque coté a son moteur et un système de mesure de la distance parcourue.

 

Concernant le guidage du robot, la solution basique d'un robot suiveur de ligne a été envisagée dans un premier temps. Basique, elle a permis d'obtenir assez rapidement un engin capable de suivre un parcours prédéfini.

Mais cette solution a des limites qui ne sont compatibles avec ce qui est recherché :

- La marque matérialisant le parcours peut aisément etre masqué ou brouillé (un simple cable recouvrant en partie le tracé peut suffire à ce que le robot prenne une mauvaise direction).

- Dans le cas d'une utilisation en extérieur, la marque peut etre difficile à trouver (herbe, conditions de lumière).

 

Pour ces raisons, d'autres systèmes de guidage / positionnement sont à l'étude :

- Capteur GPS. Utilisable en extérieur uniquement, mais permet à RAVEN de trouver sa position et la direction à prendre meme en l'absence de repères.

- Télémètre à ultra-sons. Monté sur une tourelle, RAVEN peut "cartographier" son environnement direct. On peut meme imaginer que dans un espace inconnu, RAVEN commencera par une phase d'apprentissage où il parcourera l'espace possible. Par la suite, il pourra ainsi retrouver son emplacement et le chemin à suivre en mesurant l'espace autour de lui.

- Positionnement par triangulation. Une source lumineuse (laser ou lampe avec un faisceau suffisament concentré) est montée sur une tourelle du robot; dans l'environnement de RAVEN, différentes 'balises' sont placées à des endroits déterminés; quand une balise est éclairée, elle envoye un message à RAVEN (liaison radio ou Wifi). Pour trouver sa position, RAVEN balaye l'espace autour de lui. Quand une balise lui répond, en combinant la position de la balise qui a répondu avec l'angle qu'il forme avec le faisceau lumineux il peut définir une ligne sur laquelle il est positionné. La réponse de plusieurs balises détemine une position ou du moins un secteur (en fonction de l'imprécision des mesures) où il est positionné.

- Le système de suivi de ligne précédemment évoqué peut etre une solution acceptable dans certains cas.

- Programmation directe. Par le système d'odométrie intégré, il est possible de définir un parcours précis du robot (avancer de 3 mètres, tourner à droite de 90°, avancer de 65 cm, ...).

- Guidage par un système extérieur. Un système de caméras fixes identifie la position du robot par un programme sur un PC fixe. Ce dernier envoie alors des ordres à RAVEN par radio ou Wifi pour effectuer le trajet.

- Plateforme inertielle. L'intégration des accélérations reçues dans les trois axes permet de calculer la vitesse du module. L'intégration des vitesses permet de définir les déplacements par raport à une position de base. Malheureusement les systèmes utilisables sur RAVEN sont relativement imprécis et ne permettent pas un guidage prolongé avec une précision acceptable. Ce système est néanmoins utilisable sur de courts moments (détection de la fin d'un virage à angle droit par exemple) mais rev^et peu d'intéret avec le système odométrique incoporé.

 

Par sécurité deux capteurs de télémétrie (fixes) ont été placés à l'avant de RAVEN. Ils permettent de détecter un obstacle imprévu et de stopper la progression.

Concernant la partie électronique, la plateforme Arduino est retenue dans un premier temps. Elle permet de raccorder aisément différents capteurs (GPS, télémètre, gyroscope) et de piloter l'éventuelle tourelle télémétrique avec une assez bonne précision. Cependant pour des questions de temps de réponse, il est possible de devoir déporter certaines fonctions basques à d'autres systèmes (micro-controleurs PIC par exemple). Je pense en particulier à la stabilisation de la tourelle. Il est important pour que la mesure soit pertinente que la rotation s'effectue dans le plan horizontal. Un système PIC peut etre alors affecté à l'inclinaison de la tourelle pour effectuer les corrections nécessaires sans que le système Arduino principal en soit affecté.

 

Publicité
Publicité
10 juin 2014

Ouverture du blog

Mardi 10 Juin 2014. Une date qui marquera l'histoire (peut-être).

 

Ce blog (les geeks auront reconnu le jeu de mot) est destiné à suivre les essais, tatonnements dans le développement d'un robot.

 

Au départ, ce robot est né d'une idée simple.

Dans différents environnements (initialement cela a été étudié dans l'optique d'une salle informatique, mais ce principe peut s'appliquer à d'autres cas de figure), il y a besoin de vérifier la stabilité de parmètres d'environnement. Dans le cas de la salle informatique (puisque c'est l'idée de départ) les valeurs à suivre concernent la température, l'hygrométrie, des éventuels champs magnétiques, ...

Habituellement, les solutions mises en place utilisent une multiplication de capteurs. Et si au lieu de cela on disposait d'une plateforme mobile embarquant tous les capteurs nécessaires, et qui effectue des mesures géo-localisées. L'inconvénient direct est que l'on ne peut pas suivre l'évolution des ces paramètres en temps réel (le robot va mettre un certain temps à effectuer son circuit), mais cela permet de réduire très fortement le coût de cette surveillance, puisque le nombre de capteurs nécessaire est très faible.

Les applications d'un système de ce genre peuvent être beaucoup plus étendues que la surveillance d'une salle machine. Le même principe peut être repris pour un cultivateur qui aurait besoin de vérifier la température, l'hygrométrie du sol dans ses plantations. Cela pourrait aussi servir de système automatique de détection d'intrusion dans un entrepôt (ici la détection sera celle de personnes vivantes). Les applications peuvent être très nombreuses.

Pour être accessible (et rester dans l'optique initiale d'un coût modéré) je ne me tournerais pas vers des solutions héritées des systèmes d'aspirateur autonomes. Le développement serait plus rapide, et plus aisé (puisque toute la partie de positionnement et de guidage est déja bien entamée), mais le coût d'un tel projet serait plus important, le robot obtenu ne serait pas aussi polyvalent que je le souhaite (utilisation en intérieur seulement, sur une sol relativement uniforme), et surtout cela serait beaucoup moins intéressant.

 

Voilà le premier message de ce blog, que j'espère très intéressant à tous ceux qui si'intéressent à la robotique.

 

Publicité
Publicité
RAVEN : Robot Autonome de Vérification d'ENvironnement
Publicité
Archives
Publicité