1장 ROS 개론

1장 ROS 개론

1. ROS 로봇 운영체제

ROS(Robot Operating System)는 2007년 5월 모건 퀴글리(Morgan Quigley)에 의해 미국 스탠퍼드 대학 인공지능 연구소가 진행하던 STAIR(Stanford AI Robot) 프로젝트인 스위치야드(Switchyard)라는 시스템에서 시작되었다. 2007년 11월에 윌로우 개러지(Willow Garage)가 이어 받아 "ROS"라는 이름으로 개발을 시작하였으며, 2010년 1월 ROS 1.0을 출시 하였다. 이후 2013년부터 Open Source Robotics Foundation이 개발 관리해왔으며, 2017년 5월부터 "Open Robotics"라고 이름을 변경하였다. 2017년 12월에는 ROS 2.0을 릴리즈 하였다.

The STAIR 1 robot built by Andrew Ng’s group at Stanford as part of the Stanford Artificial Intelligence Robot (STAIR) project. The goal was producing a viable home and office assistant robot. ROS는 매년 5월 23일을 "월드터틀데이"로 정하고, 2015년부터 매년 새로운 버전을 알파벳 순서의 코드네임과 터틀 아이콘과 함께 출시하고 있다. 또한 매년 ROSCon이라는 개발자와 사용자를 대상으로 하는 컨퍼런스를 열고 있으며, 세계 각국에서는 다양한 ROS Meetup이 활발하게 활동하고 있다.

ROS는 로봇 응용프로그램을 개발할 때 필요한 하드웨어 추상화, 하위 디바이스 제어, 센싱, 인식, 슬램, 네비게이션 등의 기능 구현 및 메시지 전달, 패키지 관리, 개발 환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구를 제공하는 오픈 소스 기반의 로봇 메타 OS이다. 특히 메타 OS라고 하는 것은 일반적인 OS인 윈도우, 리눅스, 맥 OS위에서 동작하는 프레임워크이기 때문이다. 모든 소스는 BSD 라이센스(Berkeley Software Distribution License)로 해당 저작권자의 이름을 같이 배포하면, 수정/배포에 제약을 받지 않는다.

https://vimeo.com/245826128

세계 각국의 ROS에 관한 관심도는 구글 분석 자료를 통해서 알아 볼 수 있는데, 우리나라는 미국, 중국, 일본 보다 뒤진 7위에 머무르고 있다. 하지만, 최근 들어서 각 대학에서도 ROS를 교육하는 등 관심이 지속적으로 증가하는 추세이다.

ROS package들의 레이아웃은 다음과 같이 구조화해 볼 수 있다.

ROS의 특징은 노드간의 데이터통신 인터페이스를 정의하여 지원하고, 로봇의 하드웨어를 표현할 수 있는 XML 기술 문서를 정의하고, 다양한 센서 라이브러리를 제공한다. 또한 슬램 및 네비게이션 라이브러리와 매니퓰레이션을 위한 GUI 툴을 제공하고 있으며, 로봇 개발시에 꼭 필요한 시각화 도구 및 그래픽 인터페이스와 3차원 시뮬레이터를 제공하고 있다. ROS 스터디를 위한 커뮤니티는 국내에 아직 많지 않지만, 대표적인 커퓨니티를 소개한다.

  • 오로카 : 네이버 카페로 로봇공학과 관련된 다양한 공개강좌와 세미나, 지역별 모임 등이 활성화 되어 있다.

(http://www.oroca.org/)

  • 로봇공학을 위한 열린 모임 페이스북 : 일반인과 전문가가 로봇관련 정보를 교유하고 있다.

(https://www.facebook.com/groups/KoreanRobotics)

  • 로봇소스 : 글로벌 커뮤니티 지향으로 각종 DIY 로봇 관련 자료가 공유되어 있다.

(https://community.robotsource.org/) ROS는 다양한 플랫폼에서 다양한 버전이 공유되어 배포되고 있다. 하지만, 특별히 수익을 목적으로 하지 않는 이상 개발자 리소스의 부족은 사용자의 노력이 많이 필요하다. 하지만, ROS 개발자들이 주로 사용하고 있는 환경을 같이 사용한다면, 많은 시간을 절약할 수 있다.

  • 리눅스 OS : Ubuntu 16.04.x Xenial Xerus LTS

  • ROS : ROS Kinetic Kame

  • 가제보 : Gazebo 7.x

ROS1과 ROS2의 차이점

2. 터틀봇의 구조

터틀봇은 터틀봇 버거, 터틀봇 와플, 터틀봇 와플파이로 나누어서 2017년도에 로보티즈를 통해서 개발이 되었다. 터틀봇을 ROS 교육을 위한 표준 교육플랫폼으로 성장하였다. 2010년에 Tully에 의해서 처음 터틀봇1이 탄생되었으며, 그후에 유진로보틱스에서 2012년도에 터틀봇2 모델을 출시한 바 있다.

기본 모델인 터틀봇3 버거 모델의 구조를 살펴보면 다음과 같다.

  • 대용량 Li-Po 배터리

  • 로보티즈의 다이나믹셀을 이용한 2개의 바퀴

  • OpenCR 제어 보드

  • 라즈베리파이를 이용한 싱글보드컴퓨터

  • 다양한 모양으로 변경이 가능한 프레임

  • 360도 슬램과 네비게이션을 위한 LiDAR

3. 아이터틀의 구조

아이터틀은 중고등학생들 및 ROS 초급자를 대상으로 저렴한 가격에 ROS의 구조를 이해하고, 이를 바탕으로 터틀봇의 소스를 이해하며, 로봇과 인공지능 스피커의 융합을 시도한 오로카 판교모임의 미니 프로젝트이다.

  • Beta Version

참고자료

https://blog.lgcns.com/1093?category=515152

https://cafe.naver.com/openrt/12384

Last updated