Ceci est une ancienne révision du document !
Tutoriel ROS / Bridge-Mocap
Installer ros-electric-desktop-full : http://www.ros.org/wiki/electric/Installation/Ubuntu
Installer la Stack Bridge Mocap↔Messages ROS via git :
git clone https://github.com/laas/motion_analysis_mocap.git
Puis mettre à jour le sous-module evart-client (depuis le répertoire de la stack motion_analysis_mocap) :
git submodule init git submodule update
Installer le module:
rosmake --rosdep-install motion_analysis mocap
Nous pouvons désormais lancer ROS et utiliser le bridge en mode console:
Lancer roscore (lance ROS Master + Parameter Server + Rosout)
roscore
Lancer le bridge :
roslaunch evart_bridge start.launch (lance le node evart (On peut aussi lancer l'exécutable evart directement)
Pour afficher la console ROS et voir les messages échangés.
rxconsole
Nous pouvons vérifier que notre noeud est bien lancé:
rosnode list
doit renvoyer
/evart /rosout
Lister les topics disponibles actuellement:
rostopic list /rosout /rosout_agg /tf
Pour récupérer les informations renvoyées par le mocap nous devons créer un nouveau topic dédié. Pour ce faire le bridge fourni un service spécifique auquel nous devons envoyer une requête. Le bridge propose plusieurs services que nous pouvons lister:
rosservice list /evart/get_loggers /evart/list_segments /evart/set_logger_level /evart/track_segments /rosout/get_loggers /rosout/set_logger_level
Pour demander l'envoi des données on va devoir passer par un appel service (pas nécessaire quand on code son appli) Afficher les services disponibles: shiva@shiva:~/ros_workspace/motion_analysis_mocap rosservice call /evart/track_segments table origin
Le topic “/evart/table/origin” est créé shiva@shiva:~/ros_workspace/motion_analysis_mocap rostopic echo /evart/table/origin
…on reçoit T+Q du repère associé à la frame de la table.
Pour connaître le type de messages qui sont publiés par evart shiva@shiva:~/ros_workspace/motion_analysis_mocap rosmsg show geometry_msgs/TransformStamped Header header
uint32 seq time stamp string frame_id
string child_frame_id geometry_msgs/Transform transform
geometry_msgs/Vector3 translation float64 x float64 y float64 z geometry_msgs/Quaternion rotation float64 x float64 y float64 z float64 w
on peut afficher les données (ou une partie des données du message grace a rxplot: shiva@shiva:~/ros_workspace/motion_analysis_mocap roscreate-pkg DroneStateBroadcaster std_msgs roscpp Created package directory /home/shiva/ros_workspace/DroneStateBroadcaster Created include directory /home/shiva/ros_workspace/DroneStateBroadcaster/include/DroneStateBroadcaster Created cpp source directory /home/shiva/ros_workspace/DroneStateBroadcaster/src Created package file /home/shiva/ros_workspace/DroneStateBroadcaster/Makefile Created package file /home/shiva/ros_workspace/DroneStateBroadcaster/manifest.xml Created package file /home/shiva/ros_workspace/DroneStateBroadcaster/CMakeLists.txt Created package file /home/shiva/ros_workspace/DroneStateBroadcaster/mainpage.dox
Build du package: shiva@shiva:~/ros_workspace$ rosmake DroneStateBroadcaster