le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Gestione del funzionamento del ROS
ROS è un framework distribuito multiprocesso (nodo), un'implementazione completa del sistema ROS:
Può includere più host;
Sono presenti più aree di lavoro su ciascun host;
Ogni area di lavoro contiene più pacchetti di funzioni;
Ogni pacchetto di funzioni contiene più nodi (Nodo) e diversi nodi hanno i propri nomi di nodo;
Ogni nodo può anche essere impostato con uno o più argomenti...
In un sistema ROS multilivello possono sorgere alcuni problemi nella sua implementazione e manutenzione, come,
1. Come associare diversi pacchetti di funzioni----(pacchetto di meta-funzioni)
2. Come avviare vari nodi ROS----(file di avvio)
3. Come gestire i nomi duplicati di pacchetti di funzioni, nodi, argomenti e parametri----(Risolvere il problema dei nomi duplicati)
4. Come comunicano i nodi su host diversi ---- (comunicazione distribuita)
Il contenuto principale di questo capitolo introduce le soluzioni ai problemi di cui sopra in ROS (vedere il sommario di questo capitolo. Gli obiettivi di apprendimento attesi corrispondono anche ai problemi di cui sopra:).
Scenario: il completamento di una funzione sistematica in ROS può comportare più pacchetti funzionali, come l'implementazione di un modulo di navigazione del robot, che ha diversi pacchetti funzionali di sottolivello come mappa, posizionamento, pianificazione del percorso, ecc. Quindi, quando il chiamante installa il modulo, è necessario installare ciascun pacchetto di funzioni uno per uno?
Ovviamente, installare i pacchetti di funzioni uno per uno è inefficiente. In ROS, viene fornito un modo per raggruppare diversi pacchetti di funzioni in un pacchetto di funzioni, quando si installa un determinato modulo di funzione, basta chiamare direttamente il pacchetto di funzioni. Questo pacchetto è anche chiamato metapacchetto .
MetaPackage è un concetto di sistema di gestione dei file in Linux. È un pacchetto virtuale in ROS Non ha contenuto sostanziale, ma si basa su altri pacchetti software. In questo modo è possibile combinare altri pacchetti. Possiamo pensarlo come l'indice di una directory, dicendoci questo cosa sub -i pacchetti sono nella raccolta dei pacchetti e dove scaricarli.
Per esempio:
Per facilitare l'installazione da parte dell'utente, abbiamo bisogno solo di questo pacchetto per organizzare e installare insieme altri pacchetti software correlati.
step1: Primo: crea un nuovo pacchetto di funzioni
step2: Quindi: modifica package.xml, il contenuto è il seguente:
<exec_depend>Pacchetti di funzionalità integrate</exec_depend>
…
<export>
<metapackage />
</export>
step3: Infine: modifica CMakeLists.txt, il contenuto è il seguente:
cmake_minimum_required(VERSIONE 3.0.2)
progetto(demo)
find_package(catkin OBBLIGATORIO)
metapacchetto_catkin()
Mantieni semplicemente le quattro righe precedenti ed elimina il resto.
Fare riferimento anche a:
http://wiki.ros.org/catkin/package.xml#Metapacchetti
Non abbiamo più familiarità con l'uso dei file di avvio Nel primo capitolo abbiamo introdotto:
Un programma potrebbe dover avviare più nodi, come la piccola tartaruga incorporata di ROS. Se vuoi controllare il movimento della tartaruga, devi avviare più finestre, avviando roscore, il nodo dell'interfaccia della tartaruga e il nodo di controllo della tastiera. rispettivamente. Se rosrun viene chiamato ogni volta per avviarlo uno per uno, è ovviamente inefficiente. Come ottimizzare?
La strategia di ottimizzazione adottata consiste nell'utilizzare il comando roslaunch per raccogliere il file di avvio per avviare il nodo di gestione e nei tutorial successivi il file di avvio viene utilizzato anche più volte.
Il file di avvio è un file in formato XML che può avviare più nodi locali e remoti e impostare parametri nel server dei parametri.。
Semplifica la configurazione e l'avvio dei nodi e migliora l'efficienza di avvio dei programmi ROS.
Prendi Turtlesim come esempio da dimostrare
passaggio 1. Creare un nuovo file di avvio
Aggiungere la directory di avvio nel pacchetto funzioni, creare un nuovo file xxxx.launch nella directory e modificare il file di avvio
<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>
passaggio2. Chiama il file di avvio
nome del pacchetto roslaunch xxx.launch
Nota: quando il comando roslaunch esegue il file di avvio, determinerà innanzitutto se roscore è avviato. Se viene avviato, non verrà avviato nuovamente. Altrimenti, roscore verrà richiamato automaticamente.
Può riferirsi a:
http://wiki.ros.org/roslaunch/XML
Italiano: https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9