ROS1 대 ROS2 비교: 주요 차이점 및 로봇 프로젝트에 적합한 선택 방법

ROS1과 ROS2 비교: 주요 차이점 및 로봇 프로젝트에 적합한 버전 선택 방법

Ubuntu 22.04 또는 2025년 6월부터는 공식 버전에서 더 이상 ROS 1에 대한 업그레이드 지원을 제공하지 않으므로, ROS 2 시스템 사용을 권장합니다. ROS 2는 아키텍처, 실시간 성능, 보안 및 생태계 확장성 측면에서 ROS 1보다 훨씬 우수합니다. 신규 프로젝트 개발의 경우 ROS 2를 직접 사용하는 것을 권장하지만, 기존 시스템을 마이그레이션해야 하는 경우에는 기존 리소스와 장기적인 이점 간의 균형을 고려해야 합니다. 자세한 우분투 버전 지원 관계는 링크를 참조하십시오. ROS와 우분투의 서로 다른 버전 간의 관계, 다음 두 프레임워크의 비교를 분석합니다:

 ROS 2 버전 Ubuntu 버전 LTS인지 아닌지 출시 시기
 재지 24.04 (노블) 예 (LTS) 2024
 킬트를 입은 24.04(노블) 아니요 2025-05

연혁 및 발전

  • ROS1: 스탠퍼드 대학교와 윌로우 가라지가 공동으로 개발했으며, 연구 및 시제품 개발에 중점을 두고 있습니다.
  • ROS2: 2014년에 시작된 이 프로젝트는 DDS 미들웨어를 활용해 산업용 로봇 분야의 실시간 처리 능력, 크로스 플랫폼 지원 및 보안을 향상시키는 것을 목표로 합니다.

결론: ROS1은 연구 및 프로토타이핑에 더 적합하며, ROS2는 산업 및 상업적 배포에 이상적입니다.

 

2. 시스템 아키텍처

 치수 ROS1 ROS2
 핵심 아키텍처 중앙 집중식 아키텍처를 채택하여, 마스터 노드(노드 관리자)를 통해 노드 등록 및 통신을 수행합니다. 분산 아키텍처, 노드 간 직접 통신, 마스터 불필요, 동적 탐색 메커니즘 지원.
 통신 모델 TCP/UDP 프로토콜 기반의 맞춤형 통신 시스템으로, 지연, 패킷 손실, 암호화 불가 등의 문제가 있습니다. DDS를 기반으로 한 표준화된 통신 프로토콜로, 실시간 처리, 암호화 및 크로스 플랫폼 상호작용을 지원합니다.
 신뢰성 피어 투 피어 통신에 TCP를 사용하므로 패킷 손실이 발생하기 쉽다 QoS 정책(예: Reliable)을 통해 안정적인 전송이 보장됩니다.
 컴파일 시스템 rosbuild(초기 버전) 및 catkin 컴파일 시스템을 사용합니다. 보다 유연한 종속성 관리와 다국어 빌드를 지원하기 위해 자동화된 컴파일 시스템을 도입했습니다.

3. 사용자 경험

 치수 ROS1 ROS2
 학습 곡선 풍부한 커뮤니티 리소스와 성숙한 문서로 시작하기에 적합합니다. 새로운 기능은 학습 비용을 증가시키지만(예: DDS 구성, 실시간 디버깅), 장기적으로는 유지보수가 더 용이합니다.
 이주 비용 ROS 1 프로젝트는 ROS 2로 마이그레이션하기 위해 통신 로직, 노드 관리 및 컴파일 시스템을 리팩토링해야 합니다. ROS 1과 ROS 2 노드 간의 상호 운용성을 위해 마이그레이션 도구(예: ros1_bridge)를 사용할 수 있습니다.
 디버깅 및 툴체인 roslaunch나 rviz와 같은 도구를 활용하면 디버깅 과정이 보다 전통적인 방식으로 진행됩니다. 새로운 런치 프레임워크(파이썬 구성 지원), 내장 로깅 시스템, 그리고 향상된 테스트 도구.
 커뮤니티 및 생태계 이 생태계는 규모가 크지만, 아키텍처상의 한계로 인해 일부 기능은 확장하기 어렵습니다. 새로운 기능을 통합하기가 더 쉬워졌으며(예: Gazebo 및 웹 기술과의 더욱 긴밀한 통합), 생태계는 계속해서 확장되고 있습니다.

 4. 핵심 기술 비교

 치수 ROS1 ROS2
 노드 통신 Master 등록을 통해 P2P 통신이 설정됩니다. 노드는 DDS를 통해 자동으로 발견되고 서로 직접 통신합니다.
 메시징 사용자 정의 메시지 유형(.msg)을 사용하며, roscpp/rospy 구현에 의존합니다. 호환성을 높이기 위해 IDL(인터페이스 정의 언어)을 기반으로 다국어 메시지를 생성합니다.
 내결함성 마스터 장애로 인해 전체 시스템이 중단될 수 있습니다. 분산 아키텍처로 단일 장애점을 방지하며, 노드는 동적으로 참여/이탈할 수 있습니다.

