Progetto Ignition Robotics

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

Riepilogo del progetto

Organizzazione open source:
Robotica di accensione
Technical writer:
Un Le tailandese
Nome progetto:
Tutorial di Ignition Physics e documentazione relativa alle API
Durata del progetto:
Durata standard (3 mesi)

Project description

Motivazione

La libreria Ignition Physics consente un utilizzo flessibile dei motori fisici che vengono trasferiti al back-end della simulazione Ignition Gazebo. Molti motori fisici esterni possono essere adattati alla libreria come plug-in costituiti da diversi set di caratteristiche in base alle loro capacità e al contesto applicativo, al fine di alimentare la simulazione del gazebo. Tuttavia, la fase corrente della libreria non fornisce:

  • tutorial completi sulla creazione di plug-in di fisica personalizzati che utilizzano motori di fisica personalizzati per alimentare la simulazione
  • documentazione dell'API coerente

Lo scopo di questa proposta è quello di risolvere questi problemi per una migliore gestione del progetto e per guidare i nuovi collaboratori e utenti su un approccio più logico. I dettagli del processo di documentazione saranno discussi nella prossima sezione, quindi seguiti dalla sezione relativa agli obiettivi per pianificare il periodo di tempo per completare il progetto. Infine, vengono menzionate alcune note sulla documentazione attuale.

Descrizione

Questo progetto ha due obiettivi principali:

  • Crea tutorial dettagliati sulla creazione di plug-in di fisica personalizzati che interfacciano con l'API della libreria attuale.
  • Migliora la documentazione attuale dell'API della libreria per scopi di manutenzione e collaborazione.

Attualmente, DART è l'unico motore di fisica di supporto di questa libreria. Le esercitazioni verteranno quindi su DART. Verranno presi in considerazione i seguenti tutorial iniziali:

  1. Introduzione: descrive l'architettura di alto livello della libreria Ignition Physics, i motori fisici supportati e gli obiettivi.
  2. Installazione: indica all'utente di installare facoltativamente i motori fisici necessari in base ai contesti dell'applicazione. Questo tutorial illustra anche configurazioni di esempio per ogni plug-in del motore fisico per adattare una simulazione specifica.
  3. Utilizzo del plug-in DART: descrive un esempio di utilizzo del motore fisico di DART nella simulazione di Gazebo. Il tutorial consiste in una sequenza di esecuzioni e configurazioni per avviare questa libreria come backend per la simulazione di Gazebo in un ambiente di esempio specifico.
  4. Crea plug-in personalizzato: aiuta nuovi utenti o sviluppatori a creare un plug-in personalizzato basato su un motore fisico personalizzato tramite alcune forme di file di configurazione (possibilmente modelli di classi) e a sviluppare un'interfaccia tra l'API del motore fisico e questa API della libreria. Alla fine del tutorial è possibile annotare alcuni controlli di integrità.
  5. Utilizzo di più plug-in in una simulazione (bisogno di una discussione): descrive come utilizzare contemporaneamente più plug-in in fase di runtime per una simulazione di esempio.

Durante il periodo di legame tra community, si parlerà di un'ulteriore pianificazione di strutture, descrizioni e contenuti dei tutorial. L'autore di questi tutorial deve assicurarsi che i passaggi del tutorial siano validi prima di unirli al repository.

Per la documentazione dell'API, è possibile adattarsi allo stile della documentazione di Google C++ per questa libreria. Ad esempio, tutte le classi devono avere una descrizione a livello di classe. Inoltre, tutte le funzioni pubbliche devono essere documentate con una descrizione e tutti i relativi argomenti, nonché con possibili valori ed eccezioni restituiti. È utile che le classi più importanti (ad es.dartsim::RetrieveWorld, Feature ecc.) siano documentate per prime come un approccio dall'alto verso il basso più semplice. Un ulteriore stile di documentazione, un'importante identificazione della classe verrà discusso nel periodo di legame tra community.

Milestones

Questa sezione pianifica un periodo di tempo iniziale per il completamento degli obiettivi menzionati del progetto. La pianificazione del tempo è la seguente:

  • Dal 17 agosto al 13 settembre: legami comunitari:

    1. Organizza riunioni per definire gli ambiti del progetto, le pianificazioni dei tutorial, nonché le aspettative sia dell'autore che dei mentori.
    2. Analizza il quadro generale del codice sorgente di Ignition Physics.
  • 14 settembre - 31 ottobre: scrivi la bozza dei tutorial menzionati con perfezionamenti iterativi tra mentori e autore tramite riunioni.

  • 1° novembre - 30 novembre: scrivi la documentazione dell'API per le classi più importanti e compila la documentazione utilizzando Doxygen.

  • 1° dicembre - 5 dicembre: scrivi il report sul progetto.

  • Dopo GSoD 2020: vorrei rimanere in contatto con Ignition Robotics per migliorare ulteriormente e mantenere il mio lavoro.

Note finali

È essenziale rivedere l'attuale README.md sulla prima pagina di Ignition Physics, poiché l'installazione binaria che utilizza apt-get non funziona su Ubuntu 18.04. È necessaria anche una revisione della sezione Installazione sorgente a causa di una formattazione non corretta.