Aller au contenu


Photo
- - - - -

Pablo odysseus, robot artist Land Art

UGV Land Art

  • Veuillez vous connecter pour répondre
177 réponses à ce sujet

#1 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 16 septembre 2016 - 09:50

Je vous propose de suivre ici la réalisation et la mise au point de Pablo, un robot autonome dont le but est de tracer de (vraiment) grands dessins dans le sable lorsque la marée découvre les plages.

 

Pour commencer :  Le châssis.

 

Le squelette de PABLO est constitué de profilé en aluminium de 2cm de section. L'assemblage est facilité par des équerres. On reconnait les deux moteurs de chaque côté et l'emplacement pour la batterie au centre. L'électronique viendra par la suite sur le dessus de la structure.

Image(s) jointe(s)

  • PABLO_008.gif
  • presentation_chassis_1.jpg
  • presentation_chassis_2.jpg


#2 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 106 messages
  • Gender:Male

Posté 17 septembre 2016 - 07:04

Joli projet !

Je suppose que ce sont les roues qui vont marquer le sol.
À moins que les roues ne pénètrent pas dans le sable et que tu ais prévu un genre de stylet ou de soc de charrue.

En somme, il s'agit d'une table traçante géante !

Ce sont des photos ou de la modélisation ?
Ma chaine vidéo YouTube : 'https://www.youtube....Mz-IzZqyvqEUek'

#3 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 17 septembre 2016 - 11:32

Tout à fait : Pablo se comporte comme un traceur XXL. L'outil de traçage n'est pas encore mis au point, c'est un rouleau équipé de griffes qui retourne le sable sur une largeur légèrement supérieure à la voie (la distance entre les deux roues) pour couvrir les éventuelles traces laissées par les roues. L'outil est abaissé ou remonté lorsqu'il faut tracer, exactement comme un tracteur utilise un soc de charrue. Les essais montrent qu'il n'est pas nécessaire de creuser pour laisser une belle trace, simplement griffer le sable humide suffit. 
 
Ce qui nous amène à la préparation d'une mission :
 
En premier il faut sélectionner la forme qui sera tracée sur le sable. J'ai choisi le format DXF car il est vectoriel et il est très répandu. On trouve un peu partout des fichiers qui représentent tout un tas de formes à tracer en deux dimensions, ça permet de nourri Pablo en données. D'autres formats vectoriels pourraient êtres importés.
J'ai créé ensuite une application développée en C# pour transformer les vecteurs en coordonnées GPS.
 
D'abord on choisi un emplacement sur la carte. Grâce à GMap.NET on peut manipuler les cartes de Google, de Bing, d' OpenStreet ou autre pour se déplacer sur la carte, zoomer, poser des marqueurs..
 
mission_01.jpg
 
Il suffit de sélectionner le fichier DXF à importer, choisir l'échelle, l'orientation et simplement cliquer.
 
mission_02.jpg
 
On peut vérifier les coordonnées en exportant un fichier KML dans google map. Pablo utilise un autre fichier avec les mêmes coordonnées mais avec plus d'information comme par exemple lever et baisser l'outil pour dessiner sur le sable.

48,4450406781251    -2,08504594716869    False
48,4450461265302    -2,08506101814332    True
48,4450517909435    -2,08506631507817    True
48,4450666555887    -2,08506418650572    True
48,4451367353441    -2,08497106468962    True
48,4451348424797    -2,08496974890767    True
48,4451308889332    -2,08497403059451    True
48,4451267488849    -2,08498364311531    True
...

 
Pablo possède ainsi toutes les informations nécessaires pour faire sont travail, il faut tout de même l'amener à proximité du site !
Une vidéo qui résume la préparation d'une mission :
 
Il faut maintenant aider Pablo à se repérer....

#4 macerobotics

macerobotics

    Membre occasionnel

  • Membres
  • Pip
  • 115 messages
  • Gender:Not Telling
  • Location:Bretagne

Posté 17 septembre 2016 - 12:17

Salut,

 

Super projet, félicitation.

 

Quelles types de roues est utilisé sur ton robot ?


Mace Robotics - mobile platform for education makers and research.

www.macerobotics.com


#5 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 106 messages
  • Gender:Male

Posté 17 septembre 2016 - 01:19

Pour les roues, n'aurais-tu pas intérêt à utiliser des roues plus larges ou même des ballons.
Ma chaine vidéo YouTube : 'https://www.youtube....Mz-IzZqyvqEUek'

#6 macerobotics

macerobotics

    Membre occasionnel

  • Membres
  • Pip
  • 115 messages
  • Gender:Not Telling
  • Location:Bretagne

