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.....................