00장-1 ROS1 VS ROS2

  • ROS(Robot Operating System)

  • Language : C++03, Python 2

  • Bulid system : rosbuild → catkin

  • Messages, Services : *.msg, *.srv

  • roslaunch : XML

  • multiple nodes : one node in a process

  • real-time : external frameworks like OROCOS

  • Graph API : remapping at startup time only

  • Embedded systems : rosserial (UART)

  • Node manager : ROS Master

  • Node communication : XMLRPC(XML-Remote Procedure Call: 마스터구)+ TCPROS

  • ROS 1 code under the 3-clause (or “new”) BSD License

  • ROS 2(Robot Operating System 2)

  • Language : C++14, Python 3 (3.5+)

  • Bulid system : ament, colcon

  • Messages, Services : new *.msg, *.srv, *.msg.idl, *.srv.idl

  • roslaunch : written in Python

  • multiple nodes : multiple nodes in a process

  • real-time : real-time nodes when using a proper RTOS with carefully written user code

  • Graph API : remapping at runtime

  • Embedded systems : FreeRTPS, microRTPS, microROS, ros2arduino

  • Node manager : No

  • Node communication : IDL, DDS, DDS-I RTPS

  • Multi-platform : Supported by Linux, Windows and MacOS

  • Real-time & Embedded OSs와 같은 새로운 플랫폼으로의 관심과 투자.

  • Interoperability with ROS 1 : ROS 2는 ROS1과의 양방향 통신을 처리하는 bridge를 포함. 기존 ROS 1 응용 프로그램을 사용할 경우, 요구 사항 및 사용 가능한 리소스에 따라 bridge를 통해 응용 프로그램을 점진적으로 porting하여 ROS 2에서 이용가능.

  • Permissive open source license : ROS 2 code is licensed under Apache 2.0 License(ROS1과 ROS2 lisence 모두, 사용자의 지적 재산에 영향을 미치지 않고 소프트웨어를 허용.)

Last updated