User Tools

Site Tools


neurali:ros_packages

< 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)

http://wiki.ros.org/ROS/Tutorials/CreatingPackage

Struttura del package

Ogni package deve contenere due file:

  1. package.xml
  2. CMakeLists.txt.
  1. esempio package.xml

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
    ...
neurali/ros_packages.txt · Last modified: 2020/06/08 22:20 by 127.0.0.1