Questa pagina contiene i dettagli di un progetto di scrittura tecnica accettato per la stagione di Documenti Google.
Riepilogo progetto
- Organizzazione open source:
- Ignition Robotics
- Redattore tecnico:
- Un Le thailandese
- Nome progetto:
- Tutorial e documentazione dell'API Ignition Physics
- Durata del progetto:
- Durata standard (3 mesi)
Project description
Motivazione
La libreria Ignition Physics consente un utilizzo flessibile dei motori fisici con il trasferimento al back-end della simulazione del Gazebo Ignition. Molti motori fisici esterni possono essere adattati alla libreria come plug-in costituiti da diversi insiemi di funzionalità in base alle loro capacità e ai contesti di applicazione, al fine di potenziare la simulazione di Gazebo. Tuttavia, lo stato attuale della raccolta non fornisce:
- tutorial completi sulla creazione di plug-in di fisica personalizzati che utilizzano motori di fisica personalizzati per potenziare la simulazione
- documentazione dell'API coerente
Questa proposta mira a risolvere questi problemi per una migliore manutenzione del progetto e a guidare i nuovi collaboratori e utenti in modo più coerente. I dettagli del processo di documentazione verranno discussi nella sezione successiva e seguiti dalla sezione relativa al traguardo per pianificare il periodo di tempo per completare il progetto. Infine, vengono riportate alcune note sulla documentazione attuale.
Descrizione
Questo progetto ha due obiettivi principali:
- Crea tutorial dettagliati sulla creazione di plug-in di fisica personalizzati che interagiscono con l'API della libreria attuale.
- Migliora la documentazione attuale dell'API della libreria a scopo di manutenzione e collaborazione.
Al momento, DART è l'unico motore fisico supportato da questa libreria. Pertanto, i tutorial ruoteranno attorno a DART. Verranno presi in considerazione i seguenti tutorial iniziali:
- Introduzione: descrive l'architettura di alto livello della libreria Ignition Physics, i motori fisici supportati e gli obiettivi.
- Installazione: guida l'utente a installare facoltativamente i motori fisici necessari a seconda dei contesti di applicazione. Questo tutorial mostra anche configurazioni di esempio per ogni plug-in del motore fisico per l'adattamento di una simulazione specifica.
- Utilizzo del plug-in DART: descrive un esempio di utilizzo del motore fisico DART nella simulazione Gazebo. Il tutorial consiste in una sequenza di esecuzioni e configurazioni per avviare questa libreria come back-end per la simulazione di Gazebo in un ambiente di esempio specifico.
- Crea plug-in personalizzato: aiuta il nuovo utente o sviluppatore a creare un plug-in personalizzato basato su un motore fisico personalizzato tramite alcune forme di file di configurazione (eventualmente modelli di classe) e a sviluppare un'interfaccia tra l'API del motore fisico e questa API della libreria. Alcuni controlli di integrità possono essere indicati alla fine del tutorial.
- Utilizzo di più plug-in in una simulazione (discussione necessaria): descrive come utilizzare contemporaneamente più plug-in in fase di esecuzione per una simulazione di esempio.
Ulteriori pianificazioni relative a strutture, descrizioni e contenuti dei tutorial verranno discusse durante il periodo di affiatamento della community. Infatti, l'autore di questi tutorial deve garantire la validità dei passaggi del tutorial prima di eseguire l'unione al repository.
Per la documentazione dell'API, è possibile adattarsi allo stile di documentazione di Google C++ per questa libreria. Ad esempio, tutti i corsi devono avere una descrizione a livello di corso. Inoltre, tutte le funzioni pubbliche devono essere documentate con una descrizione, tutti gli argomenti, nonché possibili valori restituiti ed eccezioni. È consigliabile documentare per prime le classi più importanti (ad es. dartsim::RetrieveWorld, Feature e così via) come approccio top-down più semplice. Nel periodo del legame con la comunità si parlerà di ulteriore stile della documentazione, importanti identificazione della classe.
Milestones
Questa sezione prevede un periodo di tempo iniziale per il completamento degli obiettivi del progetto menzionati. La pianificazione dei tempi è la seguente:
17 agosto - 13 settembre: rafforzamento della community:
- Organizza riunioni per stabilire gli ambiti del progetto e la pianificazione dei tutorial, nonché le aspettative sia da parte dell'autore che dei mentori.
- Acquisisci un quadro completo del codice sorgente di Ignition Physics.
14 settembre - 31 ottobre: stesura della bozza dei tutorial menzionati con perfezionamenti iterativi tra i mentor e lo scrittore tramite riunioni.
1° novembre - 30 novembre: scrivi la documentazione dell'API per le classi più importanti e compilala utilizzando Doxygen.
1-5 dicembre: scrivi il report del progetto.
Dopo GSoD 2020: vorrei restare in contatto con Ignition Robotics per migliorare e mantenere ulteriormente il mio lavoro.
Note finali
È essenziale rivedere l'attuale README.md nella home page di Ignition Physics, poiché l'installazione del file binario utilizzando apt-get non funziona su Ubuntu 18.04. Anche la sezione di installazione dell'origine deve essere rivista a causa di una formattazione errata.