neurali:ros_catkin
Differences
This shows you the differences between two versions of the page.
Previous revision | |||
— | neurali:ros_catkin [2020/06/08 22:20] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | < [[neurali: | ||
+ | ====== Catkin ====== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ===== Catkin vs rosbuild ===== | ||
+ | |||
+ | Ci sono due modi per l' | ||
+ | |||
+ | * Catkin | ||
+ | * [[neurali: | ||
+ | |||
+ | **quale scegliere? | ||
+ | |||
+ | **Catkin** oggi è parte integrante di ROS. È una raccolta di macro CMake e codice usato per compilare [[neurali: | ||
+ | |||
+ | ===== Workspace ===== | ||
+ | |||
+ | confrontare con [[neurali: | ||
+ | |||
+ | http:// | ||
+ | |||
+ | Come ogni progetto cmake, anche ogni progetto Catkin può essere compilato separatamente. | ||
+ | * ;; | ||
+ | * ;;; | ||
+ | |||
+ | * Workspace | ||
+ | * Source Space | ||
+ | * Build Space | ||
+ | * Devel Space | ||
+ | * Install Space | ||
+ | * Result space | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Comandi (in breve) ===== | ||
+ | |||
+ | > esempio[[neurali: | ||
+ | |||
+ | > esempio [[neurali: | ||
+ | |||
+ | - inizializzare var. d' | ||
+ | - mkdir -p ~/ | ||
+ | - catkin_init_workspace | ||
+ | - catikin_create_pkg .. .. .. | ||
+ | - a questo punto si possono inizializzare le variabili d' | ||
+ | - editare package.xml | ||
+ | - catkin_make | ||
+ | - catkin_make install | ||
+ | |||
+ | |||
+ | |||
+ | ===== Comandi (in dettaglio) ===== | ||
+ | Potrebbe essere necessario configurare le variabili d' | ||
+ | |||
+ | Queste istruzioni inizializzano il workspace, creando automaticamente un [[neurali: | ||
+ | |||
+ | < | ||
+ | $ mkdir -p ~/ | ||
+ | $ cd ~/ | ||
+ | $ catkin_init_workspace | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Queste istruzioni **compilano** il workspace, anche se fosse vuoto, crea altri space. | ||
+ | < | ||
+ | $ cd ~/ | ||
+ | $ catkin_make | ||
+ | </ | ||
+ | |||
+ | |||
+ | Questo comando è necessario per **inizializzare le variabili di ambiente** | ||
+ | |||
+ | $ source devel/ | ||
+ | $ 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' | ||
+ | |||
+ | ===== Cmake ===== | ||
+ | |||
+ | Solitamente, | ||
+ | |||
+ | < | ||
+ | $ mkdir build | ||
+ | $ cd build | ||
+ | $ cmake .. | ||
+ | $ make | ||
+ | $ make install | ||
+ | </ | ||
+ | |||
+ | Con catnik, invece, si può compilare tutti i progetti nel workspace, in un solo colpo, con i seguenti comandi | ||
+ | < | ||
+ | $ catkin_make | ||
+ | $ catkin_make install | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====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: [[neurali: | ||
+ | |||
+ | < | ||
+ | ../ | ||
+ | / | ||
+ | package.xml | ||
+ | CMakeLists.txt | ||
+ | /urdf | ||
+ | MYROBOT.urdf | ||
+ | /meshes | ||
+ | mesh1.dae | ||
+ | mesh2.dae | ||
+ | ... | ||
+ | /materials | ||
+ | /cad | ||
+ | / | ||
+ | /launch | ||
+ | MYROBOT.launch | ||
+ | /worlds | ||
+ | MYROBOT.world | ||
+ | /models | ||
+ | world_object1.dae | ||
+ | world_object2.stl | ||
+ | world_object3.urdf | ||
+ | /materials | ||
+ | /plugins | ||
+ | | ||
+ | </ | ||
+ | http:// |