Posté 17 septembre 2016 - 03:47

Des roues plus large, comme le robot Beachbot de Disney : http://www.beachbot.ch/

Mace Robotics - mobile platform for education makers and research.

www.macerobotics.com


#7 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 17 septembre 2016 - 07:58

J'ai échangé par émail avec les concepteurs du BeachBot il y a quelque temps, non au sujet des roues mais au sujet de leur méthode de positionnement très différente de Pablo, mais c'est un autre sujet.

Pour ce qui est des roues, il faut tenir compte du terrain sur lequel on évolue : du sable mouillé et plat. Les essais réalisés à vélo sur ce type de plage montre qu'il poids de 70 kg départi sur 2 roues laisse peu de trace. Les 20 kg de Pablo répartis sur 3 roues en laisse encore moins. Le contraste sera important avec l'outil de traçage qui doit au contraire marquer le terrain. Pablo doit aussi parcourir du chemin sur sol dur, on reste donc pour l'instant sur ce système à base de roues et moteurs de fauteuil électrique. Il y a en projet une autre utilisation de Pablo plus ... agricole. Là il faudra changer les roues, c'est certain !



#8 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 461 messages
  • Gender:Male
  • Location:Paris

Posté 17 septembre 2016 - 11:22

Salut Ulysse, je trouve ça génial !! 

Ton robot vient de me faire comprendre comment on fait les crop circles. :)

Switzerland Crop Circle.png

 

Excellent. Merci de partager.



#9 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 18 septembre 2016 - 12:49

Effectivement, la prochaine mission "agricole" de Pablo ressemblera aux au tracés de crops circles ... plus précisément une fonction  "NOT Crop Circle", à suivre d'ici quelques lunes ...

 

Aujourd'hui on parle Odométrie.

C'est un sujet très bien documenté un peu partout sur le net, je laisse donc la théorie de côté et j'aborde ici le côté réalisation.

Pour estimer sa position hors GPS et sur de petites distances (c'est à dire quelques quelques mètres à l'échelle de sa tâche) Pablo reçoit les informations depuis un petit module Arduino qui compte le nombre de tours de chacun des deux moteurs, deux capteurs montés en quadrature sont nécessaires pour déterminer le sens de rotation.

 

Les capteurs :

 
Opto sensor2.png
 

Les capteurs utilisés sont disponibles à cette adresse.

 

Electrical_Optical_Sensor.png

 

Les moteurs :

 

Les moteurs utilisés sont du type Dynamic WMT 90103

 

SAM_0018_2.JPG

 

Il n'y a pas de capteur sur ce type de matériel, il faut les modifier.

 

Après avoir libéré le carter on aperçoit le frein électrique. On le retire car il est inutile pour Pablo et qu'on a besoin de place pour insérer les capteurs.

 

SAM_0019_2.JPG

 

La place est libre, l'axe du moteur est visible.

 

SAM_0020_2.JPG

 

On équipe l'axe avec une tige filetée fixée avec une colle spéciale métal.

 

SAM_0021_2.JPG

 

La roue en époxy est fixée sur l'axe fileté.

 

SAM_0022_2.JPG

 

 

Puis on fixe les codeurs optiques avec des tiges acier qui permettent d'ajuster les circuits par rapport à la roue codeuse.

 

SAM_0025_2.JPG

 

Pour finir on câble l'alimentation 5 Volts et les signaux des codeurs

 

SAM_0027_2.JPG

 

 

Pour déterminer le sens de rotation, les capteurs sont montés en quadrature. Voici les signaux générés lorsque le moteur est en rotation, ils sont clairement décalés dans le temps.

Rotation en sens horaire :

 

SCRN0138.PNG

 

Rotation en sens anti horaire :

 

SCRN0139.PNG

 

 
001.gif

 

 

A suivre : on connecte les capteurs à un petit Arduino pour remonter les informations à Pablo.

 

 



#10 Guigz65

Guigz65

    Membre occasionnel

  • Membres
  • Pip
  • 137 messages
  • Gender:Male
  • Location:33 - Nord Gironde

Posté 18 septembre 2016 - 07:54

Merci pour ce post très intéressant et bien fournis en explications et photos de qualités !je vais suivre avec attention :)

#11 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 19 septembre 2016 - 07:18

Merci Guigz65, tout à fait content de partager :thank_you:

 

Pour remonter les informations des capteurs vers Pablo, on utilise un Arduino Micro câblé comme suit :

 

 

 

Sans-titre-1.jpg

 

Le programme pour cet Arduino se présente sous quelques ligne en langage C qui permettent de remonter les compteurs vers un port série virtuel (9600bauds, 8 bits, 1 stop), rien de méchant.

 

 

