ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • _ROS2_Robot Operating System2
    ROS/ROS2 2024. 5. 24. 17:10

    ROS1은 2020년 5월에 출시한 Neotic Ninjems를 마지막 version으로 출시하였으며 해당 version의 EOL(End of Life)은 2025년 5월이다. (EOL은 유지보수 기간이라 생각하면 된다.)

    ROS1(Melodic, Noetic) EOL

    필자는 ROS1 Melodic을 많이 사용했지만, 이미 EOL이 끝났다.

     

    사실 ROS2는 2014년 3월부터 개발이 시작되었으며, 2015년에 alpha version이 release 되었다.

    ROS2는 계속해서 개발이 되었으며, 현재 Ubuntu 24.04 (Noble Numbat) version이 나왔고 2024년 5월 23일에 ROS2 Jazzy Jalisco가 출시되었다.

    ROS2 EOL

    필자는 Ubuntu 22.04에 ROS2 Humble Hawksbill을 사용하고 있다.

     

    ROS2는 기존 ROS1이 가진 문제점을 개선하여 출시되었다.

     

    ROS1의 기존 문제점.

    • 단일 로봇 사용. (멀티 로봇 지원 X)
    • Linux 환경에서만 사용가능.
    • 실시간 제어 지원 X.
    • 안정된 네트워크 환경이 요구.
    • 워크스테이션급 컴퓨터 필요.
    • ...

     

    ROS2의 개선

    • Multi-Platform.
    • Cross-Platforms을 지원 (Linux, MacOS, Windows)
    • 실시간 제어 가능.
    • 불안정한 네트워크 환경에서도 동작 가능.
    • 임베디드에서도 작동 가능.
    • 최신 기술 지원 (Zeroconf, Protocol Buffers, ZeroMQ, WebSokets, DDS 등)
    • ...

    이외에도 많은 부분이 개선되었다.

    ROS1, ROS2 비교(ref: Robotis ROS2 seminar)

     

    이러한 장점들로 이미 많은 개발자들이 ROS1에서 ROS2로 넘어가고 있으며, 대부분의 기업들도 ROS2로 넘어가고 있다.

     

    Why ROS2?

    Why ROS2?

    그럼 조금 더 세세하게 짚어보자.

    위의 문서는 ROSCon 2014, 2015에서 발표된 ROS2에서 바뀐 부분을 정리한 문서이다.

     

    1. Shorten time to market.

     ROS2는 로봇 응용 프로그램을 개발히는데 필요한 도구, 라이브러리 및 기능을 제공하여 로봇 개발 작업에 더 많은 시간을 할애할 수 있다는 장점을 갖는다. ROS 커뮤니티에서 개발해오고 있는 오픈소스이기 때문에 ROS2를 사용할 부분과 사용 방법을 유연하게 결정하고 필요에 따라 자유롭게 수정할 수 있다.

     

    2. Designed for production.

     ROS2는 로보틱스 R&D의 사실 상의 글로벌 표준으로 ROS1의 10년 경험을 바탕으로 ROS2는 처음부터 산업용 수준으로 개발되고 높은 신뢰성과 안전을 중시하고 있다. ROS2의 설계, 개발 및 프로젝트 관리는 업계 이해관계자들로 부터 얻은 실질적인 요구 사항을 기반으로 한다.

     

    3. Multi-platform

     ROS2는 Linux, MacOS, Windows에서 지원하며 자율성, 백엔드 관리 및 사용자 인터페이스의 원활한 개발 및 배포가 가능하다.

     

    4. Multi-domain

     ROS1과 마찬가지로 ROS2는 실내, 실외 그리고 다양한 환경에서 다양한 로봇 응용 분야로 사용할 수 있다.

     

    5. No vendor lock-in

     ROS2는 로봇공학 라이브러리와 응용 프로그램을 통신 기능으로부터 분리하여 추상화 작업을 해두었다.

    추상화된 부분에서는 오픈소스 솔루션 방식, 독점 솔루션을 포함한 여러가지 방법론을 제공한다.

    그 이외의 핵심 라이브러리 및 사용자 애플리케이션은 사용자가 원하는 형태로 개발, 수정하여 추상화 위에 추가가 가능하다.

     

    6. Built on open standards

    ROS2의 기본 통신 방법은 IDL, DDS및 DDS-I RTPS와 같이 제도 산업에서 항공 산업까지 사용되는 산업 표준을 사용하고 있다.

     

    7. Permissive open source license

     ROS 2 코드는 Apache 2.0 라이센스를 기본 라이센스로 사용하여 지적 재산권에 영향을 주지 않으면서 자유 재량으로 넓은 범위로 사용 가능하다.

     

    8. Global community

     ROS 커뮤니티는 수십만 명의 개발자와 사용자로 구성된 글로벌 커뮤니티를 육성함으로써 로봇 공학을 위한 방대한 소프트웨어 에코 시스템을 만들어 왔다.

     

    9. Industry support

     ROS2 기술 운영위원회(ROS2 Technical Steering Committee)의 멤버쉽에서 알 수 있듯이 ROS2에 대한 업계 지원은 강력하다. 전 세계의 크고 작은 회사는 제품을 개발할 뿐만 아니라 ROS 2에 오픈소스 기여를 하기 위해 자원을 투입하고 있다.

     

    10. Interoperability with ROS1

     ROS2에는 두 시스템 간의 양방향 통신을 처리하는 ROS1에 대한 브리지가 포함되어 있다. 기존 ROS1 애플리케이션이 있는 경우 브리지를 통해 ROS2 테스트를 시작하고 요구 사항 및 사용 가능한 자원에 따라 점차적으로 애플리케이션을 포팅할 수 있다.


    ref: https://cafe.naver.com/openrt/23889

Designed by Tistory.