Projet non finalisé en cours de developpement
le but est de créer un robot pour faire du SLAM à partir :
-
d'une plateforme Pololu Zumo https://www.pololu.com/product/2506
{max-width: 20px; display: block;}
-
de 2 encoders https://www.pololu.com/product/1217
-
un lidar 2D (RPLidar) http://www.slamtec.com/en-US/rplidar/index
-
un nunchuck de wii en bluetooth pour le pilotage
-
des modules Xbee pour la communication sans fil de la carte Arduino et du lidar
piece d'interface Zumo/Rplidar en impression 3D (dans le dossier URDF)
mettre a jour la trame avec les valeurs des encoder et le topic
rosrun zumo zumo.py
Ce noeud permet la communication série avec la carte Arduino et son shield Zumo.
Le robot envoie une trame d'état de ses capteurs et actionneurs :
!AN:[TEMPS],[ACCELERATION_X],[ACCELERATION_Y],[ACCELERATION_Z],[MAGNETOMETRE_X],[MAGNETOMETRE_Y],[MAGNETOMETRE_Z],[VITESSE_MOTEUR_LEFT],[VITESSE_MOTEUR_RIGHT],[ENCODER_LEFT],[ENCODER_RIGHT]\r\n
et attend la réception de la trame de consigne :
~X;[CONSIGNE_VITESSE];[CONSIGNE_ANGLE];#
A partir de la trame capteurs, le noeud publie 2 topics :
/ZumoCarto/imu
de typesensor_msgs.Imu
/ZumoCarto/odom
de typenav_msgs.Odometry
La construction de la trame de consigne est faite à partir des données souscrites sur le topic /nunchuk/cmd_vel
de type geometry_msgs.Twist
. Seules les valeurs linear.x
et angular.z
de /nunchuk/cmd_vel
sont utilisées pour piloter le robot. Ces valeurs sont des float
compris entre -1 à 1. Elles sont ensuite multipliées par 100 et transformées en int
avant d'être envoyées dans la trame de consigne.
2 paramètres ROS sont définis pour ce noeud :
ZUMO_PORT
, port série sur lequel est connecté le robot,/dev/ttyACM0
par défautZUMO_BAUDRATE
, baudrate de la communication série, 9600 par défaut
Ces 2 paramètres sont définis et modifiables dans le fichier /config/param.YAML
du package. Le chargement se fait automatiquemeent dans le cas d'un roslaunch
, et dans le cas d'un rosrun
du noeud, ils sont initiés dans le script Python sans prendre en compte le fichier de paramètres.
rosrun nunchuk2cmdvel nunchuk2cmvel.py
Ce noeud permet de récupérer les états des capteurs du pad Wiimote+Nunchuk, en Bluetooth, et publier un topic /nunchuk/cmd_vel
compatible avec le zumo.
Pour ma part, la clé Bluetooth doit être réinitialisée à chaque redémarrage PC ou reconnexion physique de celle ci, commande sudo hciconfig hci0 reset
.
Seul le joystick 2 axes du Nunchuk est utilisé :
Il s'agit du noeud rplidarNode
fournit par Robopeak :
https://github.com/robopeak/rplidar_ros
a completer
a completer avec les TF...