Pablo converti la moyenne des deux compteurs en distance :

//  on déduit la distance parcourue :
//  10 tours = 1316 counts
//   1 tour  = 131.6 counts
//  diamètre de roue = 12,5" = 31,75 cm
//  circonférence = 31,75 * PI
    double distance = moyenne * ((31.75 * Math.PI) / 131.6);

Pour valider la mesure de distance réalisée par les deux capteurs (un par roue, on calcule la moyenne des deux en ligne droite) c'est simple :  Pablo doit parcourir une ligne droite sur une distance de 8 mètres, sur une surface bien plane. Pendant ce temps les capteurs remontent la distance parcourue. Une fois la ligne d'arrivée franchie, on compare la distance parcourue et la distance mesurée.

 

Distance parcourue : 8 mètres
Distance mesurée : 8.03 mètres. correct.

 

Une vidéo de la mesure :



#12 Jan

Jan

    Webmaster

  • Administrateur
  • PipPipPipPipPip
  • 4 691 messages
  • Gender:Male
  • Location:Rhône Alpes

Posté 20 septembre 2016 - 05:22

Félicitation pour ton projet Ulysse. si tu peux uploader toutes les photos de ton topic sur le site comme tu as pu le faire pour le gif ou ton premier message ce serait top.

#13 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 21 septembre 2016 - 09:33

La suite avec la réalisation de la boussole dès que j'aurais réglé mes soucis d'upload d'images :wacko:



#14 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 22 septembre 2016 - 05:32

A la question que se pose tout robot lorsqu'il doit se diriger : "comment m'orienter ?" il y a une réponse simple : "avec une boussole".

Sauf qu'une boussole est sensible aux champs magnétiques générés par l'électronique de nos appareils : les hauts parleurs, les moteurs, les transformateurs... Pour exemple le très commun HMC5883L qu'il est impossible à 

 

Bien heureusement d'autres composants sont là pour nous sortir d'affaire, tel le magique Adafruit BNO055. Celui-ci embarque du monde :

 

un système en boîtier (SIP), intégrant un accéléromètre triaxial 14 bits, un gyroscope triaxial 16 bits avec une plage de ±2 000 degrés par seconde, un capteur géomagnétique triaxial, ainsi qu'un microcontrôleur 32 bits ultra-faible consommation Cortex M0+ d'Atmel.

 

 

C'est donc son propre processeur qui fusionne toutes les données des capteurs, ce qui libère complètement les ressources du robot pour d'autres tâches. C'est de la sous-traitance !

 

Pour nous le résultat est idéal : une fois alimenté et calibré ( le faire tourner dans tous les sens ) il est juste parfait, insensible aux perturbations, même en promenant un aimant tout près (alors qu'une boussole à aiguille s'affole juste à côté).

 

BNO055 et arduino micro.jpg

 

Avec une vidéo : d'abord une version 'bidouille' pour tester l'orientation, puis une version câblée sur un petit banc de test 3 axes.

 

 



#15 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 106 messages
  • Gender:Male

Posté 22 septembre 2016 - 08:01

Absolument génial !
Sur ta vidéo, on voit que tu as une visualisation du résultat, mais sur quoi, un pc ?
Par ailleurs, y a t-il une log recensant toutes les mesures ?
Ma chaine vidéo YouTube : 'https://www.youtube....Mz-IzZqyvqEUek'

#16 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 22 septembre 2016 - 09:05

Merci Oracid,