5. 구문 차이

 치수 ROS1 ROS2
 노드 생성 구문 ros::NodeHandle을 사용하여 노드를 관리하십시오. 이 기능은 roscore를 통해 중앙 관리자를 시작합니다. rscore를 사용하지 않고 직접 노드를 생성하려면 rclcpp::Node 또는 rclpy::Node를 사용하십시오. 이 방법은 분산 아키텍처를 지원합니다.
 통신 메커니즘 통신을 위해 맞춤형 TCP/UDP 프로토콜을 기반으로 하므로, 노드 등록 및 탐색을 수동으로 관리해야 합니다. DDS(데이터 배포 서비스) 표준을 기반으로, 노드들은 서로를 자동으로 탐지하고 통신합니다.
 메시지 정의 .msg 파일을 사용하여 메시지 유형을 정의하고, roscpp/rospy 구현을 활용합니다. 호환성을 높이기 위해 IDL(인터페이스 정의 언어)을 사용하여 다국어 메시지를 생성하십시오.
 실행 파일 XML을 사용하여 .launch 파일을 작성해야 하며, 기능이 단일하고 동적으로 구성하기 어렵습니다. Python을 사용하여 동적 로직(조건부 판단, 매개변수 전달 등)을 지원하기 위한 .launch.py 파일을 작성하십시오.

6. 실제 사용 차이

 치수 ROS1 ROS2
 다국어 지원 주로 C++과 Python을 지원하며, 다른 언어는 별도로 적용해야 합니다. 추가 언어(예: Rust, Java)에 대한 확장 지원 및 인터페이스 정의 언어(IDL)를 통한 언어 간 호환성.
 컴파일 시스템 catkin 컴파일 시스템에 의존하며, 이 시스템은 작업 공간 구조를 엄격하게 준수해야 합니다. 더 유연한 종속성 관리와 다국어 빌드를 위해 ament 빌드 시스템을 사용하세요.
 실시간 지원 실시간 성능이 낮아 산업용 실시간 제어 요구를 충족하기 어렵습니다. 실시간 시스템에 대한 지원을 개선합니다(예: ROS 2의 rclcpp는 실시간 스레드 스케줄링을 제공합니다).
 보안 기본적인 암호화 및 인증 메커니즘이 부족함. 인증, 데이터 암호화 및 접근 제어를 제공하기 위해 DDS 보안 확장 기능(DDS-Security)을 지원합니다.
 크로스 플랫폼 지원 주로 리눅스 시스템에서 실행되며, 윈도우 및 macOS에 대한 지원은 제한적입니다. Linux, Windows, macOS, RTOS 등 다양한 플랫폼을 지원하며, 플랫폼들을 ‘Tier 1’(정부 차원에서 적극적으로 지원)과 ‘Tier 2’(커뮤니티에서 지원)로 명확히 구분하여 시스템 간 호환성을 강화합니다.
 디버깅 도구 roslaunch 및 rviz와 같은 전통적인 도구에 의존하며, 로깅 시스템은 상대적으로 기본적입니다. 내장 로깅 시스템(예: RCLCPP_INFO)을 제공하고, 파이썬 스크립트 지원을 추가하며, 더 나은 테스트 도구를 마련합니다.
 내결함성 로스코어 오류가 발생하면 시스템 전체가 다운될 수 있습니다. 분산 아키텍처로 단일 장애점을 방지하며, 노드는 동적으로 참여/이탈할 수 있습니다.

