AMR SHERPA
Je présente dans cet article la prise en main des AMR Sherpa de l’entreprise SMR (Sherpa Mobile Robotics) dans le cadre du TP d’introduction à la robotique mobile pour les BUT2 GEII.
Les robots Sherpa sont conçus et fabriqués à Haguenau !
La première partie de ce TP de 4h consiste à la prise en main de l’AMR Sherpa. La seconde partie nécessite d’exploiter la documentation technique de SMR pour aporter les fonctionnalités de comportement et d’accostage.
Les modèles SHERPA
Nous possédons au département GEII de Haguenau, deux AMR Sherpa
- 1 Sherpa-B, dédié au transport de bacs avec rouleaux convoyeur latéral simple: le B20
- 1 Sherpa-B, de type intégrateur avec option Lève-Bacs: le B148
Sherpa B020 | Sherpa B148 |
---|---|
Modèle avec un convoyeur à rouleaux | Modèle avec un lève bac motorisé |
Plus récent, le B148 intègre des évolutions Hardware et Software comparé au B20.
Démarrage
On démarre le Sherpa avec le bouton Power situé à côté du pack de batterie.
Attention : Le bouton poussoir Power est avec une accroche intermédiaire :
- Premier appui : le bouton remonte en position intermédiaire et l’AMR lance son démarrage
- Second appui : le bouton remonte en position haute et l’AMR lance sa séquence d’extinction.
Il faut penser à vérifier que le bouton poussoir soit bien en position intermédiaire suite au premier appui. Quand on est un peu brutal à l’appui, le bouton peut passer directement en position haute et faire une phase de démarrage suivie directement d’une phase d’extinction. Il faut être doux dans l’actionnement de ce bouton !
Mode Déblocage des roues
Après le démarrage du robot, on peut soit passer en mode Follow-Me, soit pousser le robot après avoir débloqué les freins. C’est nécessaire quand les AMR sont parqués dans la salle de TP à l’IUT, pour les faire passer dans un espace restreint, les charger dans un camion …
- On clique sur les engrenages
- On clique sur Unlock Wheels
On peut maintenant pousser le robot.
Attention, ce n’est pas parce que le Sherpa est débloqué que les sécurités ne sont plus actives. Il faut pousser le robot en conserver le maximum de distance entre le robot et ses pieds sinon le Lidar appliquera la sécurité et le robot bloquera les freins. On préfèrera donc pousser le robot que de le tirer vers soi.
- Pour verrouiller à nouveau les freins, il faut cliquer sur Lock Wheels
Le robot ne peut fonctionner en mode Follow-me ou en mode autonome si les freins ne sont pas déverrouillés.
Mode Follow-me
Le bouton Follow-me est le bouton vert à côté de l’écran d’affichage.
Pour accéder au mode Stand-by : il faut s’assurer que le robot ait été réarmé. Après un démarrage ou un arrêt d’urgence il est nécessaire d’appuyer sur le bouton de réarmement. Le bouton de réarmement est uniquement disponible sur le Sherpa B148 à l’IUT.
Le bouton réarmement (recycle) à coté du bouton Follow me sur le Sherpa B148.
Connexion Wifi
L’identifiant Wifi des AMR Sherpa est Sherpa_B020 ou Sherpa_B148.
Les mots de passe wifi sont :
- BalyoNorcan pour le Sherpa B020 (Convoyeur simple)
- B148SherpaMR pour le Sherpa B148 (Lève-Bac)
Il faut rester attentif à la connexion réseau, il peut y avoir des bascules entre le wifi de l’AMR et le wifi Eduroam, notamment lors des phases de redémarrage du Sherpa.
Connexion à l’interface du Sherpa
A l’aide d’un navigateur on va se connecter à l’adresse https://192.168.2.1:8000
qui correspond au server web de configuration de l’AMR.
Il est fort probable que votre navigateur indique qu’il y ait un risque probable de sécurité. Pour Firefox, il faudra cliquer sur Avancé
et Accepter le risque et poursuivre
.
Login et Tool Suite
On arrive sur l’écran de login :
- Le login est info@sherpa-mr.com
- Le mot de passe est 1234 pour le Sherpa B148
- Le mot de passe est coudert pour le Sherpa B020
on arrive maintenant sur l’interface d’accueil de la Tool Suite :
Les différentes étapes pour configurer une installation :
- Créer la carte
- Configurer les règles de circulation
- Créer des missions
- Configurer des périphériques
- Configurer le robot
Attention : Les modifications du système impliquent une mise à jour du Fleet Manager (Il faut “suivre la cloche”)
La méthode est simple, on clique sur les différentes cloches quand on veut mettre à jour le Fleet Manager, puis le robot.
Création d’une map
La création de la carte est basée sur un enregistrement des données du LIDAR. Il faut déplacer le robot dans la zone à cartographier. L’enregistrement est un log circulaire d’une taille de 100Mo soit environ 10 minutes de parcours. Si l’on dépasse les 10 minutes les premières données d’enregistrement seront écrasées par les nouvelles mesures.
Positionnement du robot
L’orientation de la carte dépendra de la position du robot au début du log. Nous conseillons donc de placer le robot parallèlement à un mur afin de faciliter la création de la carte pour avoir une carte “droite” à l’écran.
Position correcte | Position à éviter |
---|---|
Afin d’avoir une carte la plus précise possible, il faut suivre les conseils suivants :
- Passer deux fois dans chaque allée en venant de deux directions différentes ;
- Essayer de revenir fréquemment à une position déjà connue du robot afin d’ajouter seulement de petites boucles ;
- Marcher lentement en particulier devant les positions où le robot doit être précis ;
- Dans le cas de poteaux de docking, faire en sorte que le robot voit les poteaux depuis toutes les directions ;
- Si un objet « mobile » est devant un mur essayer de passer derrière l’objet pour que le robot voit le mur ;
- Le log continu même en cas d’arrêt d’urgence ou de déblocage des freins donc si une position n’est pas atteignable en follow-me, débloquer les freins et pousser le robot jusqu’à la position désirée.
Le fichier fait normalement une centaine de Mega.
Sauvegarder le Log :
Une fois le parcours d’enregistrement terminé, il faut sauvegarder le log. Cette action permet de créer une sauvegarde du log sur le disque dur du robot. Une fois sauvegardé, la “temporisation” de 10 minutes est levée car une copie a été créé.
Depuis le menu de l’écran tactile du Sherpa, on clique sur Save Log
Récupération du fichier de Log
On peut récupérer le fichier de Log par clé USB depuis le connecteur USB à côté du bouton de Power, mais aussi, plus facilement, directement par l’interface Web.
On clique sur :
- Administration
- Outils (Tools)
- Download
log.odo
Le fichier log.odo
se trouvera dans vos Téléchargements
. Pensez à vérifier la taille du fichier, elle devrait être proche de 100Mo.
Edition des données de cartographie avec MapFabric
Dans un premier temps,
- créer un dossier sur le bureau avec le nom suivant : VotreNom-MapFabric
- déposer le fichier
log.odo
dans le dossierVotreNom-MapFabric
On lance l’exécutable MapFabric.exe
fourni sur Moodle.
- On clique sur New Map Fabric project
- Sélectionner comme emplacement de projet le dossier
VotreNom-MapFabric
qui se trouve sur le Bureau.
L’interface du logiciel peut se décomposer suivant 5 zones :
- Zone de travail : C’est la zone dans laquelle s’affiche la carte en cours de création ;
- Project Action List : tableau dans lequel nous ajoutons les actions à exécuter sur la carte ;
- Zone de paramétrage : Zone dans laquelle s’affiche les paramètres des actions de la project action list ;
- Bandeau bouton : Zone des boutons de commande du projet ;
- Bandeau de lecture : Affiche les informations durant la lecture du log.
Pour importer le log, il faut cliquer sur le bouton files
en bas à gauche (zone 4)
La fenêtre de gestion des fichiers de log va s’ouvrir.
-
Dans cette fenêtre cliquer sur le bouton
+
pour sélectionner le fichier log.odo à ajouter au projet. -
Afin de réaliser un import correct pour le projet, les options doivent être réglées comme sur l’image audessus. (
laserModel = R2000
et cocher l’option preciseMode en [v] enable) -
Une fois le fichier importé et les paramètres réglés, il suffit de fermer cette fenêtre.
Replay du log
Maintenant que le projet est créé et que le log est importé dans le projet, l’étape suivante consiste à demander à MapFabric de relire le fichier et de créer la carte. Pour cela une action replay doit être ajouté à la « Project Action List ». Pour insérer une action, placer son curseur dans la Project Actions List et faire un « clic droit ».
Cette action replay possède les paramètres suivants
z =
: correspond aux coordonnées du robot en début de log. Pour décaler la carte dans un sens, il est possible de rentrer un offset de départ du log. Dans le cas d’un log unique (installation simple) ce paramètre peut rester à zéroCap =
: Ce paramètre permet de décaler l’orientation du robot en début de log. Cela permet de faire tourner la carte autour du point de départ du robot. Si en créant le log le robot n’était pas aligné à un mur, cela permet de corriger cette erreur.File =
: Ce paramètre est le log à rejouer. Il suffit de sélectionner le fichier ajouté plus tôtFrom =
: Ceci représente le numéro de frame de départ du log. Ceci permet de couper un bout au début du log si le robot est resté allumé avant le début de l’enregistrementTo =
: Ceci représente le numéro de frame de fin du log (laisser 0 pour lire le log en entier). Ceci permet de couper un bout à la fin du log.- Les deux derniers paramètres doivent rester décochés.
Pour info : La gestion du cap se fait selon le sens trigonométrique. Une petite adaptation (entre -3 et +3) peut être nécessaire pour avoir les murs bien en parallèle. On peut également faire des rotation de 90° ou 180° en fonction de comment vous avez déplacé le robot pour faire la cartographie.
On clique sur le bouton Test
On reconnait la forme du bâtiment B de l’IUT. On remarque également que les murs ne sont pas droit car le Sherpa n’était pas exactement parallèle au mur quand la cartographie a été faite.
Un décalage de -2.500 au niveau du cap permet d’améliorer le résultat. (si on tourne dans le sens horaire il faut mettre un signe -
)
On nettoie grossièrement la carte avec ErasePoly (trig=70%) en entourant toute la cartographie avec un polygone.
On nettoie finement la carte en plaçant des polygones à des endroits spécifiques sur la carte à l’aide de l’outil ErasePoly (trig=0%)
il faut éliminer tous les points parasites de la cartographie car ils représentent un obstacle pour le Sherpa qui ne pourra pas circuler à travers ce point. Quelques points non effacés dans le couloir peuvent empêcher le robot de circuler !
On ajoute des murs virtuels à la place des vitres avec l’outil drawWall
Et voilà :
On peut créer la version finale (Release) en appuyant sur le bouton Release
Import de la map sur le Sherpa
On retourne sur le serveur web de configuration du Sherpa :
On clique sur Map Import
et l’on upload le fichier map.geo que nous venons de générer avec Map Fabric. Ce fichier se trouve dans le répertoire Release. Avant de le charger, on vérifie que la date et l’heure de création du fichier est cohérente avec le moment où l’on a crée la release.
La cloche risque de clignoter pour demander de mettre à jour le Fleet Manager et le Robot, mais nous allons d’abord créer une route, suivi d’une mission avant de mettre à jour le Fleet et le robot en “suivant les cloches” ;)
Création des routes et règles de circulation
On clique sur :
Quand on démarre un nouveau projet, faire Clear roads
pour supprimer les routes d’un projet précédent.
On fait ensuite Load Map
from file
et l’on sélectionne le fichier map.txt
généré dans le dossier Release de Map Fabric.
On fait :
- Save map to the fleet manager
On peut faire l’update du fleet-manager et du robot, en suivant les “cloches” :
Nous pouvons maintenant placer les routes sur la carte. Les routes correspondent aux zones où le robot a le droit de circuler.
Quelques règles :
- il est important que les routes vertes se superposent, n’hésitez pas à recouvrir les différentes zones pour que le robot puisse passer.
- on peut également recouvrir les murs, les sécurités du robot vont l’empêcher de “cogner” mais comme celà, le robot peut profiter de l’ensemble de l’espace disponible dans le couloir par exemple.
Nous pouvons également définir des zones comportementales avec l’icône :
- Forbidden : pour les zones interdites au robot (en rouge)
- Behavior : zone comportementale avec vitesse réduite par exemple
- … : la documentation technique du robot précise ces différents types de zones.
Dans cet exemple, une zone “Forbidden” (rouge) a été placée :
On place maintenant les points. Pour que le Sherpa puisse s’orienter et s’initialiser dans la carte, il faut lui placer un point d’init sur la cartographie. Il faudra placer physiquement le robot sur ce point pour lancer la procédure d’initialisation.
Avec le menu, “Création de destination”, on crée un point init1
au milieu du couloir. L’idéal est choisir le point à proximité d’un repère pour faciliter le positionnement du robot. Dans cet exemple, le point init1
est position à l’intersection du milieu du couloir et le milieu d’une porte de salle de TP.
La petite barre horizontale du point indique l’orientation (la flèche) du robot. Pour le point d’init1
, il est nécessaire de lui attribuer le type init et de lui donner le nom init1
.
L’icône avec le curseur permet d’éditer les caractéristiques du point.
Important : On choisit le type Init pour ce point d’initialisation.
On peut maintenant placer 3 autres points: a, b, c de type “Default” sur la carte pour que l’on va utiliser comme points à atteindre pour la mission que nous allons créer.
Avant de quitter l’édition de Route, il faut penser à faire :
- Save road to the fleet manager
- Save map to the fleet manager
Le robot demandera certainement de faire un update du fleet Manager et du robot, il suffira de suivre les cloches pour effectuer ces deux opérations.
Création de mission :
Dans le menu “Mission editor”, créer une nouvelle mission from scratch :
Donner un nom à cette mission (pas de caractères latin, pas d’espace, …)
Dans le menu common, on retrouve les fonctions de base pour les déplacements (go to point number), les temporisations (wait), …
Nous allons développer un premier code simple de déplacement entre 3 points crées précédemment (a, b, c)
On n’oublie pas de faire Save pour la mission !
Pareil, le robot demandera la mise à jour du fleet manager et du robot, il suffira de suivre les cloches.
Vérifier qu’à la fin de l’update du robot, il y ait un symbole v vert dans ‘Robot install config is up to date’
Initialisation du robot
On amène le robot sur le point d’initialisation (follow-me ou unlock wheel). On vérifie que la flèche du robot est orientée de la même manière que sur la route (map) que vous avez configurée.
Comme nous venons de faire une nouvelle configuration du Sherpa, il va être complètement désorienté par rapport à la nouvelle cartographie. Depuis l’écran du Sherpa (clic Maison), vous devriez avoir l’indicateur de position au rouge.
On clique sur les roues crantées :
On clique sur Initialisation
et l’on choisit le point init1
où vous venez de placer le robot. On fait launch initialisation
.
Si init1
n’apparaît pas :
- vérifier que l’update du robot n’a pas été oubliée.
- vérifier qu’il y ait le symbole vert dans ‘Robot install config is up to date’.
- dernier recours, redémarrer le Sherpa.
et l’indicateur de position doit passer au vert.
Si l’indicateur ne passe pas au vert, vérifier le bon positionnement de votre robot par rapport à la map.
Quand l’indicateur de position est au vert :
Cliquer sur Switch to Autonomous
Lancement de la mission depuis le dashboard
Après avoir vérifié que vous avez cliqué sur switch to Autonomous sur l’écran du Robot, on peut lancer depuis le PC portable la mission que nous venons de créer.
En cliquant sur la petite maison en-haut à gauche, on revient sur le menu principal, et l’on pourra lancer le dash-board :
On peut alors utiliser le widget, Mission Laucher
. La mission dans cet exemple s’appelle celka
.
On fait Start
et le robot devrait effectuer la mission.
Astuces
Quand on est bloqué dans le mode Teleopération, on peut tenter de faire :
- lock wheel
- unlock wheel
Quand le robot ne semble plus se mettre à jour :
- vérfier la connexion wifi
- tenter un reboot du robot
Exercices :
- Modifier la mission pour y intégrer des zones de comportement :
- vitesse réduite
- sens unique
- zone interdite
- Mettre en oeuvre un accostage du Sherpa sur un Amer. On simulera ainsi la dépose d’une caisse sur un îlot de déchargement.