architecture des noeuds sur les robots - PascalBauer/Notre-bon-plaisir-Pascal-Bauer GitHub Wiki

Description de l'architecture.

Topic : /robotxx/cmd_vel

donne : Les vitesses linéaires et angulaires en mètres par seconde et en radiant par secondes

Ecrit part :

/robotxx/rplidar_watche_dog...............une vitesse nul

/robotxx/path_follower_chorégraphic...................la vitesse à jouer

/robotxx/robot_manager....................depuis les info de front_obstacle les vitesses corigées en cas d'obstacle

/robotxx/path_follower....................Si ne reçoit rien de choregraphic, la vitesse à jouer

Lu part :

/robotxx/MD25

Noeud: /robotxx/MD25

actions : Transforme les vitesses en énergie donnée au moteurs sur une échelle de 0 à 256, avec pour vitesse nul la valeur 125 et les vitesses les plus grandes dans un sens et dans l'autre 0 et 256.

Calcule radiométrie à chaque boucle en comparant ancienne position à la nouvelle

Lit dans :

/robotxx/cmd_vel................Les vitesses linéaires et angulaires en mètres par seconde et en radiant par secondes

Lit sur la carte de la MD25 la position des encodeurs, en y et z : le courant dans les moteurs et en x :le voltage en entrée de carte

Écrit dans :

/robotxx/odom.......................La position par rapport au point de départ en abscisse, ordonnée et angulaire

/robotxx/md25_input_power....................Les deux vitesses linéaires et angulaires en temps réel

/tf..........................idem odom : La position par rapport au point de départ en abscisse, ordonnée et angulaire

Topic : /robotxx/scenario

donne : Les vitesses linéaires et angulaires en mètres par seconde et en radiant par secondes

Ecrit part :

/robotxx/robot_manager

/gui_execution_diagram

Lu part :

/robotxx/media_player......................on compte sur la brièveté des scénario et sur la stabilité temporelle des processus pour garder une bonne synchronisation

/robotxx/bezier_interpolate.....................transforme la courbe de bezier du robot provenant du scénario, en série de points (abscisse et ordonné) à partir de la position du robot et en temps relatif à l’horloge serveur.

/robotxx/topic_router.....................outil de dé-bug permettant de visualiser les trajectoires.

Noeud: /robotxx/bezier_interpolate

actions : transforme la courbe de bezier du robot provenant du scénario, en série de points (abscisse et ordonné) à partir de la position du robot et en temps relatif à l’horloge serveur.

Lit dans :

/robotxx/scénario................

Écrit dans :.................La même information en fonction du type de scénario renvoyé par /robotxx/scénario

/robotxx/path_travel

/robotxx/path_choregraphic

Topic : /robotxx/path_choregraphic

donne : série de points (abscisse et ordonné) à partir de la position du robot et les temps, relatif à l’horloge serveur.

Ecrit part :

/robotxx/bezier_interpolate...........................transforme la courbe de bezier du robot provenant du scénario, en série de points (abscisse et ordonné) à partir de la position du robot et en temps relatif à l’horloge serveur.

Lu part :

/robotxx/pose_to_twist....................récupère la série de points et temps correspondant des courbes et calcul les vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Noeud: /robotxx/pose_to_twist

actions : récupère la série de points et temps correspondant des courbes et calcul les vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Passe du relatif à l'absolu en créant un tableau

Lit dans :

/robotxx/path_chorégraphic................série de points (abscisse et ordonné) à partir de la position du robot et les temps, relatif à l’horloge serveur.

Écrit dans :

/robotxx/path_twist...........vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Topic : /robotxx/path_twist

donne : vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Ecrit part :

/robotxx/pose_to_twist...........................récupère la série de points et temps correspondant des courbes et calcul les vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Lu part :

/robotxx/path_follower_choregraphic....................observe l'heure qu'il est et détermine les vitesses linéaires et angulaires à appliquer en fonction du tableau construit par pose_to_twist

Noeud: /robotxx/ path_follower_choregraphic

actions : observe l'heure qu'il est et détermine les vitesses linéaires et angulaires à appliquer en fonction du tableau construit par pose_to_twist

Lit dans :

/robotxx/path_twist...............vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Écrit dans :

/robotxx/wanted_cmd_vel...........les vitesses demandées

