RoboComp-Projekt

Diese Seite enthält die Details zu einem Projekt für technisches Schreiben, das für die Google-Produktsaison von Google Docs akzeptiert wurde.

Projektzusammenfassung

Open-Source-Organisation:
RoboComp
Technischer Redakteur:
Le Thai An
Projektname:
Die grundlegenden Komponenten von RoboComp
Projektdauer:
Standarddauer (3 Monate)

Projektbeschreibung

Ziel

RoboComp ist eines der bekannten Robotik-Frameworks für Forschung und praktische Anwendungen. Das Robotcomp-Repository umfasst eine breite Palette von Komponenten (gepflegt in einem kleineren Repository namens robocomp-robolab) für verschiedene Robot-Anwendungen wie Motorsteuerung, Lokalisierung und Mapping, Navigation, Erkennung usw. Im Repository der Komponenten sind jedoch keine detaillierten Dokumentationen für die Kompilierung oder Verwendung der einzelnen Komponenten vorhanden, was die Nutzungsfreundlichkeit für neue Entwicklerinnen und Entwickler beeinträchtigt. Dieser Vorschlag zielt darauf ab, dieses Problem zu lösen, indem wichtige Komponenten von RoboComp dokumentiert und ein Beispiel zur Verwendung eines Dokuments zusammengestellt wird, um verschiedene Komponenten zur Lösung einer bestimmten Robotikaufgabe zu kombinieren. Die Details des Dokumentationsprozesses werden im nächsten Abschnitt besprochen, gefolgt vom Abschnitt zum Meilenstein zur Planung des Zeitrahmens für die Projektabwicklung. Abschließend sind noch einige Hinweise zum Dokumentationsprozess aufgeführt.

Beschreibung

Wie bereits erwähnt, hat dieses Projekt zwei Hauptziele:

  • Dokumentdetailbeschreibung, Kompilierung und Installation, Konfiguration, Verwendung und bekannte Probleme in Bezug auf jede Komponente in RoboComp
  • Schreiben Sie eine Beispielanleitung, die verschiedene Komponenten in der RoboComp-Umgebung verwendet, um eine bestimmte Robotikaufgabe zu lösen, z. B. die Lokalisierung.

Bei den meisten grundlegenden Komponenten im robocomp-robolab-Repository gibt es derzeit keine detaillierten Anleitungen zur Kompilierung und Verwendung in verschiedenen Parameterkonfigurationen. Dies stellt ein großes Hindernis für neue Entwickelnde dar, die Komponenten in ihrem Projekt verwenden oder zum Framework beitragen möchten. Der Grund ist, dass viele Komponenten ein Wrapper für externe Treiber oder Bibliotheken mit vielen Abhängigkeiten sind, was das Kompilieren und Installieren von Aufgaben erschwert. Darüber hinaus kapseln viele Komponenten einen komplexen Gerätetreiber (z. B. generisches hokuyoComp), um eine Nachrichtenschnittstelle in RoboComp bereitzustellen, die gerätespezifisches Wissen zum Abstimmen der Parameter erfordert.

Daher ist die Notwendigkeit einer detaillierten Dokumentation, die Gerätebeschreibungen, die auflösenden Abhängigkeiten und die entsprechende Nutzung umfasst, für den Open-Source-Beitrag unerlässlich. Ein Beispiel meines HokuyoComp-Komponentendokuments finden Sie unter dem folgenden Link:

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

Um mit einem Top-Down-Ansatz eine konkrete und detaillierte Dokumentation der Komponenten zu schreiben, muss der Inhalt des Dokuments zumindest erlebt werden können, da der letzte Zweck der Dokumentation darin besteht, Arbeitswissen an vererbte Entwickelnde zu vermitteln. Die vorgeschlagene Struktur für die einzelnen Komponentendokumente lautet wie folgt:

  • Beschreibung
  • Kompilierung und Installation
  • Konfigurationsparameter
  • Komponente starten (Nutzung)
  • Bekannte Probleme

In diesem Beispiel sammelt man zuerst Informationen über die Hokuyo-Sensorspezifikation, liest den Komponentencode durch, um die Komponentenfunktionen zu verstehen, und verfasst Komponentenbeschreibungen. Als Nächstes würden das Verständnis der RoboComp-Umgebung und das Wissen über gerätespezifische Parameter und Bibliotheksabhängigkeiten helfen, den Kompilierungs-, Installations- und Konfigurationsprozess der Komponente zu dokumentieren. Zum Kompilieren von hokuyoComp ist beispielsweise das alte liburg0-dev deb-Paket von Ubuntu 14.04 erforderlich, aber das deb-Paket wird in der späteren Version aus Ubuntu PPA entfernt. Daher müssen wir die Problemumgehung für die Kompilierung durchführen, wie im Dokument angegeben. In diesem Prozess können wir auch bekannte Probleme aufzeichnen, um die Fehlerbehebung für neue Entwickler zu beschleunigen. Schließlich wird die Verwendung der Komponenten für verschiedene Anwendungsszenarien dokumentiert, um die Komponente für verschiedene Robotikaufgaben einfach in die RoboComp-Landschaft zu integrieren.

Meilensteine

In diesem Abschnitt ist ein erster Zeitrahmen für die Erreichung der genannten Ziele des Projekts geplant. Wir wählen die zu schreibenden Komponentendokumente anhand von Kategorien (z. B. Kamerakomponenten, Laserkomponenten) aus. Die aktuelle Schätzung der Zeit für das Ausfüllen des Komponentendokuments basiert auf der Zeit, die das Ausfüllen der hokuyoComp-Beispieldokumente umfasst. Der Zeitplan sieht so aus:

  • 1. Aug.–1. Sept.: Community-Beziehung:

    1. Einrichtung eines wöchentlichen Treffens zur Festlegung des Projektumfangs sowie der Erwartungen an die Autoren und die beratenden Personen.
    2. Erläuterung der Konzepte und Zusammenhänge des RoboComp-Frameworks.
  • 2. September bis 2. November: Dokumenterstellung für jede Komponente im robocomp-robolab-Repository mit iterativer Optimierung zwischen Mentoren und Autoren über Meetings (es wird erwartet, dass die meisten nicht dokumentierten Dokumente fertiggestellt werden)

  • 2. Nov.–26. Nov.: Verfassen eines allgemeinen Dokuments als Beispiel für die Nutzung verschiedener Komponenten zur Lösung einer Robotikaufgabe.

  • 27. Nov.–29. Nov.: Ende der Projektberichte.

  • Nach GSoD 2019: Ich würde gerne mit RoboComp in Kontakt bleiben, um meine Arbeit weiter zu verbessern und zu pflegen.

Abschließende Hinweise

Es ist wichtig, ein allgemeines Beispiel für die Integration verschiedener Komponenten in eine RoboComp-Umgebung zu schreiben, damit die Nutzenden das Gesamtbild der RoboComp-Funktionen verstehen können. Dieses Beispieldokument wird mit Mentoren diskutiert, um zu entscheiden, welche Robotikaufgabe je nach aktueller Implementierung von RoboComp geeignet ist.