Progetto Webots

Questa pagina contiene i dettagli di un progetto di scrittura tecnica accettato per la stagione dei documenti Google.

Riepilogo del progetto

Organizzazione open source:
Webot
Technical writer:
Canale con illusioni soffuse
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 nel miglior modo possibile con Webots e fornirà agli spettatori soluzioni passo passo chiare per ottenere simulazioni specifiche.

Obiettivo:

Alla fine di questa serie, gli spettatori saranno in grado di creare nodi ROS2 di base e interagire con Webots, oltre ad acquisire la sicurezza necessaria per lavorare su progetti avanzati in robot mobili. Questa serie di video fornirà anche valide spiegazioni teoriche di diversi concetti fondamentali nel campo della robotica.

Dettagli della serie di video:

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

  2. Esempio di base di ROS2 e Webots. Alcuni esempi di Webots ROS2 verranno utilizzati per coinvolgere gli spettatori e capire quali meraviglie si possono fare utilizzando ROS2 insieme a Webots per la simulazione. Saranno incluse anche teorie di base della comunicazione tra ROS2 e Webots.

  3. Utilizzo dei servizi ROS2 per interagire con Webots. Nozioni di base sull'insegnamento del servizio ROS che spiegano la differenza tra i servizi in ROS e ROS2. In secondo luogo, mostrano tutorial passo passo per chiamare i servizi e abilitare l'argomento del sensore per le letture e gli attuatori per il movimento.

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

  5. Ricevi feedback dal robot con l'iscritto ROS2. In questo video, ci abboneremo alle letture dei sensori di distanza e fermeremo il robot se sta per entrare in collisione. In pratica, si tratterà di un nodo per evitare ostacoli, con la pubblicazione di messaggi interattivi.

  6. Robot master(publisher) slave(sottoscrittore) con ROS2. In questo video controlleremo un robot con una tastiera e faremo scappare un altro robot dal robot manuale. Simile a uno scenario simile a Thief and Cops :) [Questa sarà una continuazione di 3,4,5 video]. In questo modo, gli spettatori potranno testare la comunicazione e avranno dei problemi nella simulazione in caso di problemi con il ROS.

  7. Configurazione di Rviz (visualizzazione di 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 ecc.per la visualizzazione), salvando la configurazione e creando la configurazione salvata la prossima volta.

  8. Video di debug (eco rostopic, informazioni rostopic, RQT_graph). Questo video includerà funzionalità deliberatamente errate di alcuni argomenti per aiutare a comprendere la tecnica di debug. Seguiremo una procedura di visualizzazione del grafico RQT e di sapere quali argomenti sono responsabili del problema. Utilizzo di rostopic Echo per controllare se l'argomento è in corso di pubblicazione e alla fine controllo di informazioni rostopic per risolvere il problema. Risolvi il problema e assicurati che il funzionamento sia normale.

  9. Video di debug(rqt_console, rqt_gui) In questo video, nel nodo verranno utilizzati i messaggi Ros(informazioni, debug, errore e così via) e verrà esaminato l'utilizzo di rqt_console. Questo video verrà inoltre esteso all'uso di rqt_gui per pubblicare messaggi fittizi e ottenere la funzionalità richiesta. Questo può essere un approccio alternativo per correggere alcuni bug.

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

  11. Video su argomenti avanzati: sull'integrazione della libreria SLAM in un ambiente sconosciuto (SLAM toolbox o LaMa) [Parte 2] A seguito del decimo video, in questo video insegnerò a creare un file di avvio per avviare tutti i nodi insieme 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 su argomenti avanzati: sull'integrazione di OpenCV (rilevamento di tag AR, pacchetto Ar_track_alvar) [Parte 1] Il video inizierà con i tag AR e il loro significato nella localizzazione utilizzando la visione artificiale. Poi parleremo del funzionamento del pacchetto Alvar per il tracciamento AR. Questo ti aiuterà a fornire una visione d'insieme del progetto. Infine, verrà offerto un servizio per abilitare un flusso di frame video da Webots a un argomento ROS.

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

Conclusione:

Questo progetto GSOD è un pacchetto autosufficiente che consente una comprensione di base dell'integrazione di ROS2 con Webots. Questo pacchetto includerà anche l'implementazione pratica dei concetti in ROS2, come argomenti, servizi, nodi, file di lancio, publisher, abbonato, diversi strumenti di debug e l'uso di VS Code. Saranno coinvolti anche progetti avanzati su argomenti come SLAM e OpenCV. Questo fornirà agli spettatori un paradigma di un lavoro end-to-end utilizzando ROS2 e Webots.