User Tools

Site Tools


neurali:ros_catkin

< ROS

Catkin

Catkin vs rosbuild

Ci sono due modi per l'organizzazione e la compilazione del tuo codice in ROS

  • Catkin
  • rosbuild, più semplice da usare ma meno potente

quale scegliere? http://wiki.ros.org/catkin_or_rosbuild

Catkin oggi è parte integrante di ROS. È una raccolta di macro CMake e codice usato per compilare package utilizzati in ROS. Per comprendere meglio Catkin sarebbe utile conoscere le basi di cmake e make.

Workspace

confrontare con ros ambiente di compilazione

http://wiki.ros.org/catkin/workspaces

Come ogni progetto cmake, anche ogni progetto Catkin può essere compilato separatamente.

  • workspace: a differenza di cmake, Catkin permette di avere anche dei workspace (cartelle) indipendenti all'interno di ogni progetto.
  • spaces a loro volta, ogni workspace contiene cinque spaces
  • Workspace
    • Source Space
    • Build Space
    • Devel Space
    • Install Space
    • Result space

Comandi (in breve)

  1. inizializzare var. d'ambiente globali (source /opt/ros/indigo/setup.bash)
  2. mkdir -p ~/catkin_ws/src
  3. catkin_init_workspace
  4. catikin_create_pkg .. .. ..
  5. a questo punto si possono inizializzare le variabili d'ambiente locali (source ~/workspace/devel/setup.bash)
  6. editare package.xml
  7. catkin_make
  8. catkin_make install

Comandi (in dettaglio)

Potrebbe essere necessario configurare le variabili d'ambiente del termianle configurazione

Queste istruzioni inizializzano il workspace, creando automaticamente un ros CMakeLists.txt predefinito, ma personalizzabile

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace

Queste istruzioni compilano il workspace, anche se fosse vuoto, crea altri space.

$ cd ~/catkin_ws/
$ catkin_make

Questo comando è necessario per inizializzare le variabili di ambiente

$ source devel/setup.bash
$ echo $ROS_PACKAGE_PATH

Questo comando crea una nuova cartella parzialmente configurata per nuovopackage con due dipendenze

$ catkin_create_pkg nuovopackage dip1 dip2

Leggendo il contenuto del file package.xml che viene generato si può distinguere tra dipendenze al momento della compilazione e dipendenze al momento dell'esecuzione.

Cmake

Solitamente, durante una tradizionale compilazione di un progetto, che usa cmake e make, si devono usare i seguenti comandi

$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install  # (optionally)

Con catnik, invece, si può compilare tutti i progetti nel workspace, in un solo colpo, con i seguenti comandi

$ catkin_make
$ catkin_make install  # (optionally)

Esempio di package ROS (da simulare dentro Gazebo)

Nel casoparticolare in cui si sta creando un modello di robot per una simulazione con Gazebo, si dovranno usare dei nomi specifici per i package

altri dettagli qui: gazebo connessione ros

../catkin_ws/src
    /MYROBOT_description
        package.xml
        CMakeLists.txt
        /urdf
            MYROBOT.urdf
        /meshes
            mesh1.dae
            mesh2.dae
            ...
        /materials
        /cad
    /MYROBOT_gazebo
        /launch
            MYROBOT.launch
        /worlds
            MYROBOT.world
        /models
            world_object1.dae
            world_object2.stl
            world_object3.urdf
        /materials
        /plugins
        

http://gazebosim.org/tutorials?tut=ros_roslaunch&cat=connect_ros#CreatingyourownGazeboROSPackage

neurali/ros_catkin.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1