Outils pour utilisateurs

Outils du site


Action disabled: diff
tutoriel_ros

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/list_segments
bodies: 
  - 
    name: left-foot
    segments: 
      - 
        name: origin
        parent: 4294967295
    dofs: []
  - 
    name: helmet
    segments: 
      - 
        name: origin
        parent: 4294967295
    dofs: []
  - 
    name: table
    segments: 
      - 
        name: origin
        parent: 4294967295
    dofs: []
  - 
    name: laas-box
    segments: 
      - 
        name: origin
        parent: 4294967295
    dofs: []


Inscription au tracking de la table:
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 list
/evart/table/origin
/rosout
/rosout_agg
/tf

Affichage des données transmises:
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$ rostopic info /evart/table/origin
Type: geometry_msgs/TransformStamped

Publishers: 
 * /evart (http://shiva:42010/)

Subscribers: None


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$ rxplot --mode=3d /evart/table/origin/transform/translation/x:y:z/




Créer son package:
Aller dans son worspace
shiva@shiva:~/ros_workspace$ 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

tutoriel_ros.1322734608.txt.gz · Dernière modification : 2011/12/01 11:16 de aravet