Cos'è il ROS?
ROS (Robot Operating System) è un framework progettato per la creazione di sistemi robotici. Non è un vero e proprio sistema operativo in senso tradizionale, ma piuttosto un meta-sistema operativo che gira su un sistema operativo host (come Linux).
Fornisce un livello middleware che astrae l'hardware e offre una serie di servizi, strumenti e librerie per facilitare lo sviluppo del software del robot.
Quali sono i componenti chiave del ROS?
Il framework ROS è composto da diversi componenti, tra cui:
- Nucleo ROS è il componente centrale che fornisce servizi essenziali per la comunicazione tra i nodi ROS in un sistema distribuito, come il passaggio di messaggi, la gestione dei parametri e la denominazione.
- Nodi ROS sono singoli programmi che comunicano tra loro tramite il ROS Core utilizzando un sistema di messaggistica di pubblicazione e sottoscrizione.
- Argomenti ROS abilitare la comunicazione tra i nodi ROS. Sono chiamati bus attraverso i quali i nodi scambiano messaggi. Un nodo può pubblicare messaggi su un argomento e qualsiasi nodo interessato può iscriversi a quell'argomento per ricevere i messaggi. Gli argomenti seguono un modello di messaggistica pubblicazione-sottoscrizione, consentendo la comunicazione asincrona.
- Messaggi ROS sono le strutture dati utilizzate per la comunicazione tra i nodi ROS e definiscono le informazioni scambiate su un argomento.
- Servizi ROS fornire ai nodi un modo per inviare richieste e ricevere risposte. Usano un modello di richiesta-risposta, garantendo uno scambio diretto di messaggi. Un nodo può offrire un servizio, specificando un tipo di servizio che definisce i formati dei messaggi di richiesta e risposta. Altri nodi possono quindi chiamare il servizio per effettuare richieste e ricevere risposte.
- File di avvio ROS semplificare il processo di avvio di più nodi e la configurazione dei relativi parametri. Un file di lancio è un file XML che descrive i nodi da eseguire, i loro parametri e le connessioni tra di loro. Utilizzando i file di avvio, puoi avviare più nodi con un singolo comando, semplificando la gestione di sistemi robotici complessi.
Nel contesto del ROS, il ricevitori RTK può essere trattato come un nodo ROS e può comunicare con altri nodi in un sistema ROS utilizzando argomenti, messaggi e servizi ROS.
Quale piattaforma scegliere per ROS Core?
ROS Core può essere eseguito su un PC, un laptop, un computer o una varietà di piattaforme embedded: NVIDIA Jetson, Raspberry Pi, BeagleBone, Intel NUC, Odroid ecc.
La scelta tra di loro per l'esecuzione di ROS dipende da diversi fattori, che sono elencati di seguito. Ecco alcuni consigli per aiutarti a scegliere tra di loro per l'esecuzione di ROS Core:
- Requisiti computazionali: Se la tua applicazione di robotica richiede un'elaborazione ad alte prestazioni, NVIDIA Jetson o un PC potrebbero essere la scelta migliore. Entrambi offrono CPU e GPU ad alte prestazioni, ideali per attività computazionalmente intensive come la visione artificiale e l'apprendimento automatico.
- Consumo di energia: Se la tua applicazione di robotica è alimentata a batteria o richiede un basso consumo energetico, allora Raspberry Pi o NVIDIA Jetson potrebbero essere la scelta migliore. Entrambi offrono opzioni a basso consumo energetico e Raspberry Pi è noto per la sua efficienza energetica.
- Costo: Se il costo è un fattore importante, Raspberry Pi è l'opzione più conveniente ed è ampiamente utilizzato per progetti di prototipazione e hobby. NVIDIA Jetson e PC sono opzioni più costose, ma offrono capacità di elaborazione più potenti.
- Fattore di forma: NVIDIA Jetson o Raspberry Pi sono le piattaforme più compatte e leggere. Entrambi offrono fattori di forma ridotti e sono adatti per la realizzazione di sistemi robotici compatti.
Quindi, scegli Raspberry Pi se hai bisogno di un'opzione conveniente (impara come connettersi simpleRTK2B/3B a un Raspberry Pi) o puoi NVIDIA Jetson se le capacità di elaborazione sono più importanti (controlla passo dopo passo tutorial su come collegare il ricevitore RTK a NVIDIA Jetson).
Quale ambiente di sviluppo scegliere per ROS?
Gli ambienti di sviluppo più comunemente usati sono Ubuntu, ROS Development Studio (ROSDS), Visual Studio Code, Eclipse, CLion ecc.
Ubuntu è un sistema operativo ben supportato e ampiamente utilizzato con un'ampia comunità di utenti che contribuiscono allo sviluppo e al supporto di ROS.
Lo stesso ROS è principalmente sviluppato e testato su Ubuntu, il che significa che è ottimizzato per questa piattaforma e la maggior parte dei pacchetti e delle librerie ROS sono disponibili come pacchetti predefiniti per Ubuntu. Ricorda solo che:
- ROS Melodica è compatibile con Ubuntu 18 (controlla Guida all'installazione melodica)
- ROS Noetico è compatibile con Ubuntu 20 (controlla Guida all'installazione Noetic)
Quali ricevitori e antenne RTK sono adatti per l'uso in ROS?
Tutto ArduSimple ricevitori RTK e antenne sono compatibili con ROS.
Quando si sceglie specifico ricevitori RTK e antenne, considera i requisiti della tua applicazione, come precisione di posizionamento, opzioni di connettività e fattori ambientali, per selezionare l'apparecchiatura più adatta.
Per velocizzare l'integrazione dei dati GPS nel progetto ROS, abbiamo preparato Tutorial come usare ArduSimple prodotti in ROS.