Faucheuse guidée par GPS RTK

Auteur avatarOccitan | Dernière modification 7/06/2024 par Occitan

Cette faucheuse robot est 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.

Introduction

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.

Étape 1 - Les objectifs

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.


Étape 2 - Présentation générale

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.


Étape 3 - Mode d'emploi ( 1/4 )

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.



Étape 4 - Mode d'emploi ( 2 /4 )

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.

Étape 5 - Mode d'emploi ( 3/4 )

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 le clignotement de la LED d'état GPS se met à clignoter rapidement.

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






Étape 6 - Mode d'emploi ( 4/4 )

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é !





Étape 7 - Partie mécanique

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 letement (3 mètres / minute)...mais l'herbe pousse lentement....


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


Étape 8 - Le GPS RTK (1/3)

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.



Étape 9 - Le GPS RTK (2/3)

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





Étape 10 - Le GPS RTK (3/3)

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)


Étape 11 - La partie électrique

Étape 12 - Le programme de pilotage Arduino

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, 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 et de la boussole

- un sélecteur à 3 branches, suivant l'état du sélecteur de modes du tableau de bord (manuel, enregistrement, fauchage)


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

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

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.

En mode fauchage


Étape 13 - La barre de coupe et sa gestion

Étape 14 - Quelle suite donner ? Quelles améliorations ?

Au niveau GPS

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.

Il commence à exister des shields RTK Arduino travaillant simultanément avec ces 3 constellations: https://www.ardusimple.com/product/simplertk2b-starter-kit-mr-ip65/

De plus ces shields sont très compacts (phot 1) car ils incluent à la fois le circuit GPS et l'émetteur-récepteur sur le même support.

.... Mais le prix est bien supérieur aux circuits que nous avons utilisés




Commentaires

Draft