This is an old revision of the document!


Mapping et localisation d'un robot dans une interface Web

Cette documentation explique comment créer une carte à partir d'un robot pour l'intégrer ensuite dans une interface Web et afficher la localisation du robot.

Un “bag” dans ROS permet d'enregistrer et de rejouer à volonté les topics publiés par un robot pendant le temps d'enregistrement (voir les commandes disponibles).
On lance ROS si ce n'est pas déjà fait :

roscore

On se connecte au robot. Pour Pepper :

roslaunch pepper_bringup pepper_full_py.launch nao_ip:=<ip_de_pepper> roscore_ip:=127.0.0.1

Pour RB1 :

export ROS_MASTER_URI=http://rb1:11311

On lance l'enregistrement des topics fournis par le robot :
NB : l'option “-a” permet d'enregistrer tous les topics mais si on souhaite uniquement quelques topics, c'est également possible et cela permet d'alléger le bag.

rosbag record -O </chemin/et/nomDuBag>.bag -a
rosbag record -O </chemin/et/nomDuBag>.bag /<topic_1> /<topic_2>

On fait maintenant se déplacer le robot comme on le souhaite.
On arrête ensuite l'enregistrement avec CTRL + C.
On peut inspecter le contenu du rosbag avec la commande :

rosbag info <nom_du_rosbag>.bag

On lance ROS si ce n'est pas déjà fait :

roscore

Si on utilise un rosbag, on indique à ROS d'utiliser le temps de la simulation :
NB : il faut impérativement lancer cette commande avant de lancer tous les nodes.

rosparam set use_sim_time true

On génère ensuite une carte à l'aide de slam_gmapping. Il faut passer en argument le topic du robot correspondant au type sensor_msgs/LaserScan (i.e. les lasers du robot). Par défaut, les cartes générées sont trop “dé-zoomées”, il faut donc jouer sur la résolution (paramètre delta) et éventuellement sur les dimensions. Par exemple, pour RB1, la commande suivante génère une carte exploitable :

rosrun gmapping slam_gmapping scan:=/front_laser/scan _xmin:=-1 _xmax:=1 _ymin:=-1 _ymax:=1 _delta:=0.035 _maxUrange:=10

On rejoue le bag :

rosbag play --clock </chemin/et/nomDuBag>

Avant d'annuler le gmapping, on sauve la carte :

rosrun map_server map_saver -f <map_name>

Spécificités de Pepper

Spécificités de RB1

  • mapping_integration_web.1518533155.txt.gz
  • Last modified: 2019/04/25 14:08
  • (external edit)