1장 ROS 개론
Last updated
Last updated
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)로 해당 저작권자의 이름을 같이 배포하면, 수정/배포에 제약을 받지 않는다.
세계 각국의 ROS에 관한 관심도는 구글 분석 자료를 통해서 알아 볼 수 있는데, 우리나라는 미국, 중국, 일본 보다 뒤진 7위에 머무르고 있다. 하지만, 최근 들어서 각 대학에서도 ROS를 교육하는 등 관심이 지속적으로 증가하는 추세이다.
ROS package들의 레이아웃은 다음과 같이 구조화해 볼 수 있다.
ROS의 특징은 노드간의 데이터통신 인터페이스를 정의하여 지원하고, 로봇의 하드웨어를 표현할 수 있는 XML 기술 문서를 정의하고, 다양한 센서 라이브러리를 제공한다. 또한 슬램 및 네비게이션 라이브러리와 매니퓰레이션을 위한 GUI 툴을 제공하고 있으며, 로봇 개발시에 꼭 필요한 시각화 도구 및 그래픽 인터페이스와 3차원 시뮬레이터를 제공하고 있다. ROS 스터디를 위한 커뮤니티는 국내에 아직 많지 않지만, 대표적인 커퓨니티를 소개한다.
오로카 : 네이버 카페로 로봇공학과 관련된 다양한 공개강좌와 세미나, 지역별 모임 등이 활성화 되어 있다.
로봇공학을 위한 열린 모임 페이스북 : 일반인과 전문가가 로봇관련 정보를 교유하고 있다.
(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의 차이점
터틀봇은 터틀봇 버거, 터틀봇 와플, 터틀봇 와플파이로 나누어서 2017년도에 로보티즈를 통해서 개발이 되었다. 터틀봇을 ROS 교육을 위한 표준 교육플랫폼으로 성장하였다. 2010년에 Tully에 의해서 처음 터틀봇1이 탄생되었으며, 그후에 유진로보틱스에서 2012년도에 터틀봇2 모델을 출시한 바 있다.
기본 모델인 터틀봇3 버거 모델의 구조를 살펴보면 다음과 같다.
대용량 Li-Po 배터리
로보티즈의 다이나믹셀을 이용한 2개의 바퀴
OpenCR 제어 보드
라즈베리파이를 이용한 싱글보드컴퓨터
다양한 모양으로 변경이 가능한 프레임
360도 슬램과 네비게이션을 위한 LiDAR
아이터틀은 중고등학생들 및 ROS 초급자를 대상으로 저렴한 가격에 ROS의 구조를 이해하고, 이를 바탕으로 터틀봇의 소스를 이해하며, 로봇과 인공지능 스피커의 융합을 시도한 오로카 판교모임의 미니 프로젝트이다.
Beta Version
https://blog.lgcns.com/1093?category=515152
https://cafe.naver.com/openrt/12384
Alpha version
구분
터틀봇3 버거
아이터틀
배터리
Lithium polymer 11.1V 1800mAh / 19.98Wh 5C
BATTERY (18650) X 2 CR123A x 1
프레임
3D프린트 + Paper
SBC(소형PC)
Raspberry Pi 3 Model B and B+
Raspberry Pi 3 Model B or B+ Raspberry Pi Zero W
콘트롤보드
OpenCR 32-bit ARM Cortex®-M7 with FPU (216 MHz, 462 DMIPS)
자체 제작
서보모터
Dynamixel XL430-W250
X
DC엔코더모터
N20 All-metal Gear Motor x 2 Motor Reduction Ratio: 1:150
바퀴
34mm
Audio
Several programmable beep sequences
Spearker
초음파센서
HC-SR04
IMU
MPU9250
MPU9250
블루투스
라즈베리파이 내장
LiDAR
360 Laser Distance Sensor LDS-01
YDLidar
관절모터
SG90
Programmable LEDs
User LED x 4
User LED x 4, Full Color LED x 1
버튼
Push Button x 2, Reset Button x 1, Dip switch x 2
Push Button x 2, Reset Button x 1, Dip switch x 2
배터리체크
1개
카메라
X
파이캠 or Ps3 cam(640 x 480)
Power
Input : 100-240V, AC 50/60Hz, 1.5A @max Output : 12V DC, 5A
X
조도센서
X
O
IR 수신
X
O
IR 송신
X
O
GPS
X
X
디스플레이
X
OLED display 1.3인치
Distro
Release date
Poster
Tuturtle, turtle in tutorial
ROS Melodic Morenia(Recommended)
May 23rd, 2018
ROS Lunar Loggerhead
May 23rd, 2017
ROS Kinetic Kame
May 23rd, 2016
ROS Jade Turtle
May 23rd, 2015