[AUTOWARE] Autoware Basic part.1

SpringCloud
SpringCloud.Official
5 min readMar 21, 2023

Autoware.core/Universe와 Autoware.AI & Autoware.auto와의 차이점

Autoware는 세계 최초의 자율주행 차량용 “all-in-one” 오픈소스 소프트웨어입니다. 2015년 처음 출시된 이래로, 서로 다른 기본 개념을 가진 여러 버전이 출시되었으며, 각 버전은 소프트웨어를 개선하는 것을 목표로 합니다.

(그림) CORE UNIVERSE

1. Autoware.AI

Autoware.AI는 ROS1 기반으로 출시된 Autoware의 첫 번째 배포판입니다. 저장소에는 자율주행 기술의 다양한 측면을 다루는 다양한 패키지가 포함되어 있습니다. 예를 들어, Sensing, actuation, Localization, Mapping, Perception, Planning등이 있습니다.

많은 개발자와 기여를 얻었지만 Autoware.AI의 성능을 향상시키기 어려운 여러 가지 이유가 있었습니다

● 구체적인 아키텍처 설계가 부족하여 모듈 간의 긴밀한 결합과 모듈 책임이 불분명한 기술 부채가 축적되었습니다.

● 패키지마다 코딩 표준이 달랐고, 테스트 커버리지가 매우 낮았습니다.

● Autoware를 사용한 자율주행 차량이 작동할 수 있는 조건이나 지원되는 사용 사례나 상황(예: 정지된 차량을 추월하는 기능)에 대한 명확한 정의가 없었습니다.

Autoware.AI 개발에서 얻은 교훈을 바탕으로, Autoware.Auto는 ROS2 버전의 Autoware를 개발하기 위해 다른 개발 과정을 적용했습니다.

2. Autoware.Auto

Autoware.Auto는 ROS2 기반으로 출시된 Autoware의 두 번째 배포판입니다. ROS2로의 전환의 일환으로, Autoware.AI를 ROS1에서 ROS2로 단순히 포팅하는 것을 피하기로 결정했습니다. 대신, 타겟 사용 사례와 ODD를 정의하고(예: 자율 발렛 주차[AVP], 화물 배송 등), 적절한 아키텍처를 설계하고, 설계 문서를 작성하고 테스트 코드를 작성하는 등 제대로된 엔지니어링 개발 프로세스를 따르면서 코드베이스를 처음부터 다시 작성했습니다.

Autoware.Auto 개발은 초기에는 잘 진행된 것처럼 보였지만, AVP(자동발렛파킹)와 화물 배송 ODD 프로젝트를 완료한 후 다음과 같은 문제가 발생하기 시작했습니다.

● 새 엔지니어에게 진입 장벽이 너무 높았습니다.

● Autoware.Auto에 새로운 기능을 병합하는데 많은 작업이 필요했으며, 따라서 연구자와 학생들이 개발에 기여하기 어려웠습니다.

● 결과적으로, 대부분의 Autoware.Auto 개발자들은 Autoware Foundation의 기업들로부터 나왔고, 따라서 연구 논문에서 최신 기능을 추가할 수 있는 사람들이 매우 적었습니다.

● 대규모 아키텍처 변경이 너무 어려웠습니다.

● 실험적인 아키텍처를 시도하려면, 주요 브랜치를 안정적으로 유지하면서 지속적인 통합 요구 사항을 충족시키는 모든 변경을 확인하는 데 많은 오버헤드가 발생했습니다.

3. Autoware Core/Universe

Autoware.Auto 개발의 문제점을 해결하기 위해, Autoware Foundation은 Autoware Core/Universe라는 새로운 아키텍처를 만들기로 결정했습니다.

Autoware Core는 Autoware.Auto의 원래 정책을 계승하여 안정적이고 철저하게 테스트된 코드베이스를 제공합니다. Autoware Core와 함께 새로운 개념인 Autoware Universe가 도입되었는데, 이는 다음과 같은 이점을 제공합니다

● 사용자는 새로운 localization 또는 인지 알고리즘과 같은 더 고급 기능을 사용하기 위해 Core 구성 요소를 Universe에 해당하는 것으로 쉽게 교체할 수 있습니다.

● Universe의 코드 품질 요구사항은 새 개발자, 학생 및 연구자들이 기여하기 쉽도록 완화되어 있지만, 여전히 Autoware.AI의 요구사항보다 엄격할 것입니다.

● Universe에 추가된 고급 기능 중 Autoware 커뮤니티에 유용한 것은 검토되어 주요 Autoware Core 코드베이스에 포함될 가능성이 있는지 고려됩니다.

이렇게 하면 안정적이고 안전한 자율주행 시스템이라는 주요 요구 사항을 충족시키면서 동시에 제 3자 기여자들이 만든 최신 기능에 대한 접근을 가능하게 할 수 있습니다.

Autoware Core/Universe의 구조에 대한 자세한 내용은 계속 스프링클라우드 기술 블로그에 계속 연재 될 예정입니다. 참조하시기 바랍니다.

결론적으로, Autoware.AI, Autoware.auto, 그리고 Autoware Core/Universe는 각각 다양한 아키텍처와 개발 과정을 가지고 있으며, 이를 통해 성능 개선과 새로운 기능의 통합을 목표로 하고 있습니다.

최신 버전인 Autoware Core/Universe는 이전 버전의 문제점을 해결하고, 개방적인 개발 환경을 제공함으로써 자율주행 기술 발전에 크게 기여하고 있습니다.

--

--