본문 바로가기
로보틱스/ROS

ROS Classic 에서 ROS2 로 넘어가야 하는 이유 I

by makepluscode 2021. 9. 14.
반응형

ROS2 Migration

ROS2

ROS2 로 넘어가야 하는 이유 (첫번째)

ROS1

  • 2007년 5월 개발 시작 (STAIR, STanford AI Robot)
  • 2020년 5월 13번째 Noetic Ninjemys 마지막 배포판으로 릴리즈 중단

ROS2

  • 2014년 3월 부터 개발 시작되었고, 2015년 첫번째 알파 버전을 릴리즈
  • 2021년 Galatic Geochelone 까지 총, 7개의 공식 배포판

2007년 5월 스탠포드 대학교 연구실에서 시작된 ROS 는 로봇 소프트웨어의 플랫폼화, 기능구현에 큰 성과를 얻었다.  하지만, 고성능 워크스테이션에서 연구용으로 만들어진 프레임워크는 실제 산업 현장에 적용하는 과정에서 아래와 같은 문제점이 제기되었다.

  1. 성능의 문제 - 임베디드 시스템 포팅의 어려움, 
  2. 소프트웨어 이식, 확장의 문제
  3. 빌드 시스템, 도구의 개선필요
  4. 보안문제

성능의 문제, 임베디드 포팅이 가능한가?

초기의 ROS 환경은, 단일로봇, 워크스테이션급 리소스, 실시간 요구사항 없음, 우수한 네트워크 환경 가정으로 주로 학계에서 연구 응용프로그램을 개발 형태 였다. 그 이후에 다양한 로봇 소프트웨어로 전파되는 과정에서 제한적인 임베디드 환경에 포팅이 필요하게 되었다. 최근 자율주행과 같은 응용에서 실시간 성이 매우 중요한 문제로 제기되는 과정에서 ROS 는 성능 측점에서 한계를 보여왔다.

소프트웨어 이식과 확장의 문제

제한적인 개발 플랫폼과 언어의 지원과 다소 오래된 규격, 오픈소스 라이브러리의 사용으로 최신 소프트웨어의 이식과 확장에 제한적이다.

  • Linux, macOS 개발환경
  • XMLRPC, TCPROS 을 이용한 통신
  • C++03, python2.7

빌드 시스템, 도구의 개선필요

초기에는 rosbuild, catkin (CMake) 등 통합 빌드환경 제공의 의미가 컸습니다. CMake 기반의 catkin 은 python 패키지 관리가 불가능했고, 단일 워크스페이스에서만 사용가능했던 문제가 있다.

  • rosbuild, catkin (CMake-based, catkin_make, catkin_tools)
  • rosws, wstool, rosinstall

보안문제

하나의 master (roscore) 를 중심으로 만들어진 ROS1 에서는 master 의 ip, port 등이 노출되어 공격을 받으면 전체 시스템이 위험에 빠질 수 있다. 

반응형