Auteur Occitan | Dernière modification 7/06/2024 par Occitan
Faucheuse_guid_e_par_GPS_RTK_IMG_20200106_155916.jpg Technique
On va décrire ici une faucheuse robot capable de couper l'herbe de façon entièrement automatique sur un parcours déterminé à l'avance. Grâce au guidage par GPS RTK le parcours est reproduit à chaque tonte avec une précision meilleure que 10 centimètres (mon expérience) . Le pilotage est basé sur une carte Aduino Mega, complétée par quelques shields de commande moteurs, d'accéléromètres et boussole ainsi que d'une carte mémoire.
C'est une réalisation non professionnelle, mais qui m'a permis de me rendre compte des problèmes rencontrés en robotique agricole. Cette toute jeune discipline est en train de se développer rapidement, aiguillonnée par les nouvelles lois sur la réduction des désherbants et pesticides. Voici par exemple un lien vers le dernier salon de robotique agricole de Toulouse (https://www.fira-agtech.com/). Certaines entreprises comme Naio technologies fabriquent déjà des robots opérationnels (https://www.naio-technologies.com/).
En comparaison, ma réalisation est bien modeste mais elle permet tout de même de comprendre l'intérêt et les défis de façon ludique.
....Et puis elle fonctionne vraiment ! ...... et peut donc être utilisée pour couper l'herbe autour de sa maison, tout en préservant son temps libre...
Même si je ne décris pas la réalisation jusque dans les derniers détails, les indications que je donne sont précieuses pour celui qui voudrait se lancer. N'hésitez pas à poser des questions ou à faire des suggestions, ce qui me permettra de compléter ma présentation au bénéfice de tous.
Je serais vraiment ravi que ce type de projet puisse donner le goût de l'ingénierie à des bien plus jeunes que moi.... afin d'être prêts pour la grande robolution qui nous attend....
D'ailleurs ce type de projet conviendrait parfaitement à un groupe de jeunes motivés dans un club ou un fablab, pour s'exercer à travailler en groupe projet, avec architectes mécanique, électrique, software chapeautés par un ingénieur système, comme dans l'industrie.
La video d'introduction:
Mp4
Faucheuse_guid_e_par_GPS_RTK_VideoMachine.mp4
Le but est de fabriquer un prototype opérationnel de faucheuse capable de faucher l'herbe de manière autonome sur des terrains pouvant comporter des irrégularités importantes (prés plutôt que pelouses).
Le confinement dans le champ ne peut pas être basé sur une limitation par barrière physique ou par fil guide enterré comme pour les robots de tonte pour les pelouses. Les champs à faucher sont en effet variables et de surface importante.
Pour la barre de coupe, l'objectif est de maintenir la pousse de l'herbe à une certaine hauteur après une première tonte ou débroussaillage obtenus par un autre moyen.
Le système se compose d'un robot mobile et d'une base fixe.
Sur le robot mobile on trouve:
- Le tableau de bord
- Le boîtier de commande général incluant une carte mémoire.
- la manette de commande manuelle
- Le GPS configuré en "rover" ainsi que le récepteur de corrections RTK
- 3 roues motorisées
- Les moteurs à galets des roues
- la barre de coupe constituée de 4 disques tournants portant chacun 3 lames de cutter en périphérie (largeur de coupe de 1 mètre)
- le boîtier de gestion de la barre de coupe
- les batteries
Dans la base fixe on trouve le GPS configuré en "base" ainsi que l'émetteur des corrections RTK. On note que l'antenne est placée en hauteur de façon à rayonner sur quelques centaines de mètres autour de la maison. De plus, l'antenne GPS est en vue de tout le ciel sans aucune occultation par des bâtiments ou par de la végétation.
Les modes Rover et base des GPS seront décrits et expliqués dans la partei GPS.
Je propose de prendre connaissance du robot à travers son mode d'emploi qui fait bien apparaître toutes ses fonctionnalités.
Description du tableau de bord:
- Un interrupteur général
- un premier sélecteur à 3 positions permet de sélectionner les modes de fonctionnement: mode déplacement manuel, mode enregistrement de parcours, mode fauchage
- Un bouton poussoir sert de marqueur. On verra ses utilisations.
- Deux autres sélecteurs à 3 positions servent à sélectionner un numéro de fichier parmi 9. On dispose donc de 9 fichiers de fauchage ou d'enregistrements de parcours pour 9 champs différents.
- Un sélecteur à 3 positions est dédié à la commande de la barre de coupe. Une position OFF, une position ON, une position commande programmée.
- Afficheur deux lignes
- un sélecteur 3 positions pour définir 3 affichages différents
- une LED qui indique l'état du GPS. LED éteinte, pas de GPS. LED clignotante lentement, GPS sans corrections RTK. LED clignotante rapide, corrections RTK reçues. LED allumée, verrouillage GPS sur la plus grande précision.
Enfin, la manette de commande manuelle est munie de deux sélecteurs à 3 positions. Celui de gauche commande la roue gauche, celui de droite commande la roue droite.
Mode pilotage manuel (GPS non nécessaire)
Après mise ON et sélection de ce mode avec le sélecteur de mode, le pilotage de la machine se fait avec la manette de commande.
Les deux sélecteurs à 3 positions ont un ressort de rappel qui les ramène toujours en position milieu, correspondant à l'arrêt des roues.
Quand on pousse les leviers de gauche et de droite vers l'avant les deux roues arrière tournent et la machine va tout droit.
Quand on tire les deux leviers en arrière, la machine recule tout droit.
Quand on pousse un levier vers l'avant, la machine tourne autour de la roue arrêtée.
Quand on pousse un levier vers l'avant et l'autre vers l'arrière, la machine tourne autour d'elle-même, en un point situé au milieu de l'axe joignant les roues arrière.
La motorisation de la roue avant s'ajuste automatiquement en fonction des deux commandes passées sur les deux roues arrière.
Enfin, dans le mode manuel on peut également faucher de l'herbe. Pour cela, après avoir vérifié que personne ne se trouve à proximité des disques de coupe, on met ON le boîtier de gestion de la barre de coupe (interrupteur "hard" pour la sécurité). On place ensuite le sélecteur de coupe du tableau de bord sur ON. A cet instant les 4 disques de la barre de coupe se mettent en rotation.
Mode enregistrement de parcours (GPS nécessaire)
- Avant de commencer à enregistrer un parcours, on définit arbitrairement un point de référence pour le champ et on le marque par un petit piquet. Ce point sera l'origine des coordonnées dans le repère géographique (photo)
- On sélectionne ensuite le numéro de fichier dans lequel le parcours va être enregistré, grâce aux deux sélecteurs du tableau de bord.
- On met la base ON
- On vérifie alors que la LED d'état GPS se met à clignoter rapidement.
- On quitte le mode manuel en plaçant le sélecteur de mode du tableau de bord sur la position enregistrement.
- On amène alors la machine manuellement à la position du point de référence. Précisément c'est l'antenne GPS qui doit se trouver au dessus de ce repère. Cette antenne GPS est située au dessus du point centré entre les deux roues arrière et qui est le point de rotation de la machine sur elle-même.
- On attend que la LED donnant le statut du GPS soit maintenant allumée sans clignotement. Cela indique que le GPS est à sa précision maximum ("Fix" GPS).
- On marque la position origine 0,0 en appuyant sur le BP marqueur du tableau de bord.
- On se dirige alors vers le point suivant que l'on veut cartographier. Dès qu'il est atteint, on le signale à l'aide du marqueur.
- Pour mettre fin à l'enregistrement on repasse en mode manuel.
Mode fauchage (GPS nécessaire)
Il faut d'abord préparer le fichier de points que la machine doit parcourir pour faucher tout le champ sans laisser de surface non coupée. Pour cela on récupère le fichier enregistré dans la carte mémoire et à partir de ces coordonnées, à l'aide par exemple d'Excel, on génère une liste de points comme sur la photo. Pour chacun des points à atteindre on indique si la barre de coupe est ON ou OFF. Comme c'est la barre de coupe qui consomme le plus de puissance (de 50 à 100 Watts suivant l'herbe), il faut veiller à couper la barre de coupe lors de la traversée d'un champ déjà fauché par exemple.
La carte de fauchage étant générée, on remet la carte mémoire sur son shield dans le tiroir de commande.
Il ne reste plus alors que mettre ON la base et se rendre sur le champ à faucher, juste au dessus du repère de référence. On met ensuite le sélecteur de mode sur "Fauchage".
A ce moment la machine attendra toute seule le verrouillage GPS RTK en "Fix" pour faire une mise à zéro des coordonnées et commencer à faucher.
Lorsque le fauchage sera terminé, elle reviendra seule au point de départ, avec une précision d'une dizaine de centimètres.
Pendant le fauchage, la machine se déplace en ligne droite entre deux points consécutifs du fichier de points. La largeur de coupe est de 1,1 mètre. Comme la machine a une largeur entre roues de 1 mètre et peut tourner autour d'une roue (voir video), il est possible de faire des bandes de fauchage contiguës. C'est d'une grande efficacité !
La structure du robot
Le robot est construit autour d'une structure en treillis de tubes d'aluminium, ce qui lui confère une bonne rigidité. Ses dimensions sont environ de 1.20 mètre de long, 1 mètre de large et 80 cm de haut.
Les roues
Elle peut se déplacer grâce à 3 roues de vélo enfant de diamètre 20 pouces: Deux roues arrière et une roue avant semblable à la roulette des chariots de supermarché (photos 1 et 2). C'est le mouvement relatif des deux roues arrière qui assure son orientation.
Les moteurs à galet
A cause des irrégularités de terrain, il est nécessaire de disposer de couples importants et donc d'un grand rapport de réduction. Dans ce but j'ai utilisé le principe de galet appuyant sur la roue, comme sur un solex (photos 3 et 4). La réduction importante permet de garder la machine stable dans une pente, même lorsque l'on coupe l'alimentation des moteurs. En contrepartie, la machine avance lentement (3 mètres / minute)...mais l'herbe pousse lentement....
On peut noter que les 3 roues sont motorisées avec des moteurs à galet. La motorisation de la roue avant permet d'éviter le blocage de cette roue directrice lorsqu'elle tombe dans un creux important.
Pour la conception mécanique j'ai utilisé le logiciel de dessin OpenScad (logiciel à scripts très efficace). En parallèle pour les plans de détail j'ai utilisé Drawing de OpenOffice.
Enfin voici la liste de sites où les différents éléments mécaniques ont été achetés:
https://wikifab.org/images/e/e4/Faucheuse_guid_e_par_GPS_RTK_ListeMeca.pdf
GPS simple
Le GPS simple (photo 1), celui qui est dans notre voiture n'a une précision que de quelques mètres. Si on enregistre la position indiquée par un tel GPS maintenu fixe pendant une heure par exemple, on va observer des fluctuations de plusieurs mètres. Ces fluctuations sont dues à des perturbations de l'atmosphère et de la ionosphère, mais aussi à des erreurs d'horloge des satellites et des erreurs de meure du GPS lui-même. Il ne convient donc pas pour notre application.
GPS RTK
Afin d'améliorer cette précision, on utilise deux GPS situés à une distance inférieure à 10 Km (photo 2). Dans ces conditions, on peut considérer que les perturbations de l'atmosphère et de la ionosphère sont identiques sur chaque GPS. Ainsi la différence de position entre les deux GPS n'est plus perturbée (différentiel). Si maintenant on fixe un des GPS (la base) et si on place l'autre sur un véhicule (le rover), on obtiendra précisément le déplacement du véhicule par rapport à la base sans perturbations. De plus ces GPS effectuent une mesure de temps de vol beaucoup plus présise que les GPS simples (mesures de phase sur la porteuse).
Grâce à ces améliorations, on obtiendra une précision de mesure centimétrique pour le déplacement du rover par rapport à la base.
C'est ce système RTK (Real Time Kinematic) que nous avons choisi d'utiliser.
J'ai acheté 2 circuits GPS RTK (photo 1) à la société Navspark.
Ces circuits sont montés sur un petit circuit imprimé équipé de broches au pas de 2.54 mm qui se monte donc directement sur les plaques d'essai.
Comme le projet est localisé dans le sud-ouest de la France, j'ai choisi des circuits travaillant avec les constellations de satellites américains GPS ainsi que la constellation russe Glonass.
Il est important d'avoir le maximum de satellites afin de bénéficier de la meilleure précision. Dans mon cas, j'ai couramment entre 10 et 16 satellites.
On doit également acheter
- 2 adaptateurs USB, nécessaire pour relier le circuit GPS à un PC (tests et configuration)
- 2 antennes GPS + 2 câbles adaptateurs
- une paire d'emetteurs-récepteurs 3DR afin que la base puisse émettre ses corrections vers le rover et le rover les recevoir.
Ci-joint la liste des achats avec des liens internet vers les revendeurs:
Faucheuse_guid_e_par_GPS_RTK_Liste_GPS.pdf
La notice du GPS que l'on trouve sur le site de Navspark permet de mettre en œuvre progressivement les circuits.
http://navspark.mybigcommerce.com/content/NS-HP-GL-User-Guide.pdf
Sur le site de Navspark on trouvera également
- le logiciel à installer sur son PC Windows pour visualiser les sorties des GPS et programmer les circuits en base et en rover.
- Une description du format des données GPS (phrases NMEA)
Tous ces documents sont en anglais mais ils sont relativement faciles à comprendre. Dans un premier temps, la mise en œuvre se fait sans le moindre circuit électronique grâce aux adaptateurs USB qui fournissent également toutes les alimentations électriques.
La progression est la suivante:
- Test des circuits individuellement qui fonctionnent comme des GPS simples. La visualisation en nuage de ponts montre une stabilité de quelques mètres.
- Programmation d'un circuit en ROVER et l'autre en BASE
- Constitution d'un système RTK en reliant les deux modules par un simple fil. La visualisation en nuage de ponts montre une stabilité relative ROVER/BASE de quelques centimètres !
- Remplacement du fil liant BASE et ROVER par les émetteurs-récepteurs 3DR. Là encore le fonctionnement en RTK permet une stabilité de quelques centimètres. Mais cette fois BASE et ROVER ne sont plus reliés par un lien physique.....
- Remplacement de la visualisation PC par une carte Arduino programmée pour recevoir les données GPS sur une entrée série... (voir plus bas)
Nota: Sur les photos fournies à l'étape 2 on voit que le GPS du rover se trouve au sommet d'un mât. C'est une précaution que j'avais prise pour éviter les effets d'écran de mon corps près de la machine lors de la mise au point. En fait, cette précaution n'est plus utile lorsque la mise au point est terminée et que le rover évolue seul sans présence humaine autour.
Un GPS ne donne que sa propre position dans le repère géographique sans aucune indication de direction. Cela ne suffit pas pour se diriger efficacement vers un autre point à atteindre, comme le suggère la figure 1.
L'idée qui vient naturellement est d'adjoindre une boussole à ce GPS. Dans ce cas il sera nécessaire de caler l'indication de la boussole avec le repère géographique.
Comme le montre également la figure 1, on peut aussi remplacer la boussole par un GPS additionnel. Dans ce cas la différence de position entre les deux GPS permet de calculer directement l'orientation par rapport au repère géographique, sans soucis de recalage de repères. Je n'ai pas choisi cette solution par souci d'économie.
La boussole que j’ai utilisée est la CMPS11. Actuellement ce modèle est remplacé par la CMPS12, basée sur un circuit BNO055, qui est très proche. cmps12.pdf (robot-electronics.co.uk)
J’ai monté cette boussole sur ma machine en orientant vers l’avant la direction « HEADING » fournie par la documentation. La figure 2 montre alors comment est la lecture de la boussole en fonction de l’orientation de la machine. Le Nord est le nord magnétique, celui indiqué par une boussole à aiguille magnétique.
Pourquoi "caler" les indications de la boussole sur le repère GPS ?
Le repère dans lequel le GPS donne les positions est le repère géographique basé sur l'axe de rotation de la terre. Dans ce repère, la direction +Y (figure 1) correspond au Nord géographique. Un déplacement le long de cet axe vers +Y correspond à une augmentation pure de la latitude. De même un déplacement vers +X correspond à une augmentation pure de la longitude Est.
En comparaison, la boussole indique le Nord magnétique qui est en général décalé d'une valeur variable dans le temps, la déclinaison magnétique (Déclinaison magnétique terrestre — Wikipédia (wikipedia.org)). Actuellement cette différence entre Nord géographique et Nord magnétique est de l'ordre du degré.
Actuellement, la boussole étant montée avec HEADING vers l’avant, lorsque la machine se déplace vers le Nord géographique (+Y) on peut s’attendre à une indication de la boussole proche de 0 – 255.
En réalité il n’en est pas tout à fait ainsi pour plusieurs raisons :
- Des offsets dus à la déclinaison magnétique et à l’erreur de calage en rotation de la boussole sur la machine.
- des variations plus ou moins cycliques sans doutes dues aux perturbations magnétiques des différents moteurs. (voir la suite).
C'est donc la raison pour laquelle il faut établir expérimentalement une relation entre les indications de la boussole et les directions dans le repère du GPS.
Comment "caler" les indications de la boussole sur le repère GPS ?
On utilise pour cela le mode enregistrement de parcours (voir étape 5), en faisant se déplacer la machine selon un certain nombre de rayons couvrant la totalité de l’azimut de 360°. Des repères au sol permettent de se guider afin d’assurer un pilotage manuel en ligne droite.
La figure 1 montre par exemple ce que j’ai fait obtenu avec ma machine après fixation de la boussole dans sa position définitive. Toutes les 3 seconde, sont enregistrées une valeur position GPS et une valeur boussole.
On peut alors simplement représenter ces positions GPS traduites en mètres dans le repère XY géographique et en même temps porter la valeur moyenne des valeurs boussole obtenues lors du parcours de chaque rayon.
Toutes ces valeurs peuvent être écrites selon deux colonnes:
- celle des angles calculés dans le repère XY pour atteindre un point choisi (par exemple 110.6)
- celle des indications boussole que l'on aura si la machine se dirige vers ce point (par exemple 230)
Il ne reste plus qu' à trouver la fonction qui va nous faire passer des angles dans le repère géographique GPS aux indications de la boussole. C'est ce que réalise la fonction boussole (angle) dont le programme est donné sur la figure 2. Dans l'exemple donné, on peut vérifier que l'on retrouve bien les indications boussole à mieux que 2 LSB
La valeur but = boussole (angle) est ensuite utilisée par les fonctions de rotation de la machine (figure 3).
Le déplacement de la machine se fait de WP en WP selon des lignes droites.
Au départ d'un WP, la boussole indique la direction du prochain WP à atteindre. Cependant, afin d'éviter de grosses erreurs de "visées" mais aussi de dérive latérale par glissement, des points intermédiaires situés sur la droite joignant les deux WP sont calculés. Ces WP sont situés à moins de deux mètres à l'avant de la machine, comme montré sur la figure 1.
Ensuite, à chaque position courante de la machine P(x,y) on calcule l'angle de correction nécessaire pour atteindre ce point intermédiaire. C'est à ce moment que la boussole intervient.
Le calcul de ces points intermédiaires est explicité dans https://wikifab.org/images/3/34/Faucheuse_guid_e_par_GPS_RTK_PrincipeSuiviLigne_2.pdf
EN CHANTIER
Le boîtier de commande électrique
La photo 1 montre les principales cartes du boîtier de commande qui vont être détaillés ci-dessous.
Câblage du GPS
Les câblages des GPS de la base et de la faucheuse sont donnés sur la figure 2.
On arrive naturellement à ce câblage si on suit la progression de la notice des GPS (voir partie GPS). Dans tous les cas on note la présence de l'adaptateur USB qui permet de programmer les circuits soit en base, soit en rover grâce au logiciel sur PC fourni par NavSpark. Grâce à ce programme, on a également toute les informations de position, nombre de satellites, etc...
Dans la partie faucheuse, la broche Tx1 du GPS est reliée à l'entrée série 19 (Rx1) de la carte ARDUINO MEGA pour recevoir les phrases NMEA (figure 3).
Dans la base la broche Tx1 du GPS est envoyée sur la broche Rx de la radio 3DR pour l'envoi des corrections. Dans la faucheuse les corrections reçues par la radio 3DR sont envoyées sur la broche Rx2 du circuit GPS.
On note que ces corrections et leur gestion sont intégralement assurées par les circuits GPS RTK. Ainsi, la carte Aduino MEGA ne reçoit que des valeurs de position corrigées.
Nota: Le câblage montré ici est celui d'une maquette de labo. Même si ce câblage a permis de tester la machine en conditions réelles avec les vibrations, il est évidemment souhaitable d'en concevoir une version plus durable avec circuits imprimés.
La carte Arduino MEGA et ses shields
- Carte arduino MEGA
- Shield Moteurs roues arrière
- Shield Moteur roue avant
- Shield arte SD
Sur la figure 1, on note que l'on a mis des connecteurs intercalaires entre les cartes pour que la chaleur dissipée dans les cartes moteur puisse s'évacuer. De plus, ces intercalaires permettent de couper des liaisons non désirées entre les cartes, sans avoir à les modifier.
La figure 2 et figure 3 montrent comment sont lues les positions des inverseurs du tableau de bord et de la manette de commande.
La carte microcontrôleur est une Arduino MEGA (UNO n'ayant pas assez de mémoire). Le programme de pilotage est très simple et classique. J'ai développé une fonction pour chaque opération élémentaire à effectuer (lecture tableau de bord, acquisition des données GPS, affichage LCD, commande d'avance ou de rotation de la machine, etc...). Ces fonctions sont ensuite utilisées facilement dans le programme principal. La vitesse lente de la machine (3 mètres / minute) facilite grandement les choses.
Par contre, la barre de coupe n'est pas gérée par ce programme mais par le programme de la carte UNO qui se trouve dans le boîtier spécifique.
Dans la partie SETUP du programme on trouve
- les initialisations de pins utiles de la carte MEGA en entrées ou sorties
- l'initialisation de l'afficheur LCD
- l' initialisation carte mémoire SD
- l' initialisation de la vitesse de transfert de l'interface série hardware vers le GPS
- l' initialisation de la vitesse de transfert de l'interface série vers l'IDE
- l' arrêt des moteurs et de la barre de coupe
Dans la partie LOOP du programme on trouve au début
- les lectures du tableau de bord et de la manette, du GPS, de la boussole et des accéléromètres
- un sélecteur à 3 dérivations, suivant l'état du sélecteur de modes du tableau de bord (manuel, enregistrement, fauchage)
La boucle LOOP est rythmée par la lecture asynchrone du GPS qui est l'étape la plus lente. On revient donc en début de boucle environ toutes les 3 secondes.
Dans la dérivation mode normal, la fonction de déplacement est commandée en fonction de la manette et l'affichage est mis à jour environ toutes les 3 secondes (position, état GPS, direction boussole, inclinaison...). Un appui sur le BP marqueur met à zéro les coordonnées de position qui seront exprimées en mètres dans le repère géographique.
Dans la dérivation mode enregistrement, toutes les positions mesurées pendant le déplacement sont enregistrées sur la carte SD (période d'environ 3 secondes). Lorsque un point d'intérêt est atteint, l'appui sur le marqueur est enregistré. dans la carte SD. La position de la machine est affichée toutes les 3 secondes, en mètres dans le repère géographique centré sur le point origine.
Dans la dérivation mode fauchage: La machine a préalablement été amenée au dessus du point de référence. Au basculement du sélecteur de mode sur "fauchage", le programme observe les sorties GPS et en particulier la valeur du flag d'état. Lorsque le flag d'état passe en "Fix", le programme effectue la mise à zéro de la position. Le premier point à atteindre est alors lu dans le fichier fauchage de la mémoire SD. Quand ce point est atteint, le virage de la machine se fait comme indiqué dans le fichier fauchage, soit autour d'une roue, soit autour du centre des deux roues.
Le processus se répète jusqu'à ce que le dernier point soit atteint (en général point de départ). A ce moment le programme met la machine et la barre de coupe à l'arrêt.
Le principe de suivi de ligne entre deux waypoints est expliqué ici: https://wikifab.org/images/d/d6/Faucheuse_guid_e_par_GPS_RTK_PrincipeSuiviLigne.pdf
Voici le fichier du programme: https://wikifab.org/images/6/64/Faucheuse_guid_e_par_GPS_RTK_SW_Faucheuse_pilotage_22.ino
https://wikifab.org/images/9/97/Faucheuse_guid_e_par_GPS_RTK_PourWiki.pdf
Ci-dessous un exemple de fichier de fauchage:
https://wikifab.org/images/f/f2/Faucheuse_guid_e_par_GPS_RTK_ExempleFichierFauchage.txt
La barre de coupe est constituée par 4 disques tournant à la vitesse de 1200 tr/ minute. Chaque disque est muni de 3 lames de cutter escamotables. Ces disques sont disposés de façon à réaliser une bande de coupe continue de 1.2 mètre de large.
Les moteurs doivent être contrôlés de façon à limiter le courant
- au démarrage, à cause de l'inertie des disques
- lors de la coupe, à cause des blocages par trop d'herbe
Pour cela on mesure le courant dans le circuit de chaque moteur grâce à des résistances bobinées de faible valeur. La carte UNO est câblée et programmée pour mesurer ces courants et envoyer une commande PWM adaptée aux moteurs.
Ainsi, au démarrage, la vitesse augmente progressivement jusqu'à sa valeur maxi en 10 secondes. En cas de blocage par de l'herbe, le moteur s'arrête pendant 10 secondes et refait une tentative de relance pendant 2 secondes. Si le problème persiste, le cycle de 10 secondes de repos et 2 secondes de relance recommence. Dans ces conditions, l'échauffement du moteur reste limité, même en cas de blocage permanent.
Les moteurs se mettent en route ou s'arrêtent lorsque la carte UNO reçoit le signal envoyé par le programme de pilotage. Cependant un interrupteur hard permet de couper le courant de façon fiable pour sécuriser les opérations de maintenance
Ajouter Galileo à GPS et Glonass
La végétation (arbres) peut limiter le nombre de satellites en vue du véhicule et réduire la précision ou empêcher le verrouillage RTK. On a donc intérêt à utiliser le maximum de satellites simultanément. Il serait donc intéressant de compléter les constellations GPS et Glonass par la constellation Galileo.
On devrait pouvoir bénéficier ainsi de plus de 20 satellites au lieu de 15 au maximum, ce qui permet de mieux s'affranchir de l'écrantage par la couverture végétale.
Il commence à exister des circuits travaillant simultanément avec ces 3 constellations:
- Navspark a sorti un circuit "identique" à celui que j'ai utilisé, mais avec Galilleo en supplément (photo 1) (http://navspark.mybigcommerce.com/ns-hp-gn2-px1122r-multi-band-quad-gnss-rtk-breakout-board/)
- Il existe aussi des shields très compacts (phot 2) qui incluent à la fois le circuit GPS et l'émetteur-récepteur sur le même support
https://www.ardusimple.com/product/simplertk2b-starter-kit-mr-ip65/
....Mais le prix est bien supérieur à celui des circuits que nous avons utilisés ici.
Compléter le GPS par de l'odométrie et par un LIDAR
Malheureusement, en arboriculture il arrive que la couverture végétale soit très importante (champ de noisetiers par exemple). Dans ce cas, même avec les 3 constellations il se peut que le verrouillage RTK ne soit pas possible.
Il faut donc introduire un capteur qui permettrait de conserver la position même en l'absence momentanée de GPS.
L'utilisation de l'odométrie est une solution simple pour suppléer à la perte du GPS. Son principe consiste à mesurer précisément la rotation des deux roues motrices pour en déduire le trajet de la faucheuse. Malheureusement la précision est limitée par tous les petits glissements des roues par rapport au sol. Je suis en train de tester cette solution en situation de terrain réelle.
L'utilisation d'un LIDAR pourrait également permettre de se repérer dans un verger. Son principe repose sur le balayage du plan horizontal par un faisceau laser émis par une tourelle. Au cours de ce balayage, la distance à tous les objets interceptés est mesurée . Les troncs des arbres sont très faciles à repérer dans ce cas par le faisceau laser et peuvent servir à observer la marche du robot. Voici par exemple un type de LIDAR qui pourrait convenir pour des conditions extérieures (photo3): https://www.robotshop.com/eu/fr/telemetre-laser-360-rplidar-40m.html
Dans les deux cas le GPS reprendrait sa fonction en bout de rangée, au sortir de la couverture végétale.
Bonjour ! ... et bienvenue au club ! Je suis ravi que vous vous lanciez dans cette aventure. J'ai vu que vous aviez des connaissances en informatique industrielle, ce qui sera fort utile pour la réalisation d'un programme (même si ça reste assez simple dans le principe - je ne suis pas du tout informaticien). Pas de problème avec la mécanique si vous êtes bricoleur. C'est une bonne chose d'avoir une hauteur de coupe réglable. Pour le terrain à tondre, pas trop d'arbres pour un bon fonctionnement du GPS. Pente < 15° avec mon système de galets. Si vous souhaitez discuter et échanger des fichiers, faites moi un message privé sur wikifab et je vous communiquerai mon mail. Bon courage !
Bonjour, j aimerais moi aussi fabriquer une tondeuse autonome guide par rtk.
Pouvez vous éventuellement montrer comment se font les corrections rtk entre la base et la tondeuse... peut on voir le code? Merci d'avance, en espérant avoir une réponse
Bonjour, Les corrections RTK envoyées par l'émetteur de la base sont reçues par le récepteur situé sur le rover. Ces corrections reçues sont directement envoyées sur le circuit GPS configuré en rover, sur son entrée RX2. Le logiciel de correction est contenu dans la puce GPS (firmware) et effectue les corrections de façon entièrement transparente. Le logiciel de pilotage de la faucheuse n'a donc aucune correction RTK à effectuer.
OK, si je comprends bien la tondeuse reçoit le correctif provenant de la base. Quel est le type de transmission ? Rs232? Quel type de liaison est utilisé ?
Que dois on faire sur la base? Dois ont lui envoyer des données comme la position exacte de la base? Peut ont avoir accès au schéma et aux étapes à effectuer sur les carte gps? Vous récupérez donc la position gps corrigé au niveau de la tondeuse et vous effectuez le calcul du traget à effectuer.
Merci d'avance
C'est expliqué à l'étape 17, sur la figure 2 (Attention, le tuto a été modifié par un saboteur et la version actuelle est incomplète. Il faut afficher la version du 10 Septembre en allant sur l'historique). Je vais contacter le manager du site pour annuler cette version actuelle incorrecte.
Bonjour, j'ai l'intention de me lancer dans les tests, j'ai vu le lien vers les composants que vous utilisez, apparement le module gps rtk n'est plus disponible sur le site du fournisseur. J'aurais aimé trouver les mêmes que vous , auriez vous un autre fournisseur? Sinon sur le site on me propose une autre version a 50 dollars (NS-HP-GN5) Pensez vous que la programmation sera la même? Il est moins cher que le NS-HP-GL . Je voudrais ne pas l'acheter pour rien... Egalement au sujet des modules emetteurs recepteurs le lien semble mort, auriez vous une reference?
Merci d'avance
Bon, mon tuto est maintenant rétabli (c'est la première fois que ça arrive. Pour le choix entre le module à 50 E et celui à 85 E, je ne sais pas vous conseiller... peut-être pourriez-vous poser la question sur le forum de Navspark en précisant le pays où vous résidez (il faut pouvoir utiliser le maximum de satellites de différentes constellations). Quant aux Emetteurs / récepteurs, vous pourriez utiliser ceux utilisés à ce lien https://www.ardusimple.com/product/simplertk2b-starter-kit-mr-ip65/ . Cordialement .
Le modèle NS-HP-GN5 semble fonctionner a 115200baud, j'ai peur que les modules radio risque de pas supporter ce débit.(est ce que sur vos modules gps rtk le débit est réglable?) La notice semble identique au votre.
Au sujet des modules radio, J'ai trouvé ce module : https://fr.aliexpress.com/item/32787506718.html?gatewayAdapt=glo2fra
J'ai egalement une question au sujet de la trame NMEA, comment la traitez vous? Utilisez vous une librairie specifique? Comment déterminez vous le cap (j'ai vu que vous avez un module boussole), quel est l'algorithme pour determiner quelle direction prendre ?
Je n'ai pas vu sur le site de code en rapport, pouvez vous le partager?
Le lien que vous avez envoyé semble erroné.
La vitesse de transmission du module que j'ai utilisé était similaire et les modules radio étaient de même type que ceux que vous avez trouvés. Je trie et traite les chaines NMEA "à la main", sans utiliser de librairie spécifique. Cette partie du traitement apparaît dans le listing du programme (lien donné à l'étape 19). Je détermine le cap à l'aide d'une boussole (paragraphe 11,12,13). Mais la boussole peut être perturbée par d'environnement ou se dérégler au cours du temps. Afin de recaler très précisément l'indication de la boussole sur l'indication du GPS, je propose de rajouter un asservissement PID (paragraphe 14 et 15). Je n'ai pas réalisé cette amélioration car la précision de la boussole permettait déjà d'obtenir l'objectif de précision que je m'étais fixé (10 cm).
Voici une info sur les constellations et les bandes utilisées par les montres GPS: GPS, GNSS, double-fréquence : https://www.frandroid.com/produits-android/accessoires-objets-connectes/1576356_gps-gnss-double-frequence-tout-comprendre-a-la-geolocalisation-des-smartphones-et-montres-connectees Ne pas oublier une bonne antenne adaptée aux fréquences utiles: https://navspark.mybigcommerce.com/multi-frequency-high-precision-antenna/
Bravo pour votre projet qui est une mine d'informations. Je sèche un peu sur la partie algo de l'odométrie lorsqu'il y a des obstacles identifiés en amont à éviter. Certaines applications de robots tondeuses arrivent en fonction de la délimitation de la zone de coupe et de l'exclusion des obstacles à générer une trajectoire permettant de tondre toute la zone délimitée. Avez-vous quelques idées sur la façon d'aborder cette problématique ? Est-ce que l'algo de Kalman ne pourrait pas corriger la trajectoire lorsque le gps n'est pas captable ? Les algorithme A*, RRT, Dijkstra's ne semblent pas vraiment adaptés, qu'en pensez-vous ?
Bonjour. Merci pour vos encouragements. La machine qui est présentée ici peut être munie de détecteurs de proximité pour détecter les obstacles et les éviter. Elle reviendra ensuite automatiquement dans la trace prévue. Evidemment il faut remanier le SW pour inclure les capteurs de proximité ainsi que la manœuvre d'évitement. En cas de perte de signal GPS, la machine s'arrête jusqu'à ce qu'un signal valide soit retrouvé. On pourrait bien sûr ne pas attendre et commuter sur un autre type de navigation (Odométrie ou Lidar), mais tout est à faire.... En fait, en faisant cela on passe pratiquement dans le domaine professionnel.... et je ne suis pas du tout roboticien ou automaticien. ... En tout cas bon courage dans votre construction et ne manquez pas de décrire vos réalisations sur Wikifab ! Bien cordialement.
Voici le lien: https://forums.futura-sciences.com/technologies/868817-faucheuse-guidee-gps-rtk.html - En plus de quelques explications supplémentaires on y trouver également quelques photos sur les moteurs à galets et sur les disques de coupe.
@Dominique: Il est difficile d'échanger au travers de ces commentaires. Je propose que tu décrives ton projet tel qu'il est aujourd'hui en utilisant les outils prévus. Il me semble qu'on pourrait alors réserver la dernière étape (ou plusieurs dernières) pour les échanges sur les différents sujets. On échangerait ainsi, explications, photos, fichiers de manière plus facile. D'autres que moi pourraient d'ailleurs participer. Lorsque le projet sera terminé et que tu auras décrit complètement ta machine, tu pourras même supprimer ces échanges si tu le souhaites. As-tu d'autres idées ? A bientôt.
Salut a toi. je n'avais pas vu ta réponse. Les outils prévus ??? Concernant mon projet , je travaille sur le logiciel ONSHAPE qui a un version gratuite (mais les créations réalisées sont visibles de tous). pour ma part je le paie car je l utilise pour des sujets confidentiels. Si tu installes Onshape, je peux facilement partager mes fichiers. j'utilise des pièces du commerce, des pièces coupées au laser et des pièces imprimées en D. Alors du coup je me suis remis en selle et je viens de commander le grand livre arduino. .. si je capte un peu je continuerai dans cette voie . mais comme j'ai beaucoup d'arbres , je crois que je serai obligé de passer par le LIDAR. vu l investissement je n'irai que si je suis certain d'aboutir. Pour l'avancement du projet, j'avais un peu sous dimensionné les moteurs de roues notamment dans les grosses pentes, et je réalise un autre proto avec des moteurs plus gros. A bientôt j'espère Dominique
Voici les premiers liens utiles: ( https://www.arduino.cc/reference/en/ ) et ( https://www.arduino.cc/en/Tutorial/HomePage ). D'autre part il y a un site français d'amateurs de modélisme ferroviaire qui peut être très utile ( https://www.locoduino.org/ avec une bonne intro https://www.locoduino.org/spip.php?article215). Au niveau bouquins, il y en a un qui rappelle d'abord les petites lois utiles d'électricité et d'électronique avant d'aborder la programmation Arduino: Le grand livre d'Arduino (Erik Bartmann).
Bonjour et merci pour votre réponse. Pour la partie traction, j'utilise des motoréducteurs 24v 0.3 A. Ils entrainent une roue dentée intérieure située dans chaque roue de la tondeuse. Ce système permet une régularité de traction nécessaire à l'adhérence. Pour la coupe, j'ai testé de nombreux moteurs sur un chassis poussé. Pour de l'herbe, j'ai opté pour des moteurs brushless de ventilateurs qui sont données pour 84W en 24v et qui tournent a 3000 tr/mn Pour débroussailler, j'ai opté pour des Outrunner 5045 qui font très bien le job.
Concernant mon manque de compétence il comprend aussi la programmation de l'Arduino ainsi que l'odométrie ou le Lidar. Je sais par contre respecter un schéma de branchement et suivre des instructions. A bientôt
Bonjour. Pour les moteurs de ta base roulante, il n'y a aucun problème pour les commander de façon proportionnelle avec un schield commande et une carte UNO ou MEGA. Ces cartes s’achètent chez tous les vendeurs de ce type de matériel comme par exemple GoTronic. Voici par exemple une carte MEGA qui convient pour le pilotage de la base roulante avec la gestion des moteurs et de tous les capteurs (GPS, Inertial Measurement Unit: Accéléromètre + Gyromètre): https://www.gotronic.fr/art-carte-arduino-mega-2560-12421.htm. Des exemples de schields commande moteurs https://www.gotronic.fr/cat-shields-moteurs-1430.htm. Pour l'IMU + boussole je conseille le circuit BNO055 (https://www.gotronic.fr/art-module-9-dof-bno055-27795.htm) qui fournit directement les angles d'Euler (de plus je le connais: https://wikifab.org/wiki/Mesure_de_la_vitesse_de_rotation_de_la_terre_avec_un_gyrom%C3%A8tre_BOSCH_BNO055). Bon on aura l'occasion de reparler de tout ça. Mais avant il faut te familiariser avec Arduino comme expliqué plus haut.
Bonjour Franchement, Félicitations a OCCITAN
Je suis moi aussi sur un projet de fauchage d'herbe. Et comme tout le monde , j'ai une problématique différente.
car le terrain a couper a parfois des pentes de 100%.
Ce n'est pas un grand souci pour moi car je travaille dans la mécanique et je possède un tour, une fraiseuse, une imprimante 3D .. etc , pour concevoir et fabriquer la partie mécanique de cet engin.
J'ai opté pour une mécanique 4 roues motrices. les moteurs de chaque coté tournent ensemble et la machine tourne à la manière d'un tank (d'ailleurs la possibilité de chenilles sur un châssis fixe est envisageable sur ma machine..)
La hauteur de coupe est réglable. A cause des inégalités du terrain, je dois me contenter d'une largeur de coupe de 60 cm (Quoique avec un pilotage bien étudié, je pourrais augmenter cette valeur )
l'essentiel du châssis est composé de tôles (coupées au laser) de pièces imprimées et de pièces usinées.
Je suis bien entendu prêt à partager mes plans pour ceux que ca intéresse. Mon problème a moi, c'est la partie électronique. pour moi c'est une vaste nébuleuse. Chaque fois que je me suis attelé à l'électronique, je me suis mangé les dents. D'ou l 'idée d'Occitan de mutualiser les compétences a fait Tilt dans ma tête. Je recherche donc de l'aide sur le l'électronique et je peux fournir de l'aide (conséquente) sur la partie mécanique. Bonne journée a Tous Dominique
Bonjour, J'ai vu votre message privé similaire au message ci-dessus. Je vous réponds sur la messagerie publique afin d'animer un peu ce site de wikifab que je souhaiterais voir beaucoup plus animé, comme par exemple ce que l'on peut trouver sur le site américain de Instructables.... D'abord merci pour votre intérêt et vos encouragements. Donc vous êtes plutôt bien armé (connaissances et matériel) sur les aspects mécaniques. Heureusement car franchir des pentes de 100% (45°), est un vrai défi. Je suppose que c'est possible avec des roues à picots ou des chenilles.... Dans mon design la partie électronique est réduite au maximum. Cette partie électronique se réduit à l'interface entre les actuateurs électriques et les cartes Arduino (MEGA + schields). Tout le reste des fonctions est réalisé par programmation de ces cartes, ce qui ne nécessite aucune connaissance d'électronique. Par contre la partie électronique d'interface entre cartes et actuateurs est très dépendante des actuateurs choisis. Pour ma part, c'est simple car j'ai des motoréducteurs CC qu'il suffit de brancher à la carte de commande achetée suivant la notice de la carte. On évite ainsi d'avoir à réaliser une carte de commande avec ponts en H, etc... Toutefois si on a des moteurs qui consomment de très forts courants, il faudrait se développer sa propre carte ce qui nécessite des vraies connaissances en électronique. Pour la partie GPS, on peut dire qu'il n'y a pas vraiment de connaissances à avoir...il suffit de suivre la notice.... En fait, il faut juste connaître les bases de l'électricité, tensions, courants et loi d'Ohm.... Voilà pour un premier contact. Dites moi quel type de moteurs vous allez utiliser ? A bientôt !
Bonjour,
J'aimerais réaliser le même projet, ne connaissant rien en programmation électronique je voulais savoir s'il est possible de me partager votre logiciel et code arduino? Je suis preneur de toute information pour apprendre.
Est-il aussi possible d'éviter un obstacle, arbre?
Valentin
Bonjour, Pour ce type de projet il faut avoir une idée précise de ce que l'on veut faire et essayer de trouver la majorité des principes que l'on va utiliser. Ensuite, oui, un partage avec d'autres peut s'avérer profitable. La programmation est presque la partie la plus facile du projet. On peut d'ailleurs s'y entraîner en réalisant un petit robot jouet comme on en trouve beaucoup sur les sites qui parlent d'Arduino. Comme le parcours est prévu à l'avance, il n'y a pas de risque de rencontrer un arbre. Par contre, si un obstacle survient de façon non prévue, il est possible de l'éviter mais il faut munir la faucheuse de détecteurs d'obstacles, ce qui n'est pas le cas actuellement.
Bonjour,
Comment arrivez vous à faire suivre le parcours du robot grâce à l’arduino et à faire le lien avec l’antenne gps ? Je suis preneur du code si vous le voulez bien j’aimerai comprendre
Merci
Bonjour, je suis le "toupon" de Toulouse (que tu viens de voir sur Instructables). Une petite question: à quelle vitesse as-tu réglé le "update rate" des RTK ? Il peux monter jusqu'à 25Hz en mono-constellation et je suis curieux de savoir ce que tu as mis. Louis (aussi retraité et qui a du temps maintenant)
Salut Louis, Toulousain comme moi ! Si mes souvenirs sont bons, je suis resté à 1Hz, ce qui est largement suffisant pour ma faucheuse (Vitesse de 3 m / min) Chez NavSpark le prix des circuits dépend de la vitesse de rafraichissement. Et toi que veux-tu faire ? Une faucheuse ? un drone ? Cordialement
En fait je cherche un GPS capable du décimétrique à grande vitesse de rafraichissement. Idéalement un update rate à 100Hz. Bien sur à budget "amateur". Je ne trouve pas, sauf à viser les solutions professionnelles hors de prix. C'est pour mesurer très précisément la position d'un mobile qui peux se déplacer jusqu'à 100Km/h. Si jamais tu as une idée ... Les NavSpark sont "limités" à 25Hz, ce qui est déjà très bien, mais pas assez pour mon projet. Louis. Je suis à Tournefeuille 31170.
bonjour Monsieur félicitation pour votre projet . J'ai le projet de faire un robot tondeuse pour un terrain de 5000m² et ta faucheuse est une grande source d'inspiration j'ai des sécurité à ajouté par contre
Bonjour et Merci ! Une discussion s'est également engagée avec un autre personne intéressée sur Futura-Sciences (https://forums.futura-sciences.com/technologies/868817-faucheuse-guidee-gps-rtk.html). Venez y discuter de votre projet ! A bientôt.
In this article, we will help you to find out the best gaming headphones under 2000 that are available in the market. The gaming industry is booming right now and if you are one of those lovers of gaming then gaming headphones become an essential accessory. Now the question is which one should you buy. There are many options available in the market with a variety of prices. Some gaming headphones can be very expensive and if you are on a tight budget then the price of the gaming headphones becomes a crucial element. Here is a list of the 5 best gaming headphones under 2000 that you can buy. https://smartphonecrunch.com/best-gaming-headphones-under-2000/
fr none 0 Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #
Je suis impressionné par votre réalisation. Je suis un ancien ingénieur ( on le reste quand même toujours ) et propriétaire d’un petit terrain de camping. Superficie 2hectares et beaucoup de fatigue pour entretenir. J’ai donc décidé de réaliser un robot de tonte et epluché le net en long large et travers…. C’est votre projet qui s’approche le plus de mes besoins Je suis donc ravi de vous suivre et je me lance dans la fabrication de votre faucheuse. Mais avant tout j’ai besoin d’un réglage de coupe je vais donc modifier votre projet en ce sens Photos et conseils seront les bienvenus et je partagerai mes avancées avec tous. André