FAQ robots basés sur Raspberry Pi

🔔 Mon Turtlebot bipe

🔋 Il s’agit du signal de batterie faible et il ne doit pas être ignoré.

Turtlebot est alimenté par une batterie puissante de type Li-Po. Ce type de batterie rend dangereux leur utilisation lorsque la charge est très faible. Dans un cas extrême elle pourrait chauffer et prendre feu. Mettre en charge rapidement la batterie lorsque Turtlebot bipe.

📥 Flasher la carte SD

Note préliminaire : la carte SD du robot ne se comporte pas tout-à-fait comme une carte SD “normale”. Elle ne permet pas de stocker des fichiers dessus ; il est également normal qu’une carte SD insérée dans votre ordinateur n’apparaisse pas dans le Poste de Travail avant de l’avoir flashée.

Téléchargez ces images ROS en vue de remettre à zéro les cartes SD des robots pour ROS4PRO (⚠️⏳ Optimisez votre temps, le téléchargement peut prendre 1 heure) :

Pour flasher l’une de ces images sur une carte SD :

⚠️ Si votre ordinateur n’arrive pas à lire la carte SD, vous pouvez essayer la procédure suivante :

  1. Fermer tous les terminaux ouverts et réessayer
  2. Ouvrir un terminal et exécuter les 2 commandes suivantes. Redémarrer l’ordinateur et réessayer
sudo apt-get install --reinstall udisks2
sudo apt-get install exfat-fuse exfat-utils

📡 Connecter le robot en Wifi

Poppy Ergo Jr

La connexion Wifi de Poppy Ergo Jr se déroule via l’interface graphique. Depuis votre station de travail ouvrez http://poppy.local puis cliquez sur “Configuration” et activer le paramètre Wifi puis remplissez le nom du réseau et son mot de passe.

Turtlebot 3

⚠️ Cette procédure ne fonctionne qu’avec le Turtlebot éteint et la carte SD hors du robot.

  1. Télécharger le fichier 50-cloud-init.yaml et modifiez-le pour renseigner le bon login et mot de passe wifi dans les WIFI_SSID et password. Respectez scrupuleusement l’indentation ! Ne rajoutez pas d’espaces ou de sauts de lignes et n’utilisez pas des tabulations (l’identation se fait avec 4 espaces) Il est facile de faire une erreur sur ce fichier et il n’y aura aucun message d’erreur puisque c’est lui qui détermine si le robot va réussir à s’appairer au réseau.

  2. Insérer la carde SD du robot en question dans votre poste de travail (pas dans votre robot)

  3. Ouvrir un terminal et copier le fichier avec cette commande :

sudo cp ~/Téléchargements/50-cloud-init.yaml /media/$(whoami)/writable/etc/netplan/
  1. Vérifier dans /media/$(whoami)/writable/etc/netplan si le fichier a correctement été copié.

Aide dans la documentation (en cas de problème)

🖧 Se connecter via SSH à un robot

SSH (Secure SHell) permet d’ouvrir un terminal à distance sur une autre machine que celle sur laquelle on tape les commandes (par exemple le robot, qui n’a ni clavier ni écran pour interagir avec un terminal). Il est nécessaire de connaître :

La commande est l’une des suivantes, à taper dans un terminal sur Ubuntu :

ssh poppy@poppy.local
ssh ubuntu@turtlebot.local

Taper yes pour confirmer la connexion puis taper le mot de passe (turtlebot pour Turtlebot ou raspberry pour Poppy). Votre invite de commande devrait désormais indiquer poppy@poppy.local~$ ou ubuntu@turtlebot.local~$ : toute commande tapée dans ce terminal sera exécutée par le robot. En cas d’erreur, consultez la procédure de diagnostic ci-dessous.

🔑 Mots de passe par défaut

Turtlebot

Poppy

🕗 Synchronisation d’horloge

Si vous obtenez l’erreur Received JointState is XXXXXX.XXXXXX seconds old ou tout autre erreur en relation avec le temps, il se peut que l’horloge de votre robot et de votre PC soit désynchronisée.

