Progetto Webots

Questa pagina contiene i dettagli di un progetto di documentazione tecnica accettato per la stagione della documentazione di Google.

Riepilogo del progetto

Organizzazione open source:
Webots
Redattore tecnico:
Canale Soft Illusion
Nome progetto:
Serie di tutorial video per Webots (integrazione con ROS2)
Durata del progetto:
Durata standard (3 mesi)

Project description

Apprendimento:

Questa serie di tutorial video consentirà ai nuovi utenti di iniziare al meglio con Webots e fornirà agli spettatori soluzioni chiare passo passo per realizzare simulazioni specifiche.

Obiettivo:

Al termine di questa serie, gli spettatori saranno in grado di creare nodi ROS2 di base e interagire con Webots, nonché di acquisire la sicurezza necessaria per lavorare a progetti avanzati in robot mobili. Questa serie di video fornirà anche buone spiegazioni teoriche di vari concetti vitali nel campo della robotica.

Dettagli della serie di video:

  1. Installazione di ROS 2 e configurazione di un repository in Visual Studio Code. Ciò include l'installazione di ROS2 tramite comando e le informazioni di base del suo funzionamento. In secondo luogo, includerà anche la configurazione dell'area di lavoro ROS su VS Code e la funzionalità delle schede di base in VS Code.

  2. Esempio di base di ROS2 e Webots. Alcuni esempi di ROS2 di Webots verranno utilizzati per coinvolgere gli spettatori nel capire quali meraviglie si possono fare se si utilizza ROS2 con Webots per la simulazione. Saranno incluse anche le teorie di base della comunicazione tra ROS2 e Webots.

  3. Utilizzo dei servizi ROS2 per interagire con Webots. Insegnamento delle nozioni di base del servizio ROS che spiega la differenza tra i servizi in ROS e ROS2. In secondo luogo, vengono mostrati tutorial passo passo per chiamare i servizi e attivare l'argomento del sensore per le letture e gli attuatori per il movimento.

  4. Controlla il robot personalizzato con ROS2 Publisher. Scoprire come pubblicare messaggi su Webots utilizzando i publisher ROS2. Possiamo implementare un esempio di controllo del movimento del robot pubblicando l'output della tastiera in un argomento che può essere utilizzato dai servizi ROS per il movimento in Webots.

  5. Ricevi feedback dal robot con ROS2 Subscriber. In questo video, sottoscriveremo le letture dei sensori di distanza e fermeremo il robot se sta per entrare in collisione. Quindi, in sostanza, si tratta di un nodo di evitamento degli ostacoli con messaggi interattivi pubblicati.

  6. Robot master(publisher) e slave(subscriber) con ROS2. In questo video controlleremo un robot con una tastiera e faremo in modo che un altro robot scappi da quello manuale. Come in una scena di Ladri e poliziotti :) [Questo sarà il seguito dei video 3, 4 e 5]. In questo modo, gli spettatori potranno testare la comunicazione e rilevare eventuali errori nella simulazione se si verifica un problema in ROS.

  7. Configurazione di Rviz (visualizzazione di un output del sensore diverso). In questo video, aggiungeremo alcuni altri sensori e pubblicheremo i relativi dati su Rviz. Al termine di questo video, lo spettatore sarà in grado di configurare Rviz (ad esempio aggiungendo sensori come Lidar, fotocamera e così via per la visualizzazione), salvare la configurazione e generare la configurazione salvata la volta successiva.

  8. Video di debug (Rostopic echo, Rostopic info, RQT_graph). Questo video includerà una funzionalità errata deliberata di alcuni argomenti per aiutarti a comprendere la tecnica di debug. Seguiremo una procedura per visualizzare il grafico RQT e conoscere gli argomenti responsabili del problema. Utilizzo di rostopic echo per verificare se l'argomento viene pubblicato e alla fine controllando le informazioni di rostopic per risolvere il problema. Risolvi il problema e ripristina la funzionalità normale.

  9. Video di debug(rqt_console, rqt_gui) In questo video, nel nodo verranno utilizzati messaggi Ros(info, debug, error ecc.) e verrà illustrato l'uso di rqt_console. Questo video verrà esteso anche per l'utilizzo di rqt_gui per pubblicare messaggi simulati al fine di ottenere la funzionalità richiesta. Questo può essere un approccio alternativo per correggere alcuni bug.

  10. Video sugli argomenti avanzati: sull'integrazione della libreria SLAM in un ambiente sconosciuto (SLAM toolbox o LaMa) [Parte 1] Questo video inizierà con la teoria di base dei problemi SLAM. Dopodiché utilizzeremo l'infrastruttura dei concetti insegnati sopra per comprendere il punto cruciale del progetto. Infine, creeremo i nodi necessari tramite il terminale e vedremo l'output della mappatura in Rviz.

  11. Video sugli argomenti avanzati: sull'integrazione della libreria SLAM in un ambiente sconosciuto (SLAM toolbox o LaMa) [Parte 2] Come continuazione del decimo video, in questo video ti insegnerò come creare un file di lancio per avviare tutti i nodi contemporaneamente ed esaminare rqt_graph per una corretta comprensione dei concetti nel framework ROS. Alla fine, salveremo la mappa generata dal pacchetto utilizzando un server di mappe.

  12. Video sugli argomenti avanzati: sull'integrazione di OpenCV (rilevamento di tag AR, pacchetto Ar_track_alvar) [Parte 1] Il video inizia con una spiegazione di cosa sono i tag AR e del loro significato nella localizzazione tramite la visione artificiale. Poi approfondiremo il funzionamento del pacchetto Alvar per la traccia AR. In questo modo potrai avere una visione generale del progetto. Infine, verrà creato un servizio per attivare uno stream di fotogrammi video da Webots a un argomento ROS.

  13. Video avanzati sugli argomenti: sull'integrazione di OpenCV (rilevamento dei tag AR, pacchetto Ar_track_alvar) [Parte 2] Questo video sarà una continuazione del dodicesimo video in cui il pacchetto utilizzerà lo stream di immagini sopra indicato e verrà pubblicato un argomento relativo alla trasformazione tra robot e tag AR, che potrà essere visualizzato su Rviz. Infine, mentre muoviamo il robot, vedremo diversi tag che vengono rilevati e la loro posizione che cambia in Rviz e nei messaggi rostopic.

Conclusione:

Questo progetto GSOD è un pacchetto autonomo che consente di comprendere le nozioni di base dell'integrazione di ROS2 con Webots. Questo pacchetto includerà anche l'implementazione pratica dei concetti di ROS2, come argomenti, servizi, nodi, file di lancio, publisher, sottoscrittore, diversi strumenti di debug e l'utilizzo di codice VS. Saranno coinvolti anche progetti avanzati su argomenti come SLAM e OpenCV. In questo modo, gli spettatori avranno un paradigma di un lavoro end-to-end che utilizza ROS2 e Webots.