les capteurs de Pablo sont pour la plupart créés à partir de modules Arduino qui réalisent une tâche bien précise ( comme l'odométrie et le compas ) et font remonter ces informations par USB vers Pablo via un port série virtuel par module. L'application qui fait vivre Pablo est hébergée sur un PC portable, développée en C# avec Microsoft Visual Studio ( je montrerai l'architecture en détail par la suite ). Les informations sont affichés sous forme de jolis cadrans qui sont créés par d'autres développeurs je précise, je ne fais que customiser !

Les mesures ne sont pas enregistrées mais elles sont utilisées pour la navigation.

 

Et puisqu'on parle navigation ...

 

Maintenant que Pablo sait mesurer une distance et suivre un cap, on peut déjà lui demander un petit chalenge : suivre un parcours très simple, programmé, avec retour au point de départ sans l'aide du GPS.

 

par exemple un carré :

 

4 mètres, cap 320°

4 mètres, cap 50°

4 mètres, cap 140°

4 mètres, cap 230°

le tout à vitesse réduite.

 

Prêt ? Partez ! (avec un aperçu des correction de trajectoire en temps réel)

on remarquera au passage que Pablo a perdu sa batterie, d'où le câble d'alimentation qu'il traine pour les essais...

 

 

 

Pas si mal. Au final une petite erreur de distance à cause des virages sec à 90° mais rien de bien méchant, en navigation réelle les écarts sont rattrapés à chaque calcul d'un nouveau segment par la position du GPS.

L'important est de valider l'odomètre et le compas.

 

 



#17 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 106 messages
  • Gender:Male

Posté 23 septembre 2016 - 07:00

Tu as choisi de calculer la distance parcourue en comptant les nombres de tours de tes roues.
Si tu roules sur un terrain en forme de tôle ondulée tes calculs seront faussés. Heureusement sur une plage le sol est lisse.
En tout cas, ça a l'air de bien fonctionner.

Sinon, les mesures de ton compas, sont elles enregistrées dans une log ?
Ma chaine vidéo YouTube : 'https://www.youtube....Mz-IzZqyvqEUek'

#18 macerobotics

macerobotics

    Membre occasionnel

  • Membres
  • Pip
  • 115 messages
  • Gender:Not Telling
  • Location:Bretagne

Posté 23 septembre 2016 - 07:55

Bonjour,

 

Super ta vidéo ! Sa avance bien.

 

Quelle est la précision de ton GPS ?

 

Pour les grandes distances de déplacement :

 

Si tu souhaite rattrapés les erreurs par le GPS, la précision doit être meilleur que l'odométrie. Les GPS haut de gamme offre une précision au centimètre, randonné au mètre.

 

Pour une bonne précision : DGPS (GPS différentiel) ou GPS RTK (Real Time kinematic).


Mace Robotics - mobile platform for education makers and research.

www.macerobotics.com


#19 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 338 messages
  • Gender:Male
  • Location:Bretagne
  • Interests:Du moment qu'on s'amuse..

Posté 23 septembre 2016 - 11:27

Un parcours est composé d'une multitude de segments calculés ainsi :

  • pour chaque segment
  1. définition de la prochaine destination (coordonnées GPS)
  2. acquisition de la position actuelle (coordonnées GPS)
  3. calcul de la distance à parcourir et du cap à suivre (de position actuelle à prochaine cible)
  4. suivi du segment en suivant le cap (compas) sur la distance calculée (odomètre)

Oui, si le terrain est accidenté, si les roues patinent (les 2 en même temps) ça va générer des aléas sur le segment en cours uniquement, on ne cumule pas les écarts.

 

navigation2.gif

 

Les mesures du compas ne sont pas enregistrées dans un fichier log.

 

 

 

Le GPS est un modèle disponible chez Drotek  équipé d'une puce Ublox NEO-M8N.  Pour une poignée de dizaine d'Euros.

 

module-gps-ublox-neo-m8n-magnetometre-hmc5983-xxl.jpg

 

Lors d'un tracé, Pablo va parcourir des distances de plusieurs kilomètres. Pour cette application on peut se passer de la précision centimétrique offerte par le système RTK (un récepteur fixe -la base - et un récepteur embarqué - le robot). Et les plages ciblées (!) sont très bien dégagées pour recevoir les signaux venus de si loin !

 

Et pour tout dire, Pablo ne pourrait pas concourir dans la catégorie des robots autonomes navigants s'il faisait appel à un système extérieur ( une base fixe ).

 

A ce sujet on va faire des mesures ...



#20 Mike118

Mike118

    Pilier du forum

  • Administrateur
  • PipPipPipPipPip
  • 5 608 messages
  • Gender:Male

Posté 23 septembre 2016 - 04:45

 

 

Et pour tout dire, Pablo ne pourrait pas concourir dans la catégorie des robots autonomes navigants s'il faisait appel à un système extérieur ( une base fixe ).

 

A ce sujet on va faire des mesures ...

*

Ce projet est réalisé pour un concours ? 


Robot-Maker ne se résume pas que au forum !
Jetez un oeil au blog, aux tutoriels, aux ouvrages, au robotscope  et à la  boutique : le shop des makers   !
N'hésitez pas à contribuer à la communauté et à partager vos trucs et astuces : Ensemble nous irons plus loin ! =)
 

Robot-Maker a pour vocation de :

  • Permettre à des hobbyistes passionnés de s'entraider pour qu'ils puissent mener à bien leurs créations.
  • Permettre à des projets innovants de voir le jour dans le domaine de la robotique et des nouvelles technologies.

à très bientôt ! 






Aussi étiqueté avec au moins un de ces mots-clés : UGV, Land Art

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users