Vérifiez avec la commande date que l’horloge ne dérive pas exagérément.

Vérifiez qu’il est conencté à Internet via la 4G, le réseau Ethernet ou le wifi, puis tapez sur votre PC et/ou en SSH sur le robot :

sudo timedatectl set-ntp off
sudo timedatectl set-time "2021-09-30 18:00"   # Mettre ici une date et une heure approximative
sudo timedatectl set-ntp on

Note : ntpdate est osbolète et n’est plus installé sur Ubuntu

💽 Espace disque insuffisant sur les robots

Si votre carte SD fait 8Go, vous devez forcément libérer de l’espace disque. Supprimez les archives APT du robot rm -fr /var/cache/apt/archives/*. Si ce n’est pas suffisant, la suppression de fichiers doit être vue au cas par cas.

Si votre carte SD fait + de 8Go : Les images des robots sont conçues pour des cartes SD 8 Go, elles n’utilisent pas tout l’espace disponible de la carte SD. Si vous avez besoin de plus d’espace disque et que la carte SD a bien une effectivement supérieure à 8 Go, il est nécessaire d’étendre la partition au maximum. Pour cela, insérez la carte SD du robot dans votre station de travail et utilisez l’outil GParted pour la redimensionner :

sudo apt install gparted
sudo gparted

Ensuite :

  1. sélectionner la carte SD dans la liste déroulante (⚠️ GParted peut redimensionner n’importe quelle partition de n’importe quel disque, assurez vous de ne pas vous tromper dans la liste déroulante)
  2. faites clic droit sur la ext4 (la partition la plus à droite) et sélectionnez “Redimensionner”
  3. Glisser le curseur de fin de la partition au maximum à droite. Validez ensuite l’opération de redimensionnement.

🔧 Procédure de diagnostic

💻 Dans un terminal taper ping poppy.local (pour Poppy) ou ping raspberrypi.local (pour Turtlebot) :

(1) si toutefois les délais de réponse excèdent environ 100ms, consultez la section “Wifi trop lent ou saturé”.

🐌 Wifi trop lent ou saturé

Si vos commandes ROS sont lentes voire échouent de façon désorganisée sous la forme de divers timeouts, votre réseau Wifi peut être trop dégradé pour que le système foncitonne convenablement. Quelques pistes :

❌ Erreur Unable to connect to move_group action server 'move_group' within allotted time (30s)

Cette erreur survient généralement quand la qualité du réseau est mauvaise et ne permet pas de démarrer MoveIt correctement. Consultez la section “Wifi trop lent ou saturé”.

❌ Erreur Unable to ping my own server at XXXXX.local

Cela peut survenir lors d’un changement de la configuration réseau. Exécutez :

sudo service avahi-daemon restart

📥 Mettre à jour l’openCR du Turtlebot

Si vous avez une erreur à propos d’une openCR incompatible, voici la méthode pour mettre à jour le firmware.

Tapez les commandes suivantes sur la raspberry pi (donc en SSH depuis votre PC):

cd ./opencr_update
./update.sh /dev/ttyACM0 burger_noetic.opencr

Puis testez la mise à jour :

  1. Placer le robot sur un sol plat dans un espace libre

  2. Appuyer longuement sur le bouton PUSH SW 1 pendant quelque secondes, le robot devrait aller tout droit pendant 30 centimètres

  3. Appuyer longuement sur le bouton PUSH SW 2 pendant quelque secondes, le robot devrait tourner de 180 degrées sur place

OpenCR

📡 Comment effectuer un scan pour trouver l’adresse IP de la raspberry pi ?

Normalement vous n’avez pas besoin d’utiliser les adresses IP en dur, à la place on utile avahi-daemon (déjà installé) pour effectuer la résolution des noms (c’est ce qui permet de faire ping raspberrypi.local sans connaître son adresse). Mais si vous voulez quand même le faire, voici comment précéder. Ouvrir un terminal et exécuter les commandes suivantes :

sudo apt install arp-scan
sudo arp-scan --localnet

Les devices connectés à votre réseau devraient apparaître avec un nom qui permet de les discriminer.