이 페이지에는 Google Season of Docs에 선정된 기술 문서 프로젝트의 세부정보가 포함되어 있습니다.
프로젝트 요약
- 오픈소스 조직:
- Ignition Robotics
- 기술 문서 작성자:
- An Thai Le
- 프로젝트 이름:
- Ignition Physics 튜토리얼 및 API 문서
- 프로젝트 길이:
- 표준 기간 (3개월)
Project description
동기
Ignition Physics 라이브러리를 사용하면 Ignition Gazebo 시뮬레이션의 백엔드로 포팅된 물리 엔진을 유연하게 사용할 수 있습니다. 많은 외부 물리학 엔진이 기능과 애플리케이션 컨텍스트에 따라 다양한 기능 세트로 구성된 플러그인으로 라이브러리에 적응하여 가제보 시뮬레이션을 실행할 수 있습니다. 하지만 현재 라이브러리 단계에서는 다음을 제공하지 않습니다.
- 커스텀 물리 엔진을 사용하여 시뮬레이션을 실행하는 맞춤 물리 플러그인을 만드는 방법에 관한 포괄적인 튜토리얼
- 일관된 API 문서
이 제안은 이러한 문제를 해결하여 더 나은 프로젝트 유지관리를 제공하고 새로운 참여자와 사용자를 보다 원칙적인 방식으로 안내하는 것을 목표로 합니다. 문서화 프로세스에 대한 세부정보는 다음 섹션에서 설명하고 프로젝트 완료 기간을 계획하는 마일스톤 섹션이 이어집니다. 마지막으로 현재 문서에 관한 몇 가지 참고사항이 언급됩니다.
설명
이 프로젝트의 두 가지 주요 목표는 다음과 같습니다.
- 현재 라이브러리 API와 상호작용하는 맞춤 물리 플러그인을 만드는 방법에 관한 자세한 튜토리얼을 만듭니다.
- 유지보수 및 공동작업을 위해 현재 라이브러리 API 문서를 개선합니다.
현재 이 라이브러리의 유일한 지원 물리 엔진은 DART입니다. 따라서 튜토리얼에서는 DART를 중심으로 다룹니다. 다음과 같은 초기 튜토리얼이 고려됩니다.
- 소개: 점화 물리학 라이브러리의 상위 수준 아키텍처, 지원되는 물리 엔진, 목표를 설명합니다.
- 설치: 애플리케이션 컨텍스트에 따라 필요한 물리 엔진을 선택적으로 설치하도록 사용자를 안내합니다. 이 튜토리얼에서는 특정 시뮬레이션을 조정하기 위한 각 물리 엔진 플러그인의 구성 예시도 보여줍니다.
- DFA 플러그인 사용: Gazebo 시뮬레이션에서 Dart 물리 엔진을 사용하는 예를 설명합니다. 이 튜토리얼은 특정 예시 환경에서 Gazebo 시뮬레이션을 위한 백엔드로 이 라이브러리를 시작하기 위한 일련의 실행 및 구성으로 구성됩니다.
- 맞춤 플러그인 만들기: 신규 사용자 또는 개발자가 일부 형식의 구성 파일 (클래스 템플릿일 수 있음)을 통해 맞춤 물리 엔진을 기반으로 맞춤 플러그인을 만들고 물리 엔진 API와 이 라이브러리 API 간의 인터페이스를 개발하도록 안내합니다. 일부 상태 검사는 가이드의 끝부분에서 확인할 수 있습니다.
- 시뮬레이션에서 여러 플러그인 사용 (논의 필요): 예시 시뮬레이션을 위해 런타임에 여러 플러그인을 동시에 사용하는 방법을 설명합니다.
튜토리얼 구조, 설명, 콘텐츠에 대한 추가 계획은 커뮤니티 연결 기간에 논의될 예정입니다. 실제로 이러한 튜토리얼의 작성자는 저장소에 병합하기 전에 튜토리얼 단계의 유효성을 확인해야 합니다.
API 문서의 경우 이 라이브러리의 Google C++ 문서 스타일에 맞게 조정할 수 있습니다. 예를 들어 모든 클래스에는 클래스 수준 설명이 있어야 합니다. 또한 모든 공개 함수는 설명, 모든 인수, 가능한 반환 값 및 예외로 문서화되어야 합니다. 가장 중요한 클래스 (예: dartsim::RetrieveWorld, Feature 등)를 더 쉬운 하향식 접근 방식으로 먼저 문서화하는 것이 좋습니다. 추가 문서 스타일, 중요한 클래스 식별은 커뮤니티 결속 기간에 논의됩니다.
주요 일정
이 섹션에서는 언급된 프로젝트 목표를 완료하기 위한 초기 기간을 계획합니다. 시간 계획은 다음과 같습니다.
8월 17일~9월 13일: 커뮤니티 결속:
- 프로젝트 범위 및 튜토리얼 계획을 수립하고 작성자와 멘토의 기대치를 확인하기 위한 회의를 예약합니다.
- Ignition Physics 소스 코드의 전체적인 개요를 파악합니다.
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를 수정해야 합니다. 소스 설치 섹션도 형식이 잘못되어 수정해야 합니다.