Projekt Ignition Robotics

Ta strona zawiera szczegóły projektu technicznego do pisania w sezonie Dokumentów Google.

Podsumowanie projektu

Organizacja open source:
Robotyka zapłonowa
Pisarz techniczny:
An Thai Le
Nazwa projektu:
Samouczki Ignition Physics i dokumentacja API
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

Motywacja

Biblioteka Ignition Physics umożliwia elastyczne korzystanie z silników fizyki przenoszonych na backend symulacji Ignition Gazebo. Wiele zewnętrznych silników fizycznych można zaadaptować do biblioteki jako wtyczki składające się z różnych zestawów funkcji zależnie od ich możliwości i kontekstu aplikacji, aby zapewnić symulację altany. Jednak na obecnym etapie biblioteka nie zapewnia:

  • kompleksowe samouczki dotyczące tworzenia niestandardowych wtyczek fizyki, które korzystają z niestandardowych silników fizyki do obsługi symulacji;
  • spójna dokumentacja interfejsu API,

Celem tej propozycji jest rozwiązanie tych problemów, aby ułatwić utrzymanie projektu oraz zapewnić nowo dołączającym uczestnikom i użytkownikom bardziej przejrzyste zasady. Szczegóły procesu dokumentowania omówimy w następnej sekcji, a potem przejdziemy do sekcji dotyczącej kamieni milowych, w której zaplanowamy ramy czasowe realizacji projektu. Na koniec wspomnimy o kilku uwagach na temat bieżącej dokumentacji.

Opis

Ten projekt ma 2 główne cele:

  • Twórz szczegółowe samouczki na temat tworzenia niestandardowego wtyczka do fizyki, który będzie współpracował z obecną biblioteką API.
  • Ulepszenie dokumentacji interfejsu API obecnej biblioteki na potrzeby konserwacji i współpracy.

Obecnie DART jest jedynym obsługiwanym silnikiem fizyki w tej bibliotece. Dlatego samouczki będą dotyczyć DART. Rozważymy te samouczki:

  1. Wprowadzenie: opis ogólnej architektury biblioteki Ignition Physics, obsługiwanych silników fizyki i celów.
  2. Instalacja: prowadzi użytkownika, aby opcjonalnie zainstalował niezbędne silniki fizyczne w zależności od kontekstu aplikacji. W tym samouczku znajdziesz też przykładowe konfiguracje każdego wtyczki silnika fizycznego, które pozwolą dostosować konkretną symulację.
  3. Użycie wtyczki DART: opisuje przykład użycia silnika fizycznego DART w symulacji Gazebo. Samouczek składa się z sekwencji uruchomień i konfiguracji, które umożliwiają uruchomienie tej biblioteki jako backendu dla symulacji Gazebo w określonym przykładowym środowisku.
  4. Tworzenie niestandardowego wtyczka: przewodnik dla nowych użytkowników i programistów, który pomaga tworzyć niestandardowy wtyczek na podstawie niestandardowego silnika fizycznego za pomocą niektórych form plików konfiguracyjnych (np. szablonów klas) oraz tworzyć interfejs między interfejsem API silnika fizycznego a interfejsem API tej biblioteki. Niektóre testy poprawności można znaleźć na końcu samouczka.
  5. Korzystanie z wielu wtyczek w symulacji (potrzebna dyskusja): opis sposobu jednoczesnego używania wielu wtyczek w ramach przykładowej symulacji.

Dalsze planowanie dotyczące struktury, opisów i treści samouczników zostanie omówione w okresie budowania więzi ze społecznością. Rzeczywiście, autor tych samouczków musi sprawdzić poprawność kroków samouczka przed scaleniem z repozytorium.

W przypadku dokumentacji interfejsu API można dostosować styl dokumentacji Google C++ dla tej biblioteki. Na przykład wszystkie zajęcia muszą mieć opis na poziomie zajęć. Ponadto wszystkie funkcje publiczne muszą być udokumentowane, a ich opisy muszą zawierać wszystkie argumenty oraz możliwe wartości i wyjątki zwracane. Dobrze jest najpierw udokumentować najważniejsze klasy (np.dartsim::retrieveWorld, Feature itp.) w formie łatwiejszej procedury odgórnej. Kolejnym stylem dokumentacji będziemy omawiać ważne kwestie związane z identyfikacją klasy podczas okresu budowania relacji.

Milestones

W tej sekcji planujesz wstępny harmonogram realizacji wspomnianych celów projektu. Planowanie czasu wygląda tak:

  • 17 sierpnia – 13 września: integracja społeczności:

    1. Umawiaj się na spotkania, aby ustalić zakres projektu i planowanie samouczka, a także oczekiwania zarówno autora, jak i mentora.
    2. Poznaj ogólny zarys kodu źródłowego Ignition Physics.
  • 14 września–31 października: przygotowanie wersji roboczych wspomnianych samouczków z kolejkowymi ulepszeniami przez mentorów i pisarza podczas spotkań.

  • 1–30 listopada: opisanie dokumentacji API dotyczącej najważniejszych klas i skompilowanie jej za pomocą Doxygen.

  • 1–5 grudnia: napisz raport z projektu.

  • Po GSoD 2020: Chcę pozostać w kontakcie z Ignition Robotics, aby dalej ulepszać i utrzymywać swoje prace.

Uwagi końcowe

Należy zaktualizować plik README.md na stronie głównej Ignition Physics, ponieważ instalacja binarna za pomocą apt-get nie działa w Ubuntu 18.04. Sekcja instalacji źródła również wymaga poprawy ze względu na nieprawidłowe formatowanie.