7. 대표적인 적용 시나리오

  • ROS 1: 교육, 연구 프로젝트(예: 모바일 로봇 내비게이션, SLAM), 높은 실시간 성능이나 보안이 필요하지 않은 시나리오. 프로젝트가 이미 안정화되어 있고, 실시간 처리, 보안 또는 크로스 플랫폼 기능이 필요하지 않으며, 다수의 ROS 1 생태계 자원을 활용하는 경우, 계속해서 ROS 1을 사용하십시오.
  • ROS 2: 산업 자동화, 자율 주행, 드론 등 높은 실시간 처리 능력, 보안, 크로스 플랫폼 지원이 필요한 분야는 물론, 대규모 프로젝트의 장기적인 유지보수(예:, 배송 로봇들, i산업용 로봇, 의료 로봇). 산업 등급 안정성, 실시간 제어, 보안 암호화 또는 크로스 플랫폼 배포가 필요한 프로젝트는 ROS 2를 선호합니다.

8. 하드웨어 및 플랫폼 호환성

  •  주로 리눅스(우분투)를 지원합니다.
  • RO Linux, Windows, macOS 및 임베디드 플랫폼을 기본적으로 지원합니다.

9. 생태계 및 지역사회 지원

  • ROS1:방대한 수의 패키지와 활발한 커뮤니티.
  • ROS2: 빠르게 성장하고 있는 생태계이지만, 패키지 수는 아직 그 속도를 따라잡지 못하고 있다.

결론: ROS1은 성숙한 생태계를 보유하고 있으며, ROS2는 빠르게 따라잡고 있습니다.

10. 마이그레이션 및 업그레이드 비용

  • API 간 호환성이 없어 코드를 다시 작성해야 합니다.
  • 운전자들에게는 적응 기간이 필요할 수 있으며, ros1_bridge를 활용하면 점진적인 전환을 원활하게 진행할 수 있습니다.

결론: 마이그레이션 비용은 높지만, 단계별 업그레이드를 통해 위험을 줄일 수 있습니다.

11. 보안 및 산업 표준

  • ROS1: 기본 제공되는 보안 메커니즘이 없습니다.
  • ROS2: DDS 보안 표준을 준수하며 OPC UA 및 TSN을 통합할 수 있습니다.

결론: ROS2는 보안이 중요한 분야 및 산업용 애플리케이션에 더 적합합니다.

향후 동향 및 로드맵

  • ROS1Noetic은 2025년까지 유지 관리될 최종 릴리스입니다.
  • ROS2 적극적인 기능 업데이트를 통해 장기 지원(LTS) 전략을 따르고 있습니다.

결론: 이러한 추세는 ROS2에 분명히 유리합니다.

결론 및 권장사항

~에 대하여 연구자 또는 초보자, ROS1은 여전히 성숙하고 안정적인 선택지이며; 산업 사용자 또는 상업 팀, ROS2의 분산 시스템, 실시간 성능 및 보안 측면의 장점은 장기적인 가치를 제공합니다.

실행 가능한 조언: 프로젝트 계획 초기에 ROS 버전을 평가하고 생태계 성숙도와 팀 역량을 기반으로 결정을 내리십시오.

나만의 맞춤형 모바일 로봇 솔루션은 바로 여기서 시작됩니다

중국에 기반을 둔 OEM/ODM 제조업체 — AMR, AGV, 창고 자동화. 설계 및 연구개발부터 전 세계 배송까지.

  • 10년 이상 AMR 및 AGV 제조 경험
  • 50개국 이상에 도입된 맞춤형 솔루션
  • 무료 프로젝트 평가 및 ROI 분석
  • 엔지니어가 24시간 이내에 답변해 드립니다.
문의 양식

FdataBot의 로봇 공학 전문가로, 모바일 로봇, AMR/AGV 시스템, 로봇 섀시 개발 및 OEM/ODM 맞춤형 제작 분야에서 8년 이상의 경력을 보유하고 있습니다. 그녀가 제공하는 가이드는 전 세계 구매자들이 공급업체를 평가하고, 기술적 옵션을 비교하며, 보다 신뢰할 수 있는 조달 결정을 내리는 데 도움을 줍니다.

지금 문의하기