documentation

View project on GitHub

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.