Piloter un #8297 par NXT & GPS

Si vous avez bidouillé un modèle Lego officiel...
Avatar de l’utilisateur
Bric_à_Brac
Level 3
Level 3
 
Messages: 21
Localisation: Belgique
Âge: 74 ans

Messagepar Bric_à_Brac » Mar Sep 13, 2011 2:25 pm

Pour votre info...
Dernières modifs apportées à "mon bloc" TRACKING : j'ai tenu compte du rapport de démultiplication entre la barre de direction (en direct sur le servo) et la crémaillère. Rapport de 4. Le résultat est que le bloc TRACKING réagit trop fort et le déplacement du robot se fait en lacet. J'ai donc appliqué le facteur 2 qui donne de bons résultats.

J'ai rajouté aussi un bloc "limiteur" de rotation de servo (fourni par Hitechnic); le servo A (direction) tournait de -182° à +182°, butée à gauche et butée à droite. Celà faisant, lorsque le robot est manipulé dans une direction très éloignée de l'objectif, le servo part plein pot en butée et reste parfois coincé. Il reste coincé car il veut reprendre sa direction initiale par le chemin le plus court. J'ai donc mis le limiteur à -165° et +165°. Plus de soucis.

Observation générale de l'usage du GPS : (c'est une première expérience...)
Les valeurs - Latitude & Longitude - mesurées sur Goooog ne sont pas celles mesurées par mon smartphone et ne sont pas celles mesurées par le dGPS de mon robot.
Ces valeurs rapportées sur Goooog montrent des différences de qq. mètres. Même sur le dGPS, les deux derniers chiffres changent +/- toutes les 2 minutes sur la même position. La LED du dGPS est bien allumée indiquant que l'antenne GPS capte bien plus de 5 satellites.... Mais si notre robot, en mouvement, voit sa position GPS calculée changer de quelques mètres, il fait demi-tour et puis reprend sa route initiale. Je vais donc investiguer les moyens de remédier à cet aléa.

Essai sur route : Conditions : 1 wayPoint, pas d'obstacle. le robot suit bien sa trajectoire de façon assez linéaire jusqu'au moment où il reçoit une position GPS différente de qq. mètres.... Il fait donc demi-tour et puis reprend sa route. La vitesse "plein-pot" est de +/- 2 Km/heure.

Le résultat est globalement bon mais mitigé à l'heure actuelle. Je poursuis mes recherches et améliorations.
Merci pour vos suggestions éventuelles.

A bientôt.


Image
L'union fait la force...

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 51 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Mar Sep 13, 2011 3:03 pm

Bric_à_Brac a écrit: Mais si notre robot, en mouvement, voit sa position GPS calculée changer de quelques mètres, il fait demi-tour et puis reprend sa route initiale.

Tu veux dire que le robot suit une route prédéfinie du départ à l'arrivée ? Tu devrais faire recalculer cette route à chaque boucle en prenant ta position actuelle comme nouvelle position de départ, ainsi le robot corrigera sa route et oubliera l'ancienne.
Sinon pour tes mesures gps gênantes tu peux essayer soit une moyenne sur plusieurs mesures soit éliminer les mesures trop éloignées (sachant que tu fais du 2km/h).

Avatar de l’utilisateur
Bric_à_Brac
Level 3
Level 3
 
Messages: 21
Localisation: Belgique
Âge: 74 ans

Messagepar Bric_à_Brac » Mer Sep 14, 2011 10:25 am

Merci Alban pour ton commentaire.
Je me suis peut-être mal exprimé : la destination est fixe, mais la position du robot est recalculée toutes les secondes dans la boucle TRACKING.
Deux sources peuvent influencer un changement de direction : 1/ les coordonnées temps réel du GPS, 2/ la direction absolue du robot générée par le compas.
Ces deux éléments se conjuguent pour définir la déviation/correction à appliquer pour atteindre la destination.
Un calcul de la moyenne des déviations sur les 3 ou 4 ou 5 dernières mesures est une bonne suggestion. J'investigue...
A bientôt.
L'union fait la force...

Avatar de l’utilisateur
Bric_à_Brac
Level 3
Level 3
 
Messages: 21
Localisation: Belgique
Âge: 74 ans

Messagepar Bric_à_Brac » Jeu Sep 22, 2011 12:37 pm

