Robot Pibot (IMT Nord Europe)

Le robot mobile Tbot est une construction sur une base mobile Kobuki incluant un laser plan Hokuyo pour la détection des obstacles et une carte-ordinateur Raspberry-Pi3 (pi3) comme centre névralgique. L'architecture logicielle de pilotage du robot s'appuie sur le middleware ROS2 et le paquet tbot_node et ses dépendances.

Pour les besoins du challenge, le robot est équipé d'un bac pour recevoir les pièces triées.

Description du robot pibot et de sa pi3

Le robot pibot se compose :

  • d'une base mobile Turtlebot2 - Kobuki dont le driver est inclus avec les paquets Tbot.
  • d'un laser plan Hokuyo, connecté à ROS2 via urg_node.
  • d'une carte-ordinateur Pi3 pré-installée avec Ubuntu 22.04 server et le driver du robot pibot.

Photo d'un Pibot sans bac

La pi3 est pré-installée avec Ubuntu server 22.04, ROS2 Iron et tous les drivers nécessaires au robot. Par défaut, la pi3 se connecte sur le réseau Wifi IOT. Les noeuds de contrôle du robot sont automatiquement lancés au démarrage de la pi3 par le service mb6-tbot qui exécute le launch file minimal_launch.yaml du package tbot_node.

La variable d'environnement ROS_DOMAIN_ID est pré-configurée avec le numéro de votre robot afin d'éviter tout conflit sur le réseau. Par exemple, le ROS_DOMAIN_ID du pibot22 est 22. Les topics de ce robots ne sont donc accessibles que sur ce domaine ROS.

En complément: des CarteSD sont mises à votre disposition par RS, partenaire de ce Hackaton, pour vous permettre de tester vos propres configurations.

PC portable de travail

Vous disposez d'un PC portable préconfiguré sous Pop_OS (Ubuntu 22.04 amélioré) avec ROS2 Iron. Le compte administrateur est ros mot de passe: ros. Ce PC est également connecté au réseau wifi IOT.

Connexion via ROS

En modifiant le fichier ~/.bashrc, vous devez configurer vos terminaux sur le même ROS_DOMAIN_ID que votre pibot

export ROS_DOMAIN_ID=44 # pour le pibot44 par exemple.

Les outils de ros2 : rqt, ros2 node list, ros2 topic list,... pourront alors vous montrer les topics de votre pibot.

Pour envoyer des commandes de vitesse à votre pibot, deux topics sont disponibles : /multi/cmd_teleop ou /multi/cmd_nav. Ils sont fournis par le noeud multiplexer qui gère les priorités. En effet, le multiplexer considère l'opérateur (topic /multi/cmd_teleop) comme prioritaire sur la navigation autonome (/multi/cmd_nav).

Par conséquent, l'exécution du noeud suivant doit permettre de prendre le contrôle du robot:

ros2 run teleop_twist_keyboard teleop_twist_keyboard cmd_vel:=/multi/cmd_teleop

Le robot dispose de plusieurs capteurs. À vous de les découvrir en explorant la liste des topics. Notez cependant le principal: le laser, qui est diffusé sur le topic /scan.

Des tutoriels de prise en main du robot et le laser sont accessibles ici.

Connexion SSH sur la pi3

Vous disposez aussi d'un compte ros (mot de passe ros par défaut) sur la pi3 de votre pibot. Vous pouvez vous connecter en ssh via l'IP de l'interface wifi de votre pi3.

Exemple :

ssh 10.100.50.18 # pour le pibot 18

Cette connexion ssh vous permet:

  • de modifier le mot de passe du compte ros sur la pi3 de votre robot via la commande : passwd changer ce mot de passe par défaut est important mais se souvenir du nouveau mot de passe l'est plus encore !

  • de lancer des noeuds en local sur la pi3 afin de ne pas surcharger la bande passante du wifi qui introduit de la latence

  • d'arrêter correctement votre pi3 via la commande sudo poweroff

Check list de démarrage

  1. Alumer le pibot
  2. Attendre une minute ou deux que la pi3 démarre lance tous les services de contrôle du robot
  3. Se connecter via ROS ou en SSH

Check list d'extinction

  1. Se connecter en SSH sur la pi3
  2. sudo poweroff ou sudo shutdown -h now
  3. attendre
  4. éteindre électriquement le robot (bouton on/off)
  5. mettre en charge le robot !