Auteur: Christophe
Date de création: 15 novembre 2017
Dernière révision: 16 novembre 2017
Setup roombas
Introduction
Le but de ce guide est de décrire les étapes pour setup les roombas afin de les faire fonctionner avec elikos_roomba.
En prenant comme example le projet introductif, nous allons avoir 2 roombas et un ordinateur de contrôle.
Chaque roomba a un Raspberry Pi et une batterie. Les roombas sont rechargés avec leur docking station et les batteries des Raspberry Pi (power bank) sont rechargées avec un câble micro USB. Veuillez donc vous assurer que tout est chargé!
Infos
Voici les infos pour se connecter aux RPis. Demandez le mot de passe à quelqu’un.
| Roomba | Username | Hostname | IP |
|---|---|---|---|
| Rouge | pi | pikos1 | 192.168.1.??? |
| Vert | pi | pikos2 | 192.168.1.??? |
Les RPis sont configurés pour se connecter automatiquement au réseau Wi-Fi du routeur de l’équipe, alors il vous le faudra.
Setup
Hardware
Niveau hardware, commencer par brancher le routeur. La connection à Internet n’est pas nécessaire à moins que vous deviez mettre à jour le code sur les RPis, évidemment. Ensuite, prendre un roomba et connecter le petit fil micro USB qui lie la batterie (power bank) au RPi afin de l’alimenter. Faire la même chose pour l’autre roomba. S’assurer également que leur fil serial est bien connecté (sur le dessus du roomba, mais sous la plaque de couleur).
Il est bien important de déconnecter les fils d’alimentation des RPis après utilisation, sinon les batteries se vident!
Prereqs
Il faut cloner le repo create_autonomy dans le dossier src du même workspace que celui pour elikos_roomba
cd ~/roomba_ws/src/
git clone https://github.com/AutonomyLab/create_autonomy.git
Ensuite, vous pouvez tout build
cd ~/roomba_ws/
catkin build
Ordinateur de contrôle
Premièrement, prendre en note l’adresse IP (192.168.1.XYZ) de l’ordinateur de contrôle
hostname -I
Ensuite, lancer un roscore
roscore
Premier roomba
Dans une autre tab/fenêtre, nous devons maintenant nous connecter par SSH au premier roomba
ssh pi@192.168.1.???
Se déplacer dans le workspace
cd roomba_ws/
Si nécessaire, build (en n’oubliant pas le flag afin de compiler le node pour la topswitch et rechercher la librarie nécessaire!)
catkin_make -DRPI=TRUE
Source
source devel/setup.bash
Changer la variable d’environnement ROS_MASTER_URI pour qu’elle pointe vers l’ordinateur de contrôle (l’adresse prise en note plus haut)
export ROS_MASTER_URI=http://192.168.XYZ:11311
C’est maintenant temps de lancer le launch file de base. Nous allons utiliser les paramètres robot_id:=1 (puisque c’est le premier robot) et robot_type:=ground (puisque c’est un ground robot)
roslaunch elikos_roomba rpi_local.launch robot_id:=1 robot_type:=ground
Attendre quelques secondes. Si la sortie du launch file indique que la connection serial est bien établie (avec une indiquation du niveau de la batterie), alors tout va bien! Si il y a des problèmes de connection, c’est probablement que le câble serial n’est pas bien branché sur le roomba. (Conseil : essayez avec une hélice brisée.)
Deuxième roomba
Répétons les mêmes étapes dans une autre tab/fenêtre avec l’ordinateur de contrôle
ssh pi@192.168.1.???
cd roomba_ws/
catkin_make -DRPI=TRUE
source devel/setup.bash
export ROS_MASTER_URI=http://192.168.XYZ:11311
roslanch elikos_roomba rpi_local.launch robot_id:=2 robot_type:=ground
Il est bien important que les deux roombas n’aient pas le même robot_id, surtout s’ils ont le même robot_type si on veut éviter un chaos!
Commande des roombas - projet introductif
C’est maintenant le temps d’envoyer des commandes aux roombas! En effet, ils n’attendent que de recevoir des messages de type geometry_msgs::Twist sur leur topic cmd_vel correspondant.
Pour le projet introductif, il ne suffit que de lancer le launch file dans une nouvelle tab/fenêtre sur l’ordinateur de contrôle
cd ~/roomba_ws/
source devel/setup.bash
roslaunch elikos_roomba elikos_mission_roomba.launch
Commande des roombas - manette Xbox
Afin de commander un roomba avec une manette de Xbox (disponible dans le local!), on doit tout d’abord s’assurer d’avoir les permissions
sudo usermod -a -G dialout $USER
Il faut log out et log in pour que les permissions prennent effet (attention : vous devrez recommencer les étapes décrites ci-haut!).
On doit aussi s’assurer d’avoir le package joy
sudo apt-get install ros-kinetic-joy
Ensuite, il ne suffit que d’utiliser le launch file avec les paramètres correspondants au roomba voulu
cd ~/roomba_ws/
source devel/setup.bash
roslaunch elikos_roomba joy_teleop.launch robot_id:=1 robot_type:=ground
Ainsi, ceci permettrait de contrôler le premier roomba qui a été setup.
Mais Chrichri ça fonctionne toujours pas!
Lire le readme! Ou faites juste demander à Christophe.