Pour votre information...
Les recherches et les essais n'ont pas manqué ces derniers temps.
La technologie GPS est celle d'aujourd'hui avec ses limitations, en attendant GLONASS et GALILEO.
La précision actuelle est de 7 à 10 mètres (d'après mes lectures). Les mesures sont très sensibles et donc chageantes à travers le temps du fait de plusieurs éléments très bien décrits dans le document dont référence en français : http://www.trackgps.com sous l'onglet "Information". Trois sujets : Comment fonctionne le GPS ? - Quelle est la précision du GPS ? Qu'est-ce que WAAS ?
Ceci étant largement expliqué, il faut faire avec et j'ai donc trouvé une solution acceptable pour le robot :
1./ Pour éviter les mouvements parfois innattendus du robot, j'ai ajouté un filtre programable qui pondère les mesures successives de déviation par rapport à l'objectif. Pour les fortes déviations, je donne un poids de 1 et pour les petites déviations, je donne un poids de 4. Celà se fait facilement par une droite d'équation du type y= ax + b . Le résultat est tout à fait satisfaisant grâce au bloc "PID" de Hitechnic et dont la case "Attendre la fin" est décochée.... Merci encore à Roboléo. :resp: Le résultat est surprenant et tout à fait souhaité !!!
2./ Pour s'affranchir de la tolérance de 7 à 10 mètres, je choisi un objectif 1000 fois plus éloigné que celui que je veux atteindre et je commande les modifications de trajectoire par la méthode déjà évoquée de l'odométrie; je compte un certain nombre de tours de roues entre chaque WayPoint. Dans le cas de projets où le robot fait une distance appréciable, la fonction "Distance to target" est intégrée au bloc dGPSnavigation de Dexter. Avec l'odomètrie, je peux donc gérer au cm près les déplacements même dans la maison.

Deux observations amusantes et rassurantes :
1./ La distance entre mon labo et le "Clock Tower" de Hong Kong calculée par Gooog et celle du dGPS diffèrent de 4 km. Celà signifie que le calculateur intégré est de qualité.
2./ Pour ceux qui auraient tenté de créer un algorithme de correction de déviation par eux-même, ils auront sans aucun doute rencontré des difficultés pour des trajectoires en direction du nord magnétique. Le bloc Compass de Hitech a résolu ce problème. C'est un capteur intelligent !!

Dernière observation : Il faut tenir compte de la déclinaison magnétique car le nord vrai (GPS) n'est pas le nord magnétique du compas...

Sur la vidéo, vous verrez le robot définir sa zone de braquage, puis calibrer le compas par un tour complet sur lui-même, acquérir le premier WayPoint et partir en promenade pour un trajet en carré en évitant les obstacles.
Bonne découverte.

http://imageshack.us/clip/my-videos/21/zqa.mp4/

A bientôt !
L'union fait la force...

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 51 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Jeu Sep 22, 2011 7:09 pm

Excellent !

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Ven Sep 23, 2011 5:01 pm

Félicitations.
Tu es un des rares à avoir compris l'usage du bloc PID. Ta petite astuce de correction de trajectoire renforce encore plus son usage. La manière de t'affranchir de la tolérance est originale. Bref du travail de pro…! Tu devrais faire connaître cette expérience à HiTechnic; ils sont très preneurs d'infos sur ce bloc.
…Et il va falloir à mon tour me familiariser avec le GPS. Je garde ce sujet pour les soirée d'hiver.
Encore une fois, bravo. :clap:
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Avatar de l’utilisateur
Bric_à_Brac
Level 3
Level 3
 
Messages: 21
Localisation: Belgique
Âge: 74 ans

Messagepar Bric_à_Brac » Lun Sep 26, 2011 9:24 pm

Merci Roboleo et à vous tous pour vos recommandations pour atteindre ce résultat.
Si vous souhaitez vous lancer vous aussi dans un projet avec GPS et dans le cas où vous porteriez votre choix sur le fournisseur Dexter Industries, sachez que leur carte GPS a été améliorée de trois nouvelles fonctionnnalités depuis fin juillet 2011, à savoir : altitude, nombre de satellites accrochés et dilution. Le nombre de satellites est important de même que la dilution qui donne une évaluation de la précision du signal et donc de la position. Pour en savoir plus sur la signification de la dilution, veuillez bien vous rapporter au point d'entrée mentionné deux posts avant.

J'ai lu également que nos amis Russes vont lancer le 30/11/2011 à Baïkonour une fusée emportant les 3 premiers satellites GLONASS. Les puces de réception sont déjà prêtes à recevoir ce nouveau signal dès que possible. La puce est compatible avec celle déjà utilisée par Dexter (pin compatible NEMEA) et porte le nom de GG12A.
Plus d'info en anglais chez http://www.skytraq.com.tw/news/news2011-8-19.html
A bientôt.
L'union fait la force...


Retourner vers Modifications des sets officiels

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 7 invités