User Tools

Site Tools


neurali:ros_packages

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
neurali:ros_packages [2016/07/13 14:07] – [Packages] profproneurali:ros_packages [2020/06/08 22:20] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +< [[neurali: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 [[neurali:ROS catkin|catkin]] e poi realizzare un pacchetto debian (sourcedeb and binarydeb packages) con [[neurali:ROS bloom|bloom]].
 +
 +Lo strumento per il controllo delle dipendenze tra pacchetti è [[neurali:ROS rosdep|rosdep]] (analogo ad apt)
 +
 +http://wiki.ros.org/ROS/Tutorials/CreatingPackage
 +
 +
 +===== Struttura del package =====
 +
 +Ogni package deve contenere due file:
 +  - package.xml 
 +  - CMakeLists.txt. 
 +
 +
 +  - esempio [[neurali:ros package.xml|package.xml]]
 +  - esempio [[neurali:gazebo_box_animato_source#cmakeliststxt|CMakeLists.txt]]
 +
 +Ogni package ha una serie di cartelle predefinite, utilizzate durante la compilazione da [[neurali:ROS Catkin#workspace|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 [[neurali:ros_file.msg_file.srv|file msg srv]]
 +
 +Esempio commentato di [[neurali:ros package con workspace|package con workspace]]
 +
 +<code>
 +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
 +    ...
 +</code>
  
neurali/ros_packages.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1