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
Was this helpful?