Ignition Robotics-Projekt

Diese Seite enthält die Details zu einem Projekt für technische Angelegenheiten, das für die Google-Saison der Dokumente angenommen wurde.

Projektzusammenfassung

Open-Source-Organisation:
Ignition Robotics
Technischer Redakteur:
An Thai Le
Projektname:
Anleitungen und API-Dokumentation für die Funktion „Zündphysik“
Projektdauer:
Standardlänge (3 Monate)

Projektbeschreibung

Motivation

Die Ignition Physics-Bibliothek ermöglicht eine flexible Nutzung der Physik-Engines, die in das Backend der Ignition Gazebo-Simulation übertragen werden. Viele externe Physik-Engines können als Plug-ins an die Bibliothek angepasst werden, die entsprechend ihren Fähigkeiten und Anwendungskontexten aus verschiedenen Funktionen bestehen, um Pavillon-Simulationen zu ermöglichen. Die aktuelle Phase der Bibliothek bietet jedoch nicht Folgendes:

  • Ausführliche Anleitungen zum Erstellen benutzerdefinierter Physik-Plug-ins, die benutzerdefinierte Physik-Engines für die Simulation verwenden
  • Eine kohärente API-Dokumentation

Mit diesem Vorschlag sollen diese Probleme gelöst werden, um die Projektverwaltung zu verbessern und neue Mitwirkende und Nutzer auf eine prinzipiellere Weise zu leiten. Die Details des Dokumentationsprozesses werden im nächsten Abschnitt erläutert. Danach folgt der Abschnitt zu Meilensteinen, in dem der Zeitrahmen für die Fertigstellung des Projekts geplant wird. Abschließend werden einige Hinweise zur aktuellen Dokumentation erwähnt.

Beschreibung

Dieses Projekt hat zwei Hauptziele:

  • Erstellen Sie detaillierte Anleitungen zum Erstellen benutzerdefinierter Physik-Plug-ins, die mit der aktuellen Bibliothek-API interagieren.
  • Die aktuelle API-Dokumentation der Bibliothek für Wartungs- und Zusammenarbeitszwecke verbessern.

Derzeit ist DART die einzige unterstützte Physik-Engine dieser Bibliothek. Die Anleitungen drehen sich daher um DART. Folgende erste Anleitungen werden berücksichtigt:

  1. Einführung: Hier wird die allgemeine Architektur der Ignition-Physikbibliothek, die unterstützten Physik-Engines und die Ziele beschrieben.
  2. Installation: Der Nutzer wird aufgefordert, je nach Anwendungskontext optional die erforderlichen Physik-Engines zu installieren. In dieser Anleitung werden auch Beispielkonfigurationen für jedes Physics-Engine-Plug-in zur Anpassung einer bestimmten Simulation gezeigt.
  3. DART-Plug-in-Nutzung: Hier wird die Beispielnutzung der DART-Physik-Engine in der Gazebo-Simulation beschrieben. Das Tutorial besteht aus einer Reihe von Ausführungen und Konfigurationen zum Starten dieser Bibliothek als Backend für die Gazebo-Simulation in einer bestimmten Beispielumgebung.
  4. Create custom plugin: Hier erfahren neue Nutzer oder Entwickler, wie sie ein benutzerdefiniertes Plug-in auf Grundlage einer benutzerdefinierten Physik-Engine über einige Konfigurationsdateien (möglicherweise Klassenvorlagen) erstellen und eine Schnittstelle zwischen der Physik-Engine-API und dieser Bibliothek-API entwickeln. Einige Plausibilitätschecks können Sie am Ende des Tutorials notieren.
  5. Mehrere Plug-ins in einer Simulation verwenden (Diskussion erforderlich): Hier wird beschrieben, wie Sie für eine Beispielsimulation mehrere Plug-ins gleichzeitig zur Laufzeit verwenden.

Die weitere Planung der Strukturen, Beschreibungen und Inhalte der Anleitungen wird in der Phase des Community-Bondings besprochen. Tatsächlich muss der Autor dieser Anleitungen die Gültigkeit der Anleitungsschritte überprüfen, bevor sie mit dem Repository zusammengeführt werden.

Für die API-Dokumentation können Sie den Google C++-Dokumentationsstil für diese Bibliothek anpassen. Beispielsweise müssen alle Klassen eine Beschreibung auf Klassenebene haben. Außerdem müssen alle öffentlichen Funktionen mit einer Beschreibung, allen Argumenten sowie möglichen Rückgabewerten und Ausnahmen dokumentiert sein. Es ist sinnvoll, die wichtigsten Klassen (z. B. dartsim::RetrieveWorld, Feature usw.) zuerst zu dokumentieren, da dies ein einfacherer Top-Down-Ansatz ist. Weitere Informationen zum Dokumentationsstil und zur wichtigen Klassenidentifikation werden während der Community-Bindungsphase besprochen.

Milestones

In diesem Abschnitt wird ein erster Zeitrahmen für die Erreichung der genannten Projektziele geplant. Die Zeitplanung sieht so aus:

  • 17. Aug.–13. Sept.: Community-Bindung:

    1. Vereinbaren Sie Besprechungen, um den Projektumfang und die Planung des Tutorials festzulegen sowie die Erwartungen der Autoren und Mentoren zu klären.
    2. Einen Überblick über den Ignition Physics-Quellcode erhalten
  • 14. Sept. bis 31. Oktober: Entwerfen Sie die erwähnten Anleitungen mit iterativen Optimierungen zwischen Mentoren und Autoren in Meetings.

  • 1. bis 30. November: API-Dokumentation für die wichtigsten Klassen schreiben und die Dokumentation mit Doxygen kompilieren.

  • 1. bis 5. Dezember: Projektbericht verfassen.

  • Nach GSoD 2020: Ich möchte mit Ignition Robotics in Kontakt bleiben, um meine Arbeit weiter zu verbessern und zu pflegen.

Abschließende Hinweise

Es ist wichtig, die aktuelle README.md auf der Startseite von Ignition Physics zu überarbeiten, da die Binärinstallation mit apt-get unter Ubuntu 18.04 nicht funktioniert. Der Abschnitt zur Installation der Quelle muss aufgrund falscher Formatierung ebenfalls überarbeitet werden.