/robotxx/cmd_vel...........les vitesses demandées

/robotxx/path_feedback................à quel pourcentage du scénario nous sommes.

Topic : /robotxx/wanted_cmd_vel

donne : vitesses linéaires et angulaires en mètres et radiants seconde et les temps correspondant à leur exécution.

Ecrit part :

/robotxx/path_follower_choregraphic...........................

/robotxx/path_follower...........................

Lu part :

/robotxx/robot_manager....................

Noeud: /robotxx/ robot_manager

actions : observe l'heure qu'il est et détermine les vitesses linéaires et angulaires à appliquer en fonction du tableau construit par pose_to_twist. Modifie vitesse ou scénario en fonction des captations

Lit dans :

/robotxx/wanted_cmd_vel...........les vitesses demandées par path_follower ou path_follower_choregraphic

/robotxx/freeze..........Si freeze, coupe le scénario actuel et envois un scénario spécial stop

/robotxx/front_obstacle..........Si front_obstacle, modifie les vitesses en faisant une procédure de mouvement adapté

Écrit dans :

/robotxx/scénario...........indique le scénario demandé

/robotxx/cmd_vel...........La vitesse modifiée

/robotxx/freeze_path_follower...........le fait qu'il y ai un obstacle devant

/robotxx/state...............sans objet : devait renvoyer un état d'interuption lu par le diagram _execution

Noeud: /robotxx/ path_follower

actions : calcul les vitesses à envoyer en fonction des position définies par path_travel

Lit dans :

/tf_static..........Sans objet

/tf..........La position du robot par rapport à la carte.

/robotxx/path_travel..........série de position calculé un peu comme avec path_choregrapghic avec plus d'aproximation.

/robotxx/freez_path_follower......................un boleen qui marche comme celui de freeze. Ne publie alors plus sur /robotxx/cmd_vel

Écrit dans :

/robotxx/wanted_cmd_vel.........................Les vitesses

/robotxx/cmd_vel.........................Les vitesses

/robotxx/path_feedback........................le pourcentage ou l'on en est de la courbe à suivre

Noeud: /robotxx/ rplidar

actions : récupère les valeurs du scan et les écrit à chaque boucle en tant que tableau de 360 valeurs

Lit dans :

sur le lidar

Écrit dans :

/robotxx/scan.......................tableau des 360 valeurs du lidar

Topic : /robotxx/scan

donne : tableau des 360 valeurs du lidar.

Ecrit part :

/robotxx/rplidar

Lu part :

/robotxx/rplidar_watch_dog ....................qui arrête le robot si pas de message

/robotxx/obstacle_laserscan ....................observe dans un angle définit à l'avant et à l’arrière si un obstacle se présente

Noeud: /robotxx/ rplidar_watch_dog

actions : observe dans un angle définit à l'avant et à l’arrière si un obstacle se présente

Lit dans :

/robotxx/scan.......................tableau des 360 valeurs du lidar

Écrit dans :

/robotxx/cmd_vel......................

Noeud: /robotxx/ obstacle_laserscan

actions : observe dans un angle définit à l'avant et à l’arrière si un obstacle se présente.

Lit dans :

/robotxx/scan.......................tableau des 360 valeurs du lidar.

Écrit dans :

/robotxx/front_odstacle......................lu par robot manager.

/robotxx/back_odstacle......................Sans objet pour l'instant.

Topic : /robotxx/front_obstacle

donne : présence d'un obstacle..............................

Ecrit part :

/robotxx/obstacle laserscan........................observe dans un angle définit à l'avant et à l’arrière si un obstacle se présente.

Lu part :

/robotxx/robot_manager ....................observe l'heure qu'il est et détermine les vitesses linéaires et angulaires à appliquer en fonction du tableau construit par pose_to_twist. Modifie vitesse ou scénario en fonction des captations.

/gui_execution_diagram....................diagramme d'exécution de l'installation.

Noeud: /robotxx/ bumper

actions : Non fonctionnel observe l'état du bumper

Lit dans :

bumper

Écrit dans :

/robotxx/bumpers.....................

Noeud: /robotxx/ power manager

actions : observe la charge de la batterie

Lit dans :

??????????????????

Écrit dans :

/robotxx/battery_percent.....................