La navigation automatisée


L'onjectif est de déplacer Pepper dans la zone Pepper. Ce déplacement s'effectue suite à une approche réactive, qui consiste à déplacer Pepper en fonction des données fournies par ses 3 capteurs lasers qui donnent les distances entre Pepper et les murs et les obstacles qui existe autour de lui.

Pour accéder à ces infomations, nous avons utilisé le nœud "/naoqi_driver/laser" du paquet naoqi_driver. Ce noeud émerge toutes les données fournies par les 3 capteurs.

Pour voir ces données il suffit d'envoyer la commande suivante après avoir mettre Pepper sous mode SSH et lancer le paquet naoqi_driver :

rostopic echo /naoqi_driver/laser  

Voilà un exemple des données lasers du robot Pepper :

Le type des message de ce topic est sensor_msgs/LaserScan, qui structuré de la façon suivante :

 
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
float32 angle_min
float32 angle_max
float32 angle_increment
float32 time_increment
float32 scan_time
float32 range_min
float32 range_max
float32[] ranges
float32[] intensities

Les distances sont stockées dans le tableau "ranges" :

  • capteur N°3 : de la case N°0 à la case N°14 (ranges[ 0 ] --> ranges[ 14 ])
  • capteur N°1 : de la case N°23 à la case N°37 (ranges[ 23 ] --> ranges[ 37 ])
  • capteur N°2 : de la case N°46 à la case N°60 (ranges[ 46 ] --> ranges[ 60 ])

Deux comportement sont générés en fonction de ces données, l'allongement des murs et l'évitement d'obstacles.

L'allongement des murs se fait à l'aide du capteur N°3 et l'évitement des obstacles à l'aide du capteur N°1.


navigation_automatisée.png

lasers_pepper.png

capteurs_lasers.png