Chapter 22. ROS2 개발 환경(Ubuntu) 구축 및 버전(Humble, Jazzy) 특성 비교

Chapter 22. ROS2 개발 환경(Ubuntu) 구축 및 버전(Humble, Jazzy) 특성 비교

1. 개요

ROS2(Robot Operating System 2)는 로봇 응용 프로그램 개발을 위한 표준 프레임워크로 자리 잡았으며, 운영체제와의 상호 운용성이 시스템의 안정성 및 성능에 직접적인 영향을 미친다. 본 장에서는 Ubuntu 운영체제 기반의 ROS2 개발 환경 구축 절차를 학술적이고 기술적인 관점에서 분석한다. 특히, 현재 널리 사용되는 장기 지원(LTS, Long Term Support) 버전인 ROS2 Humble Hawksbill과 최신 릴리즈 버전인 ROS2 Jazzy Jalisco의 아키텍처 및 특성을 비교 분석하여, 연구 및 산업 목적에 적합한 버전을 선택하기 위한 기준을 제시한다.

2. ROS2와 Ubuntu 운영체제 간의 의존성 구조

ROS2 메타 운영체제는 Linux 기반의 시스템 자원(System Resources) 및 커널(Kernel) 모듈과 긴밀하게 연동된다. ROS2 프로세스는 기본적으로 DDS(Data Distribution Service) 미들웨어를 통해 노드 간 통신을 수행하며, 이러한 통신 레이어는 호스트 운영체제의 네트워크 스택 및 스레드 스케줄링 정책에 의존한다. 따라서, ROS2의 각 배포판(Distribution)은 특정한 Ubuntu LTS 버전과 강한 결합(Tight Coupling)을 가진다.

  1. ROS2 Humble Hawksbill: Ubuntu 22.04 LTS (Jammy Jellyfish) 환경을 공식 지원 플랫폼(Tier 1)으로 채택한다. Python 3.10 및 GCC 11 컴파일러 체인과 최적의 호환성을 유지한다.
  2. ROS2 Jazzy Jalisco: Ubuntu 24.04 LTS (Noble Numbat) 환경을 공식 지원 플랫폼으로 삼고 있다. Python 3.12, GCC 13 등 갱신된 시스템 라이브러리를 기반으로 최신 하드웨어 아키텍처에 대한 지원이 강화된다.

운영체제와 ROS2 간의 이러한 계층적 의존성으로 인해 개발 환경 구축 시 파운데이션 운영체제의 버전을 일치시키는 것이 필수적이다.

3. Ubuntu 기반 ROS2 환경 구축 절차의 기술적 분석

표준화된 ROS2 개발 환경을 구축하는 과정은 다음과 같은 시스템 레벨의 설정과 패키지 관리 기법을 수반한다.

3.1 시스템 레포지토리 및 GPG 키 설정

Ubuntu 패키지 매니저(APT)가 ROS2 바이너리 저장소를 신뢰할 수 있도록 GPG(GNU Privacy Guard) 키를 시스템 핵심 키 체인(Keyring)에 등록한다. 이는 의존성 패키지의 무결성(Integrity)을 암호학적으로 검증하는 프로세스의 최상위 단계이다. 이후 /etc/apt/sources.list.d/ 디렉토리에 ROS2 저장소 정보를 추가하여 APT 시스템이 빌드된 ROS2 메타 패키지 목록을 파싱(Parsing)할 수 있도록 설정한다.

3.2 메타 패키지 설치 및 의존성 해결

ROS2는 수백 개의 독립적인 라이브러리 및 데몬으로 구성되므로, ros-[version]-desktop과 같은 메타 패키지(Meta-package)를 사용하여 통합 설치를 수행한다. 이 과정에서 C++ 빌드 툴체인(CMake, GCC), Python 코어 라이브러리, Rviz2, 시뮬레이터와 같은 인터페이스 도구들이 일괄적으로 시스템에 배포된다.

3.3 RMW(ROS Middleware) 및 콜콘(Colcon) 빌드 시스템 구성

바이너리 설치 이후 공간적, 논리적으로 어플리케이션을 통합 관리하기 위해 콜콘(Colcon) 메타 빌드 시스템을 구조화한다. 추가적으로 시스템 요구사항에 따라 Fast DDS, Cyclone DDS 등 다양한 RMW(ROS Middleware) 구현체를 설치하고, RMW_IMPLEMENTATION 환경 변수 설정을 통하여 미들웨어를 교체할 수 있는 유연성을 확보해야 한다.

4. 버전 특성 비교: ROS2 Humble vs Jazzy

ROS2 Humble과 Jazzy는 모두 로보틱스 시스템을 위한 공식 배포판이나 지원 주기 및 내부 아키텍처 구성에서 명확한 차별성을 가진다.

4.1 수명 주기(Lifecycle) 및 지원 정책

  • ROS2 Humble: 2022년 5월에 릴리즈된 LTS 버전으로, 최대 5년간(2027년까지) 보안 업데이트 및 버그 수정이 지원된다. 안정성이 최우선으로 요구되는 산업용 솔루션과 메인 스트림 연구 분야에서 광범위하게 적용된다.
  • ROS2 Jazzy: 2024년 5월 릴리즈된 신규 LTS 버전으로, 2029년까지 장기 지원된다. 보안 및 동시성 처리에 관한 최신 아키텍처 패러다임이 도입되었으며, 신형 센서 및 액추에이터 환경에 최적화되었다.

4.2 코어 프레임워크 및 미들웨어

Jazzy 버전은 기반 언어의 컴파일러 표준(C++17 및 부분적 C++20 지원)을 확장하여 최신 언어 스펙이 제공하는 동시성 및 메모리 관리 기법의 적용이 용이하다. 아울러 SROS2(Secure ROS2) 기능이 고도화되어 엔드투엔드 암호화 및 권한 제어 아키텍처가 더욱 견고하다. 네트워크 레벨의 DDS 스케줄링 측면에서 Jazzy는 Humble 대비 제한된 네트워크 대역폭(Bandwidth) 내에서의 멀티캐스트(Multicast) 트래픽 처리 성능을 보다 개선한 프로파일을 내포하고 있다.

5. 결론

ROS2 기반의 자율 에이전트 개발 환경은 Ubuntu 파비리콘 리눅스 커널과 밀접한 동조(Coupling) 상태에서 동작한다. 개발자는 에이전트의 안정성과 시스템 요구 사양, 그리고 운용 기간(Lifecycle)을 기준으로 타겟 배포판을 선정해야 한다. 기 보유 중인 코드베이스 및 레거시 아키텍처와의 완벽한 융합이 필요한 경우 ROS2 Humble이 적합하며, 최신 하드웨어 엣지(Edge) 인프라 및 고도화된 동역학 시뮬레이터를 활용해야 하는 경우에는 ROS2 Jazzy가 구조적 우위를 제공한다.