Ignition Robotics 프로젝트

이 페이지에는 Google Season of Docs에서 승인된 테크니컬 라이팅 프로젝트의 세부정보가 포함되어 있습니다.

프로젝트 요약

오픈소스 조직:
점화 로봇
테크니컬 라이터:
태국 레
프로젝트 이름:
점화 물리학 튜토리얼 및 API 문서
프로젝트 기간:
표준 기간 (3개월)

Project description

동기

Ignition Physics 라이브러리를 사용하면 Ignition Gazebo 시뮬레이션의 백엔드로 포팅하는 물리 엔진을 유연하게 사용할 수 있습니다. 많은 외부 물리 엔진은 정자 시뮬레이션을 지원하기 위해 기능과 애플리케이션 컨텍스트에 따라 다양한 기능 집합으로 구성된 플러그인으로 라이브러리에 맞게 조정할 수 있습니다. 그러나 라이브러리의 현재 단계에서는 다음 기능을 제공하지 않습니다.

  • 커스텀 물리 엔진을 사용하여 시뮬레이션을 구동하는 커스텀 물리 플러그인을 만드는 방법에 대한 포괄적인 튜토리얼
  • 일관된 API 문서

이 제안은 더 나은 프로젝트 유지 관리를 위해 이러한 문제를 해결하고 새로운 기여자와 사용자를 보다 원칙적으로 안내하는 것을 목표로 합니다. 문서 프로세스의 세부정보는 다음 섹션에서 논의되며, 프로젝트 완료 기간을 계획하기 위한 마일스톤 섹션에서 설명합니다. 마지막으로 현재 문서에 관한 참고사항이 몇 가지 언급됩니다.

설명

이 프로젝트의 주요 목표는 두 가지입니다.

  • 최신 라이브러리 API와 상호작용하는 커스텀 물리 플러그인을 만드는 방법에 관한 자세한 튜토리얼을 만듭니다.
  • 유지관리 및 공동작업 목적으로 현재 라이브러리 API 문서를 개선합니다.

현재 이 라이브러리의 물리 엔진은 DART만 지원됩니다. 따라서 이 튜토리얼은 DART를 중심으로 이루어집니다. 다음과 같은 초기 튜토리얼이 고려됩니다.

  1. 소개: 점화 물리학 라이브러리의 대략적인 아키텍처, 지원되는 물리 엔진, 목표를 설명합니다.
  2. 설치: 사용자에게 애플리케이션 컨텍스트에 따라 필요한 물리 엔진을 선택적으로 설치하도록 안내합니다. 또한 이 튜토리얼에서는 특정 시뮬레이션을 조정하기 위한 각 물리 엔진 플러그인의 구성 예를 보여줍니다.
  3. DFA 플러그인 사용: Gazebo 시뮬레이션에서 DART 물리 엔진을 사용하는 예를 설명합니다. 이 튜토리얼은 특정 예시 환경에서 이 라이브러리를 Gazebo 시뮬레이션의 백엔드로 시작하기 위한 일련의 실행 및 구성으로 구성됩니다.
  4. 맞춤 플러그인 만들기: 신규 사용자 또는 개발자가 일부 형식의 구성 파일 (클래스 템플릿 등)을 통해 맞춤 물리 엔진을 기반으로 맞춤 플러그인을 만들고 물리 엔진 API와 이 라이브러리 API 간의 인터페이스를 개발하도록 안내합니다. 일부 상태 확인은 튜토리얼의 끝부분에 기술할 수 있습니다.
  5. 시뮬레이션에서 여러 플러그인 사용 (토론 필요): 시뮬레이션 예시를 위해 런타임에 여러 플러그인을 동시에 사용하는 방법을 설명합니다.

튜토리얼 구조, 설명, 콘텐츠에 대한 추가 계획은 커뮤니티 간의 교류 기간에 논의됩니다. 실제로 이 튜토리얼의 작성자는 저장소에 병합하기 전에 튜토리얼 단계의 유효성을 확인해야 합니다.

API 문서의 경우 이 라이브러리의 Google C++ 문서 스타일에 맞게 조정할 수 있습니다. 예를 들어 모든 클래스에는 클래스 수준 설명이 있어야 합니다. 또한 모든 공개 함수는 설명과 함께 모든 인수, 가능한 반환 값 및 예외와 함께 문서화되어야 합니다. 가장 중요한 클래스 (예: dartsim::RetrieveWorld, Feature 등)를 더 쉬운 하향식 접근 방식으로 먼저 문서화하는 것이 좋습니다. 커뮤니티 유대감 형성 기간에 추가적인 문서 스타일과 중요한 클래스 식별에 대해 논의할 예정입니다.

주요 일정

이 섹션에서는 언급된 프로젝트 목표를 완수하기 위한 초기 기간을 계획합니다. 시간 계획은 다음과 같습니다.

  • 8월 17일~9월 13일: 커뮤니티 유대감 형성:

    1. 작성자와 멘토 모두의 기대치뿐 아니라 프로젝트 범위와 튜토리얼 계획을 수립하기 위한 회의를 준비합니다.
    2. 점화 물리학 소스 코드의 큰 그림을 이해합니다.
  • 9월 14일~10월 31일: 회의를 통해 멘토와 작성자가 반복하면서 언급된 튜토리얼 초안을 작성합니다.

  • 11월 1일~11월 30일: 가장 중요한 클래스에 관한 API 문서를 작성하고 Doxygen을 사용해 문서를 컴파일합니다.

  • 12월 1일~12월 5일: 프로젝트 보고서를 작성합니다.

  • GSoD 2020 이후: 작업 내용을 더욱 개선하고 유지 관리할 수 있도록 Ignition Robotics와 계속 소통하고 싶습니다.

최종 참고사항

apt-get을 사용한 바이너리 설치가 Ubuntu 18.04에서 작동하지 않으므로 Ignition Physics의 첫 페이지에 있는 최신 README.md를 수정해야 합니다. 형식이 잘못되어 소스 설치 섹션도 수정해야 합니다.