Progetto RoboComp

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

Riepilogo del progetto

Organizzazione open source:
RoboComp
Technical writer:
Le thailandesi
Nome progetto:
Componenti di base di RoboComp
Durata del progetto:
Durata standard (3 mesi)

Project description

Motivazione

RoboComp è uno dei framework di robotica molto noti per la ricerca e le applicazioni pratiche. Il repository robocomp include un'ampia gamma di componenti (gestiti in repository più piccoli chiamati robocomp-robolab) per diverse applicazioni robotiche come controllo motori, localizzazione e mappatura, navigazione, riconoscimento e così via. Tuttavia, i repository dei componenti non dispongono di documentazione dettagliata per la compilazione o l'utilizzo di ciascun componente, quindi l'usabilità limitata per i nuovi sviluppatori. Lo scopo di questa proposta è risolvere questo problema documentando i componenti fondamentali di RoboComp e compilando un documento di esempio per la combinazione di diversi componenti al fine di risolvere una specifica attività di robotica. I dettagli del processo di documentazione verranno discussi nella prossima sezione e seguiti dalla sezione relativa agli obiettivi per pianificare il periodo di tempo necessario per completare il progetto. Infine, vengono menzionate alcune note sulla procedura di documentazione.

Descrizione

Come accennato, questo progetto ha due obiettivi principali:

  • Descrizione dei dettagli del documento, compilazione e installazione, configurazione, utilizzi e problemi noti relativi a ciascun componente di RoboComp
  • Scrivi una guida di esempio che utilizzi diversi componenti nell'ambiente RoboComp per risolvere una specifica attività di robotica, ovvero la localizzazione.

La maggior parte dei componenti di base del repository robocomp-robolab al momento non dispone di istruzioni dettagliate su come compilare e utilizzare le diverse configurazioni di parametri. Ciò crea un enorme ostacolo per i nuovi sviluppatori che vogliono utilizzare componenti nel loro progetto o contribuire al framework. Il motivo è che molti componenti sono un wrapper per driver esterni o librerie che hanno molte dipendenze, il che rende difficile la compilazione e l'installazione delle attività. Inoltre, molti componenti eseguono il wrapping di driver di dispositivo complessi (ad esempio hokuyoComp generico) per fornire un'interfaccia dei messaggi in RoboComp, che richiede conoscenze specifiche del dispositivo per l'ottimizzazione dei parametri.

Di conseguenza, la necessità di una documentazione dettagliata, che comprende descrizioni dei dispositivi, risoluzione delle dipendenze e utilizzo, è essenziale per il contributo open source. Un esempio del documento del componente hokuyoComp di lavoro è disponibile al link:

https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp

Per scrivere una documentazione concreta e dettagliata sui componenti utilizzando un approccio dall'alto verso il basso, bisogna essere in grado almeno di sperimentare i contenuti scritti in quel documento, perché lo scopo finale della documentazione è trasferire le conoscenze operative agli sviluppatori ereditati. La struttura proposta per ciascun documento dei componenti è presentata come segue:

  • Descrizione
  • Compilazione e installazione
  • Parametri di configurazione
  • Avvio del componente (utilizzi)
  • Problemi noti

Nell'esempio, si raccolgono innanzitutto informazioni sulle specifiche del sensore Hokuyo e si legge il codice del componente per comprendere l'immagine delle funzionalità del componente al fine di scriverne descrizioni. Successivamente, una conoscenza dell'ambiente RoboComp e dei parametri specifici del dispositivo, nonché delle dipendenze di libreria, aiuterebbe a documentare il processo di compilazione, installazione e configurazione del componente. Ad esempio, per compilare hokuyoComp è necessario un vecchio pacchetto deb liburg0-dev da Ubuntu 14.04, ma il pacchetto deb viene rimosso da Ubuntu PPA nella versione successiva, quindi dobbiamo adottare una soluzione alternativa per la compilazione come indicato nel documento. In questo processo, possiamo anche registrare problemi noti per velocizzare il debug per i nuovi sviluppatori. Infine, gli utilizzi dei componenti per diversi scenari d'uso sono documentati per una facile integrazione del componente nell'ambiente RoboComp per diverse attività di robotica.

Traguardi

Questa sezione pianifica un periodo di tempo iniziale per il completamento degli obiettivi menzionati del progetto. Selezioneremo i documenti dei componenti da scrivere in base alle categorie (ad es.componenti fotocamera, componenti laser). La stima attuale del tempo per il completamento della documentazione relativa ai componenti si basa sul tempo impiegato per completare esempi di documenti hokuyoComp. La tabella è la seguente:

  • 1° agosto - 1° settembre: legami comunitari:

    1. Organizzazione di un incontro settimanale per definire gli ambiti del progetto e le aspettative degli scrittori e dei mentori.
    2. Ottenere una comprensione approfondita del framework RoboComp.
  • 2 settembre - 2 novembre: scrittura di documenti per ogni componente nel repository robocomp-robolab con perfezionamenti iterativi tra mentori e scrittori tramite riunioni (si prevede che completi la maggior parte dei documenti non documentati)

  • 2-26 novembre: stesura di un documento generale come esempio dell'utilizzo di diversi componenti per risolvere un'attività di robotica.

  • 27 - 29 novembre: fine dei report sul progetto.

  • Dopo GSoD 2019: vorrei rimanere in contatto con RoboComp per migliorare ulteriormente e mantenere i miei lavori.

Note finali

È essenziale scrivere un esempio generale di come integrare diversi componenti nell'ambiente RoboComp per consentire agli utenti di comprendere il quadro generale delle funzionalità RoboComp. Questo documento di esempio verrà discusso ulteriormente con i mentori per decidere quale attività di robotica è adatta in base all'attuale implementazione di RoboComp.