지금 문의

ROS1과 ROS2 비교: 주요 차이점 및 로봇 프로젝트에 맞는 선택 방법

ROS1 vs ROS2 Comparison: Key Differences and How to Choose for Your Robot Project

우분투22.04 또는 2025년 6월부터 공식 기본은 더 이상 ROS1을 업그레이드 지원하지 않으며, 새로운 프로젝트 개발이 ROS2를 직접 사용하는 것이 권장되지만 기존 자원과 장기적인 이익 간의 절충을 위해 마이그레이션해야 하는 경우 아키텍처, 실시간, 보안 및 에코 확장성에서 ROS1보다 훨씬 우수한 ROS2 시스템 사용을 권장합니다. 자세한 우분투 버전 지원 관계는 링크를 참조하세요. [ROS와 우분투의 다른 버전 관계] 를 통해 두 프레임워크를 비교하여 분석합니다:

 ROS 2 버전  우분투 버전  LTS 여부  출시 시간
 재즈  24.04 (노블)  예(LTS)  2024
 Kilted  24.04(고귀한)  아니요  2025-05

역사 및 개발

  • ROS1: 스탠포드 대학교와 윌로우 개러지가 연구 및 프로토타입 제작에 중점을 두고 개발했습니다.
  • ROS2: 2014년에 시작되어 실시간 기능, 크로스 플랫폼 지원 및 보안을 개선하기 위해 DDS 미들웨어를 사용하는 산업용 로봇을 대상으로 합니다.

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

 

2. 시스템 아키텍처

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

3. 사용자 경험

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

 4. 주요 기술 비교

 차원  ROS1  ROS2
 노드 통신  피어 투 피어 통신은 마스터 등록을 통해 설정됩니다.  노드는 DDS를 통해 자동으로 서로를 발견하고 직접 통신합니다.
 메시징  사용자 지정 메시지 유형(.msg)을 사용하며, 로스켑/로스파이 구현에 의존합니다.  호환성 향상을 위해 IDL(인터페이스 정의 언어)을 기반으로 다국어 메시지를 생성하세요.
 내결함성  마스터 장애로 인해 전체 시스템이 다운될 수 있습니다.  단일 장애 지점을 피하기 위한 분산 아키텍처로 노드가 동적으로 가입/탈퇴할 수 있습니다.

5. 구문 차이점

 차원  ROS1  ROS2
 노드 생성 구문  노드를 관리하려면 ros::NodeHandle을 사용하고, 중앙 집중식 관리자를 시작하려면 roscore에 의존합니다.  rclcpp::Node 또는 rclpy::Node를 사용하면 로스코어 없이 직접 노드를 생성할 수 있으며 분산 아키텍처를 지원합니다.
 커뮤니케이션 메커니즘  통신을 위해 사용자 지정 TCP/UDP 프로토콜을 기반으로 하며, 노드 등록 및 검색을 수동으로 관리해야 합니다.  DDS(데이터 배포 서비스) 표준을 기반으로 노드가 자동으로 서로를 발견하고 통신합니다.
 메시지 정의  .msg 파일을 사용하여 메시지 유형을 정의하고, 로스켑/로스피 구현에 의존합니다.  IDL(인터페이스 정의 언어)을 사용하여 다국어 메시지를 생성하면 호환성을 높일 수 있습니다.
 파일 실행  XML을 사용하여 동적으로 구성하기 어려운 단일 함수인 .launch 파일을 작성합니다.  Python을 사용하여 .launch.py 파일을 작성하고 동적 로직(조건부 판단, 매개변수 전달 등)을 지원합니다.

6. 실제 사용의 차이점

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

7. 일반적인 애플리케이션 시나리오

  • ROS 1: 교육, 연구 프로젝트(예: 모바일 로봇 내비게이션, SLAM), 높은 수준의 실시간 및 보안이 필요하지 않은 시나리오. 프로젝트가 성숙하고 실시간, 보안 또는 크로스 플랫폼 기능이 필요하지 않으며 많은 수의 ROS 1 생태 리소스에 의존하는 경우 ROS 1을 계속 사용하세요.
  • ROS 2: 산업 자동화, 자율 주행, 드론 및 높은 수준의 실시간, 보안 및 크로스 플랫폼 지원이 필요한 기타 시나리오와 대규모 프로젝트의 장기 유지 관리(예:, 배달 로봇, 산업용 로봇의료 로봇). 산업 등급의 안정성, 실시간 제어, 보안 암호화 또는 크로스 플랫폼 배포가 필요한 프로젝트는 ROS 2를 선호합니다.

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

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

9. 에코시스템 및 커뮤니티 지원

  • ROS1: 많은 수의 패키지와 활발한 커뮤니티.
  • ROS2: 빠르게 성장하는 에코시스템이지만 패키지 수는 여전히 따라잡지 못하고 있습니다.

결론: ROS1은 성숙한 생태계를 가지고 있는 반면, ROS2는 빠르게 따라잡고 있습니다.

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

  • API가 호환되지 않아 코드를 다시 작성해야 합니다.
  • 드라이버는 적응이 필요할 수 있으며, ros1_bridge는 점진적인 마이그레이션에 도움을 줄 수 있습니다.

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

11. 보안 및 산업 표준

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

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

향후 트렌드 및 로드맵

  • ROS1노에틱은 2025년까지 유지되는 최종 릴리스입니다.
  • ROS2는 활발한 기능 업데이트를 통해 장기 지원(LTS) 전략을 따릅니다.

결론: 추세는 분명히 ROS2를 선호합니다.

결론 및 권장 사항

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

실행 가능한 조언: 프로젝트 계획 초기에 ROS 버전을 평가하고 에코시스템 성숙도와 팀 역량에 따라 결정을 내리세요.

Your Custom Mobile Robot Solution Starts Here

China-based OEM/ODM manufacturer — AMR, AGV, warehouse automation. From design and R&D to global delivery.

  • 10+ years manufacturing AMRs & AGVs
  • Custom solutions deployed in 50+ countries
  • Free project evaluation & ROI analysis
  • Engineer reply within 24 hours
문의 양식

로봇 공학 전문가, 다양한 로봇, 작업을 더 효율적으로 만드는 로봇, 모바일 로봇, 잔디 깎는 로봇을 포함한 로봇을 탐구하는 데 열정적입니다.