
안녕하세요!! Wego-Robotics의 양지혁 연구원입니다!
오늘은 로봇에서 빠질 수 없는 ROS(Robot Operating System)의 어린시절에 대해 이야기 해보도록 하겠습니다.
ROS는 현재 많은 공학자들과 연구자들, 또 취미로 로봇을 제작하는 사람들에게 정말 많은 관심과 지원을 받고, 또 많은 사용자들이 ROS를 사용하고 있습니다.
그러나 많은 플랫폼이나 시스템들과 마찬가지로 ROS 또한 주목 받지 못하던 어린 시절이 있었습니다.
그럼 ROS 시작은 무엇이었을까요?
ROS는 스탠포드대학 두 학생(Keenan Wyrobek, Eric Berger)의 프로젝트에서 시작되었습니다.
당시 로봇 공학에서 가장 흔한 문제는 복잡한 로봇 알고리즘을 구축하기 위해 필요한 소프트웨어 인프라를 다시 구현하는 데 들어가는 시간이 많이 소요된다는 것이었습니다.
이러한 문제로 로봇 프로그램을 실제로 구축하는 데 사용할 수 있는 시간이 너무 적어졌습니다.
여기서 소프트웨어 인프라란 간단하게 센서와 액추에이터, 그리고 로봇 내에서 서로 다른 프로그램간의 통신을 의미합니다. (현재 ROS에서 구현되어 있는 기능들이죠!)
이러한 문제점 때문에 같은 조직 내에서도 새로운 프로젝트마다 통신 시스템을 재구현하는 일이 발생했습니다.
두 학생은 이 상황을 투자자들에게 설명할 때 다음과 같이 한 문장으로 설명하였습니다.
"로봇 공학에서는 새로운 것을 연구하는 것보다 이미 존재하는 기술을 '다시' 구현하는 것에 많은 시간이 소요되었습니다."
결국 Eric과 Keenan은 이러한 문제를 해결하기 위해 2006년에 스탠포드 대학에서 Stanford Personal Robotics Program이라는 프로그램을 만들었습니다. 그 이후 2008년부터 Willow Garage에서 본격적인 ROS 개발을 시작하였습니다. ROS는 Willow Garage가 폐쇄될 때까지 약 6년동안 많은 발전이 이루어졌으며 ROS의 인기 또한 빠르게 올라갔습니다.
이러한 ROS의 발전의 중요한 사건은 2011년 Willow Garage 의 터틀봇 출시이기도 했습니다.
이 터틀봇은 우리가 아는 현재의 turtlebot2와 turtlebot3까지 이어지고있습니다!
물론 Willow Garage는 2013년에 회사를 해체할 것이라 공표하고 2014년에는 해체되었습니다...
다행히도 우리의 로스는 살아남아 오픈 소스 로보틱스 재단인 OSRF가 ROS의 후속적인 개발과 지원을 수행하였습니다.
그 이후 ROS1은 다음과 같은 많은 버전을 배포하였고
ROS Hydro Medusa, in 2013
ROS Indigo Igloo, in 2014
ROS Jade Turtle, in 2015
ROS Kinetic Kame, in 2016
ROS Lunar Loggerhead, in 2017
ROS Melodic Morenia, in 2018
이 중에는 현재 2023년에도 사용되는 Melodic 버전도 존재합니다.
더 나아가 2020년도에는 noetic 버전이 배포 되었고 현재는 ROS의 2번째 버전인 ROS2가 출시 되었습니다.
그렇다면 정말 ROS만이 기존 로봇 시스템 문제에 대한 해결책을 제시했을까요?
이러한 로봇 시스템에 대한 아이디어는 새로운 것이 아니었습니다.
로봇 공학 커뮤니티를 위해 이미 대표적인 오픈소스 Player/Stage와 프로프리어터리 시스템 회사의 URBI가 있었습니다. 또한 우리가 잘 아는 SONY (플레이스테이션 회사입니다!)도 Open-R을 개발하여 이런 문제를 방지하기 위해 만들어졌었습니다.
특히 URBI는 ROS와 견줄만큼 훌룡했습니다.그러나 ROS와의 경쟁에서 URBI는 커뮤니티 부재로 인해 실패했습니다. URBI는 유료로 제공되었기 때문에 커뮤니티를 구축하는 데 어려움이 있었고, 결국 ROS와 같이 무료로 제공되고 커뮤니티를 확장할 수 있는 전략을 가진 시스템에게 경쟁에서 밀렸습니다.
ROS와 URBI의 이야기를 보면 커뮤니티가 얼마나 중요한 지 알 수 있습니다. 노벨상을 수상받은 극작가 버나드 쇼는 이런 말을 했습니다.
“당신은 사과를 갖고 나도 사과를 갖고 서로 교환한다면, 당신과 나는 각자 사과 한 개씩 갖고 있을 것이다 그러나 당신은 한 아이디어를 나도 아이디어를 갖고 있어서 서로 교환한다면 , 우리 각자는 2가지 아이디어들을 갖고 있을 것이다” - Barnard Shaw
오늘은 현재 엄청나게 많은 패키지와 유저를 가지고 있는 ROS의 작고 어린 시절에 대해서 알아보았습니다. 역사는 무언가를 사용하는 데에는 큰 의미가 없을 수 있겠지만 그 무언가를 완벽히 이해하고, 설명하고 또 납득시키는 측면에서 역사는 정말 중요하다고 생각합니다. 다음 챕터에서는 ROS에 대한 더 다양한 정보로 찾아오겠습니다!
긴 글 읽어주셔서 감사합니다.
이상 양지혁 연구원이었습니다.
[참고 자료]
https://www.theconstructsim.com/history-ros/
https://wiki.ros.org/
https://en.wikipedia.org/wiki/Robot_Operating_System
https://spectrum.ieee.org/the-origin-story-of-ros-the-linux-of-robotics
https://www.theconstructsim.com/timeline-robot-operating-system-ros/
좋은글 잘 읽고갑니다