ROS 2 하드웨어 가속화 워킹 그룹
본 문서는 워킹 그룹(Working Group, WG)의 범위와 거버넌스를 정의합니다. 일부 결정에 대한 근거는 REP-2008: ROS 2 Hardware Acceleration Architecture and Conventions에서 더 자세히 설명됩니다.
ROS 2 하드웨어 가속화 스택
ROS 2 하드웨어 가속화 스택은 하드웨어 가속화를 활용하고 사용자 정의 컴퓨팅 아키텍처를 생성하여 <ins>더 빠른 ROS 2 실행과 타이밍 안전 이벤트 기반 프로그래밍 인터페이스</ins>를 제공하는 ROS 2의 일련의 확장 기능입니다. 이 스택은 4가지 핵심 요소로 구성되어 있으며, 하드웨어 및 공급업체에 구애받지 않도록(vendor-agnostic) 목표합니다.
| # | Standard/convention | Title | Rationale |
|---|
0 | REP 2014 | ROS 2 성능 벤치마킹 | ROS 2의 성능 벤치마킹 원칙 및 가이드라인을 설명합니다 |
| ... | | | |
The ROS 2 Hardware Acceleration Working Group은 위 스택의 다양한 컴포넌트에 대한 오픈 소스 구현에 기여하고 유지 관리합니다. 전문적인 지원, 문서, 예제 및 레퍼런스 디자인을 포함한 ROS 2 하드웨어 가속화 스택의 완전한 구현은 Acceleration Robotics의 ROBOTCORE™에서 이용 가능합니다. 스택의 일부를 구현하는 다른 솔루션으로는 AMD의 KRS (Kria Robotics Stack) 또는 NVIDIA의 NITROS (NVIDIA Isaac Transport for ROS)가 있습니다. | | | |
레퍼런스 하드웨어 플랫폼
공식
다음 보드는 개발에 권장되며 활발하게 사용됩니다:
보드 사진 설명 펌웨어
|------------| |-------------| |------------| |----------|
| Robotic Processing Unit 및 ROBOTCORE® | | ROS 2 연산에 특화된 로봇 전용 처리 장치입니다. 16개의 CPU, GPU, 그리고 FPGA를 특징으로 합니다. ROS 계산 그래프를 다양한 컴퓨팅 유닛에 효율적으로 매핑하여 높은 처리량, 낮은 지연 시간, 적은 전력 소비 및 추가적인 실시간 기능을 얻습니다. | early access 문의
| ... |
비공식
다음 목록에는 검증되었고 비공식 커뮤니티 지원을 받는 보드들이 포함되어 있습니다. 이러한 보드에서는 CI 작업이 실행되지 않으므로 어떠한 보장도 제공되지 않습니다.
<details><summary>커뮤니티 지원 보드</summary>
</details>
보드 추가하기
커뮤니티에 새로운 보드를 추가하는 방법은 다음과 같습니다 (도움이 필요하면 이메일 주소로 연락하세요):
- REP-2008 - ROS 2 하드웨어 가속 아키텍처 및 컨벤션 초안을 확인합니다.
- 해당 보드를 위한 자체 펌웨어 저장소(예:
acceleration_firmware_Ultra96V2)를 만듭니다 (예시는 acceleration_firmware_kv260을 참고하세요).
- 펌웨어 저장소가 최종 확정되면, REP-2008에 따라 하드웨어의 기능을 평가하고 README.md 파일에 이를 설명하는 표를 만듭니다 (예시는 여기를 참고하세요).
- REP-2008에 따른 해당 지원 수준과 함께, 커뮤니티에 보드를 추가하기 위해 ros-acceleration/community에 PR을 제출합니다.
서브 프로젝트(Subprojects)
이 워킹 그룹은 다음의 서브 프로젝트들을 소유하고 유지 관리합니다.
여기서 회의와 멤버십은 주로 프로젝트의 방향, 설계 및 작업에 중점을 둡니다.
서브 프로젝트 목록
다음 서브 프로젝트들은 이 워킹 그룹이 소유하고 있습니다:
핵심 아키텍처 (Core Architecture)
하드웨어 가속 예제 및 유틸리티 (Examples and utilities for hardware acceleration)
로보틱 프로세싱 유닛 (Robotic Processing Unit, RPU)
RobotPerf 벤치마크
RobotPerf: ROS 2를 공통 기준선(common baseline)으로 사용하여 로봇공학 컴퓨팅 성능을 공정하게 평가하는 데 사용되는 개방형 참조 벤치마킹 스위트입니다. 이를 통해 로봇 아키텍트는 자신들의 로봇 시스템의 하드웨어 및 소프트웨어 구성 요소에 대해 정보에 입각한 결정을 내릴 수 있습니다.
- 회의록:
- RobotPerf#1 회의 (녹화본)
- RobotPerf#2 회의 (녹화본)
- RobotPerf#3 회의 (녹화본)
- RobotPerf#4 회의 (녹화본)
서브프로젝트 표준(Standards for subprojects)
서브프로젝트는 다음 기준을 충족해야 합니다 (WG는 채택 시 이를 유지하기로 동의합니다).
- ROS 2 Humble에 대한 빌드 통과
- 패키지가 ROS 빌드 팜의 나이틀리 빌드(nightly builds)의 일부인 경우, 보고된 경고나 테스트 실패가 없어야 함
- 이슈 및 풀 리퀘스트에 신속하게 응답해야 함
- 버그 수정이나 새로운 기능이 도입될 때 정기적으로 릴리스를 배포해야 함
- 백로그(backlog)를 유지하여 오래되고 방치된 이슈가 발생하지 않도록 해야 함
새 서브프로젝트 추가(Adding new subprojects)
새로운 서브프로젝트 도입을 요청하려면,
하위 프로젝트 폐지
프로젝트가 더 이상 유용하지 않거나, 워킹 그룹(WG)이 유지하는 것이 더 이상 이들의 관심사가 아니라고 결정할 경우 해당 프로젝트는 중단됩니다. 우리는 모든 하위 프로젝트를 영구적으로 유지할 것을 약속하지 않습니다.
하위 프로젝트의 제거를 제안하려면 'Subprojects' 섹션에서 관련 목록 항목을 삭제하고, Pull Request 템플릿의 지침에 따라 PR 본문을 채워 이 저장소에 Pull Request를 열어주십시오.
PR은 승인자(Approvers)들의 만장일치 승인을 받아 병합됩니다. 하위 프로젝트의 리포지토리가 WG의 GitHub 조직 소속이라면, 해당 시점에 조직 외부로 이전되거나 삭제될 것입니다.
거버넌스
회의
휴가 기간 및 기타 예외 사항을 제외하고, 정기 워킹 그룹(WG) 회의는 일반적으로 한 달에 한 번 또는 그 이상 자주 열릴 예정입니다. 회의는 ROS Discourse에서 공지되며 회의록을 보관합니다.