Condivisione della tecnologia

Apprendimento di base del ROS: gestione delle operazioni del ROS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Gestione del funzionamento del ROS

1. Breve descrizione della gestione operativa 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...

Inserisci qui la descrizione dell'immagine
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:).

  • Padroneggiare la sintassi per l'utilizzo dei pacchetti di meta-funzioni;
  • Padroneggiare la sintassi dell'utilizzo dei file di avvio;
  • Comprendere cos'è la copertura dello spazio di lavoro ROS e quali rischi ci sono per la sicurezza;
  • Comprendere come gestire i nomi dei nodi duplicati;
  • Comprendere come gestire gli argomenti con nomi duplicati;
  • Comprendere come gestire i nomi dei parametri con nomi duplicati;
  • In grado di ottenere la comunicazione distribuita ROS.

2. Pacchetto meta-funzione ROS

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 .

2.1 Concetto

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:

  • Il comando sudo apt install ros-noetic-desktop-full utilizza il pacchetto meta-funzione durante l'installazione di ros. Questo pacchetto meta-funzione dipende da alcuni altri pacchetti funzione in ROS Quando si installa questo pacchetto, le dipendenze verranno installate insieme.
    Ci sono anche alcuni MetaPackage comuni: navigazione moveit!

2.2 Funzione

Per facilitare l'installazione da parte dell'utente, abbiamo bisogno solo di questo pacchetto per organizzare e installare insieme altri pacchetti software correlati.

2.3 Attuazione

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>
Inserisci qui la descrizione dell'immagine

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

3. File di avvio ROS

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.

3.1. File di avvio della gestione del nodo ROS

3.1.1 Concetto

Il file di avvio è un file in formato XML che può avviare più nodi locali e remoti e impostare parametri nel server dei parametri.

3.1.2 Funzione

Semplifica la configurazione e l'avvio dei nodi e migliora l'efficienza di avvio dei programmi ROS.

3.1.3 Utilizzo

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

3.2 avviare il tag del file

Italiano: https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9