RoboComp 프로젝트

이 페이지에는 Google Season of Docs에서 수락된 기술 작문 프로젝트의 세부정보가 포함되어 있습니다.

프로젝트 요약

오픈소스 조직:
RoboComp
테크니컬 라이터:
르 타이 안
프로젝트 이름:
RoboComp의 기본 구성요소
프로젝트 기간:
표준 기간 (3개월)

Project description

동기

RoboComp는 연구 및 실제 응용 분야에서 잘 알려진 로봇 공학 프레임워크 중 하나입니다. robocomp 저장소에는 모터 제어, 현지화 및 매핑, 탐색, 인식과 같은 다양한 로봇 애플리케이션을 위한 다양한 구성요소 (robocomp-robolab이라는 더 작은 저장소에서 유지됨)가 포함됩니다. 그러나 구성요소의 저장소에는 각 구성요소의 컴파일이나 사용에 관한 세부 문서가 부족하여 신규 개발자의 사용성이 제한적입니다. 이 제안서는 RoboComp의 중요한 구성요소를 문서화하고 다양한 구성요소를 결합하여 특정 로봇공학 작업을 해결하는 사용 예시 문서를 컴파일하여 이 문제를 해결하는 것을 목표로 합니다. 문서 프로세스의 세부정보는 다음 섹션에서 논의한 다음 프로젝트 완료 기간을 계획하기 위한 마일스톤 섹션을 진행합니다. 마지막으로 문서화 프로세스에 관한 몇 가지 참고사항이 언급됩니다.

설명

앞서 언급했듯이 이 프로젝트의 주요 목표는 두 가지입니다.

  • RoboComp의 각 구성요소와 관련된 세부정보, 컴파일, 설치, 구성, 사용, 알려진 문제를 문서화합니다.
  • RoboComp 환경에서 다양한 구성요소를 활용하여 특정 로봇공학 작업, 즉 현지화를 해결하는 예시 가이드를 작성합니다.

현재 robocomp-robolab 저장소의 기본 구성요소 대부분은 컴파일 방법과 다양한 매개변수 구성에서 사용하는 방법에 대한 자세한 지침이 없습니다. 이는 프로젝트에 구성요소를 사용하거나 프레임워크에 기여하고자 하는 신규 개발자에게 큰 장애물이 됩니다. 많은 구성요소가 종속 항목이 많은 외부 드라이버 또는 라이브러리의 래퍼이고 이로 인해 컴파일 및 설치 작업이 어렵기 때문입니다. 또한 많은 구성 요소가 복잡한 기기 드라이버 (예: 일반 hokuyoComp)를 래핑하여 RoboComp에서 메시지 인터페이스를 제공하므로 매개변수를 조정하려면 기기별 지식이 필요합니다.

따라서 오픈소스 기여를 위해서는 기기 설명, 종속 항목 해결, 사용법을 아우르는 자세한 문서가 반드시 필요합니다. 내 직장 hokuyoComp 구성요소 문서의 예는 다음 링크에서 확인할 수 있습니다.

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

하향식 접근 방식을 사용하여 구체적이고 자세한 구성요소 문서를 작성하려면 최소한 해당 문서에 작성된 콘텐츠를 경험할 수 있어야 합니다. 문서의 최종 목적은 상속된 개발자에게 실무 지식을 전달하는 것이기 때문입니다. 각 구성요소 문서에 대해 제안된 구조는 다음과 같습니다.

  • 설명
  • 컴파일 및 설치
  • 구성 매개변수
  • 구성요소 시작 (사용량)
  • 알려진 문제

이 예에서는 먼저 Hokuyo 센서 사양에 대한 정보를 수집하고, 구성요소 코드를 읽고 구성요소 기능을 이해하여 구성요소 설명을 작성합니다. 다음으로 RoboComp 환경을 이해하고 기기별 매개변수 및 라이브러리 종속 항목에 대한 지식을 갖추면 구성요소의 컴파일, 설치, 구성 프로세스를 문서화하는 데 도움이 됩니다. 예를 들어 hokuyoComp를 컴파일하려면 Ubuntu 14.04의 이전 liburg0-dev deb 패키지가 필요하지만 이후 버전의 Ubuntu PPA에서는 deb 패키지가 삭제되므로 문서에 설명된 대로 컴파일 해결 방법을 실행해야 합니다. 이 과정에서 신규 개발자의 디버깅 속도를 높이기 위해 알려진 문제를 기록할 수도 있습니다. 마지막으로 다양한 사용 시나리오에 대한 구성요소 사용법을 문서화하여 다양한 로봇 작업을 위해 구성요소를 RoboComp 환경에 쉽게 통합할 수 있습니다.

목표

이 섹션에서는 언급된 프로젝트 목표를 완료하기 위한 초기 기간을 계획합니다. 작성할 구성요소 문서를 카테고리 (예: 카메라 구성요소, 레이저 구성요소)에 따라 선택합니다. 현재 구성요소 문서 작성에 걸리는 시간은 예시 hokuyoComp 문서를 완료하는 시간을 기준으로 합니다. 시간표는 다음과 같습니다.

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

    1. 프로젝트 범위를 설정하고 작가와 멘토의 기대치를 설정하기 위한 주간 회의를 마련합니다.
    2. RoboComp 프레임워크 자세히 이해하기
  • 9월 2일~11월 2일: 회의를 통해 멘토와 작성자가 반복적으로 다듬어 robocomp-robolab 저장소에 각 구성요소에 대한 문서 작성 (문서화되지 않은 문서의 대부분을 완료할 것으로 예상됨)

  • 11월 2일~11월 26일: 로봇 작업을 해결하기 위해 다양한 구성요소를 활용하는 일반적인 문서 작성

  • 11월 27일~11월 29일: 프로젝트 보고서 종료

  • 2019년 GSoD 이후: RoboComp와 계속 소통하며 업무를 더욱 개선하고 유지 관리하고 싶습니다.

맺음말

사용자가 RoboComp 기능의 큰 그림을 이해할 수 있도록 RoboComp 환경에서 다양한 구성요소를 통합하는 방법에 대한 일반적인 예를 작성해야 합니다. 현재 RoboComp의 구현에 따라 적합한 로봇 작업을 결정하기 위해 멘토와 이 예시 문서에 대해 자세히 논의합니다.