Table of Contents
< ros
Packages
Un package è l'unità in cui è organizzato il tuo codice per ROS. Il manifest (package.xml) contiene metadati: le dipendenze del package, la versione, ecc. Dopo aver creato un proprio package è possibile compilarlo con strumenti come catkin e poi realizzare un pacchetto debian (sourcedeb and binarydeb packages) con bloom.
Lo strumento per il controllo delle dipendenze tra pacchetti è rosdep (analogo ad apt)
Struttura del package
Ogni package deve contenere due file:
- package.xml
- CMakeLists.txt.
- esempio package.xml
- esempio CMakeLists.txt
Ogni package ha una serie di cartelle predefinite, utilizzate durante la compilazione da Catkin#workspace.
Workspace
http://wiki.ros.org/catkin/workspaces
Conoscete cmake? Come ogni progetto cmake, anche ogni progetto Catkin può essere compilato separatamente. Cosa sono workspace e space?
- 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
Servizi e messaggi
- La sottocartella “msg” deve contenere un file .msg
- La sottocartella “srv” deve contenere un file .srv
Per il codice contenuto in questi file vedere file msg srv
Esempio commentato di package con workspace
workspace_folder/ -- WORKSPACE src/ -- SOURCE SPACE CMakeLists.txt -- The 'toplevel' CMake file package_1/ CMakeLists.txt package.xml ... package_n/ CMakeLists.txt package.xml ... build/ -- BUILD SPACE CATKIN_IGNORE -- Keeps catkin from walking this directory devel/ -- DEVELOPMENT SPACE (set by CATKIN_DEVEL_PREFIX) bin/ etc/ include/ lib/ share/ .catkin env.bash setup.bash setup.sh ... install/ -- INSTALL SPACE (set by CMAKE_INSTALL_PREFIX) bin/ etc/ include/ lib/ share/ .catkin env.bash setup.bash setup.sh ...