SlideShare une entreprise Scribd logo
1  sur  100
Télécharger pour lire hors ligne
로봇 운영체제 ROS 개론
2016. 04. 06
Yoonseok Pyo
Open Source Team
1
Index
I. 로봇 소프트웨어 플랫폼의 필요성
II. 로봇 운영체제 ROS 소개
III. 로봇 운영체제 ROS 개념
IV. 로봇 운영체제 ROS 특징과 활용
2
Index
I. 로봇 소프트웨어 플랫폼의 필요성
II. 로봇 운영체제 ROS 소개
III. 로봇 운영체제 ROS 개념
IV. 로봇 운영체제 ROS 특징과 활용
3
이 두 가지의 공통점은?
4http://www.rosewill.com/, http://www.samsung.com/global/business/mobile/product/smartphone
Personal Computer Smartphone
5
누구나
하나쯤은 보유하고 있는
대중화 제품
http://www.techpowerup.com/, http://global.samsungtomorrow.com/
Personal Computer Smartphone
다양한 하드웨어의 결합이 가능한 하드웨어 모듈
운영 체제 (Operating System) + 애플리케이션(App)
7
Personal Computer Smartphone
http://en.wikipedia.org/wiki/Linux, https://www.apple.com/, http://windows.microsoft.com/, The icons are trade mark of each company
iOS 8
9
10
로봇 개발
 로봇 개발자는 만능? 혼자 다~ 만들려고 해 ㅡㅡ;
 단독적인 하드웨어 구성
 만들고 자기만 쓰는 경우도 OTL...
 하드웨어 레벨에서 바로 서비스 애플리케이션을 구현
11Iron Man (2008 film) - Wikipedia
Are you actually a genius?
12
[1983년 최초 상용 핸드폰(?) 모토로라 DynaTAC 8000 와 개발자 Martin Cooper, 점점 발전하는 휴대전화]
http://blog.cartoys.com/date/2013/04/, https://line.do/the-evolution-of-cell-phones/r5q4ui/vertical
소프트웨어 플랫폼이 가져온 변화
13
소프트웨어 플랫폼이 가져온 변화
 하드웨어 인터페이스 통합
 하드웨어 추상화 ・ 규격화 ・ 모듈화
 가격 ↓, 성능 ↑, 가성비 발군
 하드웨어 ・ 운영체제 ・ 애플리케이션 분리
 사용자 수요에 맞는 서비스에 집중!
 구매와 피드백, 새로운 생태계의 선환 구조 형성
14
iOS 8
Photographed by Daniel Case, GNU Free Documentation License
Platform ?
플랫폼?
15
플랫폼?
• 플랫폼
• 하드웨어 플랫폼 및 소프트웨어 플랫폼을 통칭하는 용어.
(로봇 진영에서는 로봇 플랫폼이라 한다.)
• 하드웨어 플랫폼
• 하드웨어 아키텍처를 포함하며 정해진 목적에 맞도록 하드웨어를 구성한 것. 또한, 하드웨어
플랫폼은 상단의 응용 프로그램을 위하여 소프트웨어 플랫폼과 결합하기 위한 인터페이스를
갖추고 있다.
• 소프트웨어 플랫폼
• 하드웨어 플랫폼에서 정해진 목적의 응용 프로그램을 구동하기 위한 운영체제(OS), 소프트
웨어 프레임워크를 포함하는 것.
16Photographed by Daniel Case, GNU Free Documentation License
Platform ?
로봇 운영체제의 춘추전국시대!!!
17
주요 로봇 운영체제
18http:// ros.org kr.forwallpaper.com http://www.softbank.jp/en/corp/group/sbr/ http://www.opros.or.kr/ http://www.openrtm.org/ http://schools-wikipedia.org/
Galapagos
Closed source
Open source
주요 로봇 운영체제
19http:// ros.org kr.forwallpaper.com http://www.softbank.jp/en/corp/group/sbr/ http://www.opros.or.kr/ http://www.openrtm.org/ http://schools-wikipedia.org/
Galapagos
Closed source
Open source
20
21
http://www.greaterlasvegashomes.com/files/2014/09/soccer-stadium-.jpg
운동장 만들기 소모전은 이제 그만!
22
http://www.wallpaper505.com/the-best-world-football-players-2014-2015-best-desktop-wallpaper.html
운동장 만들기 소모전은 이제 그만! 멋진 선수를 꿈꾸자!
23
로봇 소프트웨어 플랫폼이 가져올 미래
 하드웨어 플랫폼과의 소프트웨어 플랫폼간의 인터페이스 확립
 모듈형 하드웨어 플랫폼 확산
 하드웨어에 대한 지식이 없어도 응용 프로그램 작성 가능 (있다면 더 좋고 )
 더 많은 소프트웨어 인력들이 로보틱스 분야로 진입, 로봇 제품에 참여 가능
 유저에게 제공할 서비스에 집중
 서비스 제공으로 유저계층 형성 및 피드백
 로봇 개발이 급속도로 발전 할 수 있는 계기
24
Index
I. 로봇 소프트웨어 플랫폼의 필요성
II. 로봇 운영체제 ROS 소개
III. 로봇 운영체제 ROS 개념
IV. 로봇 운영체제 ROS 특징과 활용
25
ROS is an open-source, meta-operating system for
your robot. It provides the services you would expect
from an operating system, including hardware abstr
action, low-level device control, implementation of c
ommonly-used functionality, message-passing betw
een processes, and package management. It also pr
ovides tools and libraries for obtaining, building, writ
ing, and running code across multiple computers.
http://www.ros.org/wiki/
http://www.ros.org/news/
ROS 란?
26
소프트웨어 프레임워크
 로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크
 개발 도구, 라이브러리, 드라이버, 다양한 로봇 소프트웨어 공개 패키지 제공
 하드웨어 플랫폼의 하드웨어 추상화
 이 기종 하드웨어에서 사용 가능한 메시지 기능
 로보틱스 생태계 생성!
27http://www.ros.org/about-ros/
ROS의 진정한 목적
28
로보틱스 소프트웨어 개발을 전세계 레벨에서
공동 작업 가능하도록 환경을 구축하는 것!
http://imgfave.com/
ROS는 새로운 운영 체제(OS)인가?
 범용 컴퓨터
• Windows(Windows XP, 7, 8 ...)
• Linux(Ubuntu, Redhat, Fedora, Mint, Gentoo ...)
• MAC(OS X ...) 등
 스마트폰
• Android, iOS, Windows Phone, Symbian, RiMO, Tizen등
 ROS = Robot Operating System
 ROS는 메타운영체제(Meta-Operating System)이다.
29
메타운영체제(Meta-Operating System)
• 메타운영체제(Meta-Operating System) 딱히 정확히 정의된 용어는 아니지만, 어플리케
이션과 분산 컴퓨팅 자원간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴링
및 로드, 감시, 에러 처리 등을 실행하는 시스템이라고 볼 수 있다.
• 즉, 윈도우, 리눅스, 안드로이드와 같은 전통적인 운영체제는 아니다. 오히려, ROS는 기
존의 전통적인 운영체제(리눅스, 윈도우즈, OS-X, 안드로이드)를 이용하고 있다.
• 기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸
(컴파일러, 스레드 모델 등)등을 사용하고 있다. 이에 추가적으로 다수의 이기종 하드웨
어간의 데이터 송수신, 스케쥴링, 에러 처리 등 로봇 응용 소프트웨어를 위한 필수 기능
들을 라이브러리 형태로 제공하고 있다. 또한, 이러한 기반 로봇 소프트웨어 프레임워
크를 기반으로 다양한 목적의 응용 프로그램을 개발, 관리, 제공하고 있으며 유저들이
개발한 패키지 또한 유통하는 생태계(ecosystem)를 갖추고 있다.
30
메타운영체제(Meta-Operating System)
• 메타운영체제(Meta-Operating System) 딱히 정확히 정의된 용어는 아니지만, 어플리
케이션과 분산 컴퓨팅 자원간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴
링 및 로드, 감시, 에러 처리 등을 실행하는 시스템이라고 볼 수 있다.
• 즉, 윈도우, 리눅스, 안드로이드와 같은 전통적인 운영체제는 아니다. 오히려, ROS는 기
존의 전통적인 운영체제(리눅스, 윈도우즈, OS-X, 안드로이드)를 이용하고 있다.
• 기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸
(컴파일러, 스레드 모델 등)등을 사용하고 있다. 이에 추가적으로 다수의 이기종 하드웨
어간의 데이터 송수신, 스케쥴링, 에러 처리 등 로봇 응용 소프트웨어를 위한 필수 기능
들을 라이브러리 형태로 제공하고 있다. 또한, 이러한 기반 로봇 소프트웨어 프레임워
크를 기반으로 다양한 목적의 응용 프로그램을 개발, 관리, 제공하고 있으며 유저들이
개발한 패키지 또한 유통하는 생태계(ecosystem)를 갖추고 있다.
31
메타운영체제(Meta-Operating System)
32
iOS
디바이스 드라이버, 라이브러리, 디버그 도구, 메시지 통신
구동 도구, 컴파일 도구, 인스톨러, 패키지 생성 및 릴리즈
메타 운영체제
이 기종간의 통신 지원
33
iOS
이 기종간의 통신 지원
34
iOS
ROS를 사용 가능한 운영체제
 기존 전통적인 운영체제
 ROS를 사용 가능한 운영체제(OS)로는 Ubuntu, OS X, Windows, Fedora,
Gentoo, OpenSUSE, Debian, Raspbian, Arch, QNX Realtime OS 등이 있으나
기능 제한사항이 있을 수 있다.
 스마트폰 운영체제인 Android, iOS 의 경우, 부분적 사용 가능
 OS를 탑재할 수 없는 마이크로 컨트롤러 유닛(MCU)의 경우, 시리얼 통신, 블
루투스, LAN 경유로 통신할 수 있는 라이브러리 제공
 기본적으로는 Ubuntu, OS X 에서 구동하는 것을 추천!
35
로봇계의 생태계(ecosystem)를 만들자!
생태계(ecosystem)
 스마트폰을 생산하는 하드웨어 회사와 애플리케이션 소프트웨어(앱, APP) 개발자, 이를 사용
하는 유저 를 연결해주는 선환 구조를 말한다.
1) 스마트폰 제조 회사들이 단말기 기기를 생산
2) 사용할 운영체제의 인터페이스에 맞춤
3) 각 OS 개발 회사들은 이를 라이브러리화시켜 제공
4) 스마트폰에 대한 하드웨어 지식이 없어도 손쉽게 개발작업이 가능
5) 유저가 사용하기 쉽도록 관리,&유통 그리고 피드백으로 선순환
 ROS는 로보틱스 생태계(ecosystem)를 준비 중이다!
36
ROS 생태계
37
로봇 분야도 마찬가지 흐름으로 가고 있다. 처음에는 여러 시도로 각
종 하드웨어 기술들이 넘쳐흘렀으나, 이를 통합해줄 OS가 전무했다.
이 상황에서 다양한 소프트웨어 플랫폼이 등장했고, 가장 주목 받은
ROS의 경우 이제 그 생태계의 틀을 갖추기 시작했다.
아직, 그 여파는 미미하지만 점점 늘고 있고 있는 유저들과 회사들 그
리고 급격히 늘고 있는 관련 툴 및 라이브러리를 볼 때 멀지 않아 생태
계가 완만히 돌아갈 것이라고 기대해본다.
그리고, 로봇회사 및 센서회사와 같은 로봇 관련 하드웨어 개발자 /
ROS 개발 운용 팀 / 응용 소프트웨어 개발자 / 유저 모두가 웃을 수 있
는 생태계가 되길 바란다.
컴퓨터 → 스마트폰 → 로봇
ROS 생태계
38
로봇 분야도 마찬가지 흐름으로 가고 있다. 처음에는 여러 시도로 각
종 하드웨어 기술들이 넘쳐흘렀으나, 이를 통합해줄 OS가 전무했다.
이 상황에서 다양한 소프트웨어 플랫폼이 등장했고, 가장 주목 받은
ROS의 경우 이제 그 생태계의 틀을 갖추기 시작했다.
아직, 그 여파는 미미하지만 점점 늘고 있고 있는 유저들과 회사들 그
리고 급격히 늘고 있는 관련 툴 및 라이브러리를 볼 때 멀지 않아 생태
계가 완만히 돌아갈 것이라고 기대해본다.
그리고, 로봇회사 및 센서회사와 같은 로봇 관련 하드웨어 개발자 /
ROS 개발 운용 팀 / 응용 소프트웨어 개발자 / 유저 모두가 웃을 수 있
는 생태계가 되길 바란다.
컴퓨터 → 스마트폰 → 로봇
ROS 생태계
39
로봇 분야도 마찬가지 흐름으로 가고 있다. 처음에는 여러 시도로 각
종 하드웨어 기술들이 넘쳐흘렀으나, 이를 통합해줄 OS가 전무했다.
이 상황에서 다양한 소프트웨어 플랫폼이 등장했고, 가장 주목 받은
ROS의 경우 이제 그 생태계의 틀을 갖추기 시작했다.
아직, 그 여파는 미미하지만 점점 늘고 있고 있는 유저들과 회사들 그
리고 급격히 늘고 있는 관련 툴 및 라이브러리를 볼 때 멀지 않아 생태
계가 완만히 돌아갈 것이라고 기대해본다.
그리고, 로봇회사 및 센서회사와 같은 로봇 관련 하드웨어 개발자 /
ROS 개발 운용 팀 / 응용 소프트웨어 개발자 / 유저 모두가 웃을 수 있
는 생태계가 되길 바란다.
컴퓨터 → 스마트폰 → 로봇
현재의 ROS 생태계
40
APP
ROS
ROBOT, SENSOR
개발자, 유저
로봇, 센서 회사
5,000이상의 패키지
2,188개의 공식 패키지 제공 (July 2015)
71,663 다운로드 (Unique IP, July 2015)
16,043 Wiki페이지 (July 2015)
애플리케이션 fetch beer, elevator …
시뮬레이터gazebo, player/stage, STDR Simulator …
지능모듈 navigation, action, grasping …
라이브러리tf, PCL, OpenCV, OpenRave …
디바이스드라이버 camera_drivers, urg_node …
디버그 툴 rviz, rqt_graph, rosbag, rostopic …
메시지통신rosmaster, rosmsg, rosservice …
실행 툴 rosrun, roslaunch …
컴파일 툴 catkin_make, rosbuild …
파일시스템roscd, rosls …
설치 툴 rosinstall …
프로그래밍언어 C++, Python, Lisp, Java, Ruby, MATLAB등
 90종류 이상의 로봇, 80종류 이상의 센서 지원
현재의 ROS 생태계
41
APP
ROS
ROBOT, SENSOR
개발자, 유저
로봇, 센서 회사
 5,000이상의 패키지
 2,188개의 공식 패키지 제공 (July 2015)
 71,663 다운로드 (Unique IP, July 2015)
 16,043 Wiki페이지 (July 2015)
 애플리케이션 fetch beer, elevator …
 시뮬레이터 gazebo, player/stage, STDR Simulator …
 지능모듈 navigation, action, grasping …
 라이브러리 tf, PCL, OpenCV, OpenRave …
 디바이스드라이버 camera_drivers, urg_node …
 디버그 툴 rviz, rqt_graph, rosbag, rostopic …
 메시지통신 rosmaster, rosmsg, rosservice …
 실행 툴 rosrun, roslaunch …
 컴파일 툴 catkin_make, rosbuild …
 파일시스템 roscd, rosls …
 설치 툴 rosinstall …
 프로그래밍언어 C++, Python, Lisp, Java, Ruby, MATLAB등
 90종류 이상의 로봇, 80종류 이상의 센서 지원
현재의 ROS 생태계
42
APP
ROS
ROBOT, SENSOR
개발자, 유저
로봇, 센서 회사
현재의 ROS 생태계
43
 5,000이상의 패키지
 2,188개의 공식 패키지 제공 (July 2015)
 71,663 다운로드 (Unique IP, July 2015)
 16,043 Wiki페이지 (July 2015)
 애플리케이션 fetch beer, elevator …
 시뮬레이터 gazebo, player/stage, STDR Simulator …
 지능모듈 navigation, action, grasping …
 라이브러리 tf, PCL, OpenCV, OpenRave …
 디바이스드라이버 camera_drivers, urg_node …
 디버그 툴 rviz, rqt_graph, rosbag, rostopic …
 메시지통신 rosmaster, rosmsg, rosservice …
 실행 툴 rosrun, roslaunch …
 컴파일 툴 catkin_make, rosbuild …
 파일시스템 roscd, rosls …
 설치 툴 rosinstall …
 프로그래밍언어 C++, Python, Lisp, Java, Ruby, MATLAB등
 90종류 이상의 로봇, 80종류 이상의 센서 지원
APP
ROS
ROBOT, SENSOR
개발자, 유저
로봇, 센서 회사
ROS 역사
• 2017.05.xx - ROS 2.0 릴리즈 예정
• 2016.05.xx - Kinetic Kame 릴리즈 예정
• 2015.10.03 - ROSCon2015 컨퍼런스 개최
• 2015.05.23 - Jade Turtle 릴리즈
• 2014.09.12 - ROSCon2014 컨퍼런스 개최
• 2014.07.22 - Indigo Igloo 릴리즈
• 2014.06.06 - ROS Kong 2014 개최
• 2013.09.04 - Hydro Medusa 릴리즈
• 2013.05.11 - ROSCon2013 컨퍼런스 개최
• 2013.02.11 - Open Source Robotics Foundation 가 개발, 관리를 맡음
• 2012.12.31 - Groovy Galapagos 릴리즈
• 2012.05.19 - ROSCon2012 컨퍼런스 개최
• 2012.04.23 - Fuerte 릴리즈
• 2011.08.30 - Electric Emys 릴리즈
• 2011.03.02 - Diamondback 릴리즈
• 2010.08.02 - C Turtle 릴리즈
• 2010.03.02 - Box Turtle 릴리즈
• 2010.01.22 - ROS 1.0 개발
• 2007.11.01 - Willow Garage 가 “ROS”라는 이름으로 개발 시작
• 2007.05.01 - Switchyard, Morgan Quigley, Stanford AI LAB, 스탠포드 대학
• 2000 - Player/Stage Project, Brian Gerkey, Richard Vaughan, Andrew Howard, 남캘리포니아 대학
44http://wiki.ros.org/Distributions
?
ROS moves to
the Open Source Robotics Foundation (OSRF)
http://wiki.ros.org/Distributions http://wiki.ros.org/Events
ROS History
45
2008 2010 2011 2012 2013 2014 2015 20162000
2007.05.01
2007.11.01
02.11
Player/Stage Project,
Brian Gerkey, Richard
Vaughan, Andrew Howard
Switchyard (ROS’s prototype),
Morgan Quigley,
Stanford AI LAB
Personal Robotics (PR)
project with ROS
Willow Garage
9th ROS distribution
Jade Turtle release
4th ROS distribution
Electric Emys release
7th ROS distribution
Hydro Medusa release
ROS moves to
the Open Source Robotics Foundation (OSRF)
6th ROS distribution
Groovy Galapagos release
3rd ROS distribution
Diamondback release
2nd ROS distribution
C Turtle release
http://wiki.ros.org/Distributions http://wiki.ros.
org/Events
ROS History
46
2008 2010 2011 2012 2013 2014 2015 20162000
2007.05.01
2007.11.01
ROS 1.0 release
1st ROS distribution
Box Turtle release
01.22
03.02
08.02
03.02
08.30
5th ROS distribution
Fuerte release
04.23
05.19
12.31
02.11
05.11
8th ROS distribution
Indigo Igloo release
06.0609.04
07.22
09.12
05.23
10.03
05.xx (TBD)
10th ROS distribution
Kinetic Kame release
Player/Stage Project,
Brian Gerkey, Richard
Vaughan, Andrew Howard
Switchyard (ROS’s prototype),
Morgan Quigley,
Stanford AI LAB
Personal Robotics (PR)
project with ROS
Willow Garage
http://wiki.ros.org/Distributions
Various Distributions
47
9th ROS distribution
Jade Turtle release
4th ROS distribution
Electric Emys release
7th ROS distribution
Hydro Medusa release
ROS moves to
the Open Source Robotics Foundation (OSRF)
6th ROS distribution
Groovy Galapagos release
3rd ROS distribution
Diamondback release
2nd ROS distribution
C Turtle release
http://wiki.ros.org/Distributions http://wiki.ros.
org/Events
ROS History
48
2008 2010 2011 2012 2013 2014 2015 20162000
2007.05.01
2007.11.01
ROS 1.0 release
1st ROS distribution
Box Turtle release
01.22
03.02
08.02
03.02
08.30
5th ROS distribution
Fuerte release
04.23
05.19
12.31
02.11
05.11
8th ROS distribution
Indigo Igloo release
06.0609.04
07.22
09.12
05.23
10.03
05.xx (TBD)
10th ROS distribution
Kinetic Kame release
Player/Stage Project,
Brian Gerkey, Richard
Vaughan, Andrew Howard
Switchyard (ROS’s prototype),
Morgan Quigley,
Stanford AI LAB
Personal Robotics (PR)
project with ROS
Willow Garage
ROSCon2014
9th ROS distribution
Jade Turtle release
4th ROS distribution
Electric Emys release
7th ROS distribution
Hydro Medusa release
ROS moves to
the Open Source Robotics Foundation (OSRF)
6th ROS distribution
Groovy Galapagos release
3rd ROS distribution
Diamondback release
2nd ROS distribution
C Turtle release
http://wiki.ros.org/Distributions http://wiki.ros.
org/Events
ROS History
49
2008 2010 2011 2012 2013 2014 2015 20162000
2007.05.01
2007.11.01
ROS 1.0 release
1st ROS distribution
Box Turtle release
01.22
03.02
08.02
03.02
08.30
5th ROS distribution
Fuerte release
04.23
ROSCon2012
05.19
12.31
02.11
ROSCon2013
05.11
ROS Kong 2014
8th ROS distribution
Indigo Igloo release
06.0609.04
07.22
09.12
05.23
10.03
ROSCon2015
05.xx (TBD)
10th ROS distribution
Kinetic Kame release
Player/Stage Project,
Brian Gerkey, Richard
Vaughan, Andrew Howard
Switchyard (ROS’s prototype),
Morgan Quigley,
Stanford AI LAB
Personal Robotics (PR)
project with ROS
Willow Garage
ROS Conferences
50
Stuttgart, Germany
11-12 May 2013
St. Paul, Minnesota, USA
19-20 May 2012
Chicago, Illinois, USA
September 12-13, 2014
Hong Kong University
June 6, 2014
Hamburg, Germany
May 3-4, 2015
http://roscon.ros.org/
ROS 릴리즈 스케줄과 버전 선택!
• 1년에 1번 정식 버전 릴리즈될 예정!
 2016.05.xx - Kinetic Kame (추천)
 2015.05.23 - Jade Turtle
 2014.07.22 - Indigo Igloo (추천)
 2013.09.04 - Hydro Medusa
 2012.12.31 - Groovy Galapagos
 2012.04.23 - Fuerte Turtle
 2011.08.30 - Electric Emys
 2011.03.02 - Diamondback
 2010.08.02 - C Turtle
 2010.03.02 - Box Turtle
 2010.01.22 - ROS 1.0
 Jade Turtle (EOL=May, 2017)
 Indigo Igloo (EOL=April, 2019)
51
ROS 설치 방법
52
$ wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_indigo_install.sh
$ sh ros_indigo_install.sh
ROS 설치 방법
53https://mirror.enha.kr/
$ wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_indigo_install.sh
$ sh ros_indigo_install.sh
ROS 동작 테스트
• turtlesim 패키지
 roscore
 rosrun turtlesim turtlesim_node
 rosrun turtlesim turtle_teleop_key
 rosrun rqt_graph rqt_graph
54
Index
I. 로봇 소프트웨어 플랫폼의 필요성
II. 로봇 운영체제 ROS 소개
III. 로봇 운영체제 ROS 개념
IV. 로봇 운영체제 ROS 특징과 활용
55
ROS 용어
 Node
 최소 단위의 실행 가능한 프로세서를 가리키는 용어로써 하나의 실행 가능한 프
로그램으로 생각하면 된다. ROS 에서는 최소한의 실행단위로 프로그램을 나누
어 작업하게 된다. 각 노드는 메시지 통신으로 데이터를 주고 받는다.
 Package
 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것. 또한, 패키지의 묶
음을 메타패키지라 하여 따로 분리한다.
 Message
 메시지를 통해 노드간의 데이터를 주고받게 된다. 메시지는 integer, floating
point, boolean 와 같은 변수형태이다. 또한, 메시지 안에 메시지를 품고 있는 간
단한 데이터 구조 및 메시지들의 배열과 같은 구조도 사용할 수 있다.
56
ROS 용어
57
Topic, Publisher, Subscriber
http://www.dreamstime.com/illustration/people-talk-listen-tin-can-phone-communication.html
퍼블리셔 서브스크라이버
Topic Publisher Subscriber
Topic
엔코더 SLAM(위치정보 X, Y, θ)
Publisher
Subscriber
Topic
거리센서
로봇A
(장애물 X, Y)
Subscriber
로봇B
하나의 Topic 에 대해
복수의 퍼블리셔, 복수의 서브스크라이버도 가능함
ROS 용어
58
Service, Service server, Service client
http://www.dreamstime.com/illustration/people-talk-listen-tin-can-phone-communication.html
서버 클라이언트
서비스 응답
서버 클라이언트
서비스 요청
어이~ 서버!
지금 몇 시야?
지금 몇 시냐고?
알아볼게~
지금 12:00시야!
59
ROS 개념 정리
• ROS에서 가장 기본이 되는 기술적 포인트: 노드간의 메시지 통신!
60
마스터
노드1 노드2
노드 정보노드 정보
접속 정보
메시지 통신
(토픽, 서비스)
마스터
XMLRPC: 서버
http://ROS_MASTER_URI:11311
노드 정보 관리
ROS 개념 정리
1. 마스터 구동: XMLRPC(XML-Remote Procedure Call)
 $ roscore
61
ROS 개념 정리
2. 서브스크라이버 노드(Node) 구동
 $rosrun 패키지이름 노드이름
62
마스터
노드2
XMLRPC: 서버
http://ROS_MASTER_URI:11311
노드 정보 관리
서브스크라이버 노드 정보:
/subscriber_node_name,
/topic_name,
message_type,
http://ROS_HOSTNAME:1234
XMLRPC: 클라이언트
http://ROS_HOSTNAME:1234
정보 구독
ROS 개념 정리
3. 퍼블리셔 노드(Node) 구동
 $rosrun 패키지이름 노드이름
63
마스터
노드1 노드2
XMLRPC: 서버
http://ROS_MASTER_URI:11311
노드 정보 관리
퍼블리셔 노드 정보:
/publisher_node_name,
/topic_name,
message_type,
http://ROS_HOSTNAME:5678
XMLRPC: 클라이언트
http://ROS_HOSTNAME:5678
정보 발행
서브크스라이버
노드 정보
ROS 개념 정리
4. 퍼블리셔 정보 알림
 마스터는 서브스크라이버 노드에게 새로운 퍼블리셔 정보를 알린다.
64
마스터
노드1 노드2
퍼블리셔 노드 정보:
/publisher_node_name,
/topic_name,
message_type,
http://ROS_HOSTNAME:5678
XMLRPC: 서버
XMLRPC: 클라이언트
http://ROS_HOSTNAME:1234
정보 구독
퍼블리셔
노드 정보
서브크스라이버
노드 정보
ROS 개념 정리
5. 퍼블리셔 노드에 접속 요청
 마스터로부터 받은 퍼블리셔 정보를 이용하여 TCPROS 접속을 요청
65
마스터
노드1 노드2
XMLRPC: 클라이언트
http://ROS_HOSTNAME:1234
정보 구독
TCPROS 접속 요청
XMLRPC: 서버
http://ROS_HOSTNAME:5678
정보 발행
ROS 개념 정리
6. 서브스크라이버 노드에 접속 응답
 접속 응답에 해당되는 자신의 TCP URI 주소와 포트번호를 전송
66
마스터
노드1 노드2
XMLRPC: 클라이언트
http://ROS_HOSTNAME:1234
정보 구독
TCPROS 접속 응답
XMLRPC: 서버
http://ROS_HOSTNAME:5678
정보 발행
(http://ROS_HOSTNAME:3456)
ROS 개념 정리
7. TCP 접속
 TCPROS를 이용하여 퍼블리셔 노드와 직접 연결한다.
67
마스터
노드1 노드2
TCPROS : 클라이언트
ROS_HOSTNAME:7890
정보 구독
TCPROS 접속
TCPROS: 서버
ROS_HOSTNAME:3456
정보 발행
ROS 개념 정리
8. 메시지 전송
 발행자 노드는 서브스크라이버 노드에게 메시지를 전송 (토픽)
68
마스터
노드1 노드2
TCPROS : 클라이언트
ROS_HOSTNAME:7890
정보 구독
TCPROS: 서버
ROS_HOSTNAME:3456
정보 발행 메시지 전송
(토픽)
ROS 개념 정리
 토픽방식에서는 접속을 끊지 않는 이상 지속적으로 메시지를 전송한다. 즉, 연속성.
69
노드1 노드2
TCPROS : 클라이언트
ROS_HOSTNAME:7890
정보 구독
TCPROS: 서버
ROS_HOSTNAME:3456
정보 발행
메시지 전송
(토픽)
ROS 개념 정리
9. 서비스 요청 및 응답
 1회에 한해 접속, 서비스 요청 및 서비스 응답이 수행되고 서로간의 접속을 끊는다.
70
마스터
노드1 노드2
TCPROS : 클라이언트
ROS_HOSTNAME:7890
서비스 요청
TCPROS: 서버
ROS_HOSTNAME:3456
서비스 응답 메시지 송/수신
(서비스)
ROS 개념 정리
 서비스는 토픽과 달리 1회에 한해 접속하고 서비스 요청 및 서비스 응답이 수행한 후 서로간의
접속을 끊는다. 즉, 1회성이다.
71
노드1 노드2
TCPROS : 클라이언트
ROS_HOSTNAME:7890
서비스 요청
TCPROS: 서버
ROS_HOSTNAME:3456
서비스 응답
메시지 수신
(서비스 응답)
메시지 송신
(서비스 요청)
ROS 개념 정리
• turtlesim 패키지
 roscore
 rosrun turtlesim turtlesim_node
 rosrun turtlesim turtle_teleop_key
 rosrun rqt_graph rqt_graph
72
ROS 개념 정리
• 10. 예제! turtlesim
73
roscore
http://192.168.4.100:50051
turtlesim_node 노드
정보 구독
http://192.168.4.100:45704
turtle_teleop_key 노드
정보 발행
메시지 전송
/turtle1/cmd_vel
퍼블리셔 노드 정보:
/teleop_turtle,
/turtle1/cmd_vel,
geomety_msgs/Twist,
http://192.168.4.100:45704
퍼블리셔 노드 정보:
/teleop_turtle,
/turtle1/cmd_vel,
geomety_msgs/Twist,
http://192.168.4.100:45704
서브스크라이버 노드 정보:
/turtlesim,
/turtle1/cmd_vel,
geomety_msgs/Twist,
http://192.168.4.100:50051
마스터
http://192.168.4.100:11311
노드 정보 관리
← ↑↓ →
④
①
②
③
Index
I. 로봇 소프트웨어 플랫폼의 필요성
II. 로봇 운영체제 ROS 소개
III. 로봇 운영체제 ROS 개념
IV. 로봇 운영체제 ROS 특징과 활용
74
Index
I. 로봇 소프트웨어 플랫폼의 필요성
II. 로봇 운영체제 ROS 소개
III. 로봇 운영체제 ROS 개념
IV. 로봇 운영체제 ROS 특징과 활용
→ 통신 인프라 / 로봇 관련 기능 / 다양한 개발 도구
75
통신 인프라
 프로세스 간 통신을 제공
 통상적 미들웨어로 지칭되는 메시지 전달 인터페이스
 메시지 파싱 기능
• 로봇 개발 시에 빈번히 사용되는 통신 시스템 제공
• 캡슐화 및 코드 재사용을 촉진하는 노드 들간의 메시지 전달 인터페이스
 메시지의 기록 및 재생
• 노드간 송수신되는 데이터인 메시지를 저장하고 필요 시에 재사용 가능
• 저장된 메시지를 기반으로 반복적인 실험 가능, 알고리즘 개발에 용이함
• 개발 노력을 절감, 시스템의 유연성과 모듈화를 촉진하는 강력한 디자인 패턴
 원격 프로시저 호출
• 프로세스 간의 동기식 요청/응답 상호 작용 가능
 분산 매개 변수 시스템
• 시스템에서 사용되는 변수를 글로벌 키를 작성하여 공유, 수정하여 실시간으로 반영
76
로봇 관련 기능
 로봇에 대한 표준 메시지 정의
• 카메라, IMU, 레이저 등의 센서 / 오도메트리, 경로 및 지도 등의 내비게이션 데이터 등의 표
준 메시지를 정의하여 모듈화, 협업 작업을 유도, 효율성 향상
 로봇 기하학 라이브러리
• 로봇, 센서 등의 상대적 좌표를 트리화 시키는 TF 제공
 로봇 기술 언어
• 로봇의 물리적 특성을 설명하는 XML 문서 기술
 진단 시스템
• 로봇의 상태를 한눈에 파악할 수 있는 진단 시스템 제공
 포즈 추정
 위치 추정
 지도 제작
 내비게이션
• 로봇에서 많이 사용되는 로봇의 포즈(위치/자세) 추정, 지도내의 자기 위치 추정 및 지도 작
성에 필요한 SLAM, 작성된 지도 내에서 목적지를 찾아가는 Navigation 라이브러리를 제공
77
다양한 개발 도구
 로봇 개발에 필요한 다양한 개발 도구를 제공
 로봇 개발의 효율성 향상
 Command-Line Tools
• GUI 없이 ROS에서 제공되는 명령어로만 로봇 억세스 및 거의 모든 ROS 기능 소화
 RViz
• 강력한 3D 시각화툴 제공
• 레이저, 카메라 등의 센서 데이터를 시각화
• 로봇 외형과 계획된 동작을 표현
 RQT
• 그래픽 인터페이스 개발을 위한 Qt 기반 프레임 워크 제공
• 노드와 그들 사이의 연결 정보 표시(rqt_graph)
• 인코더, 전압, 또는 시간이 지남에 따라 변화하는 숫자를 플로팅(rqt_plot)
• 데이터를 메시지 형태로 기록하고 재생(rqt_bag)
78http://www.ros.org/core-components/
RViz?
• ROS의 3D 시각화툴
• 센서 데이터의 시각화
• 레이저 레인지 파인더(LRF)센서의 거리 데이터
• Kinect, Xtion, RealSense 등의 Depth Camera의 포인트 클라우드 데이터
(Point Cloud Data)
• 카메라의 영상 데이터
• IMU 센서의 관성 데이터
• 로봇 외형의 표시와 계획된 동작을 표현
• URDF(Unified Robot Description Format)
• 내비게이션
• 매니퓰레이션
• 원격 제어
80https://youtu.be/OqOkpZBOpxY
81https://youtu.be/qtoAJ1wzB6s
82https://youtu.be/6afrMnEmXFI
83https://youtu.be/j5v5fKppcQo
84https://youtu.be/Jf4kgPEzY4s
85https://youtu.be/ath8uNv9c_Q
86https://youtu.be/9lbuLAD1c_4
87https://youtu.be/xCRsszVAP1E
88https://youtu.be/5rMv3ZDyFwQ
89https://www.youtube.com/user/DARPAtv
RViz를 이용하면
센서 및 로봇 관련
데이터 시각화가 간단!
90
ROS 활용의 예
 OpenCV, PCL, Machine Learning, Sensing, IoT 등 로봇 이외에도 범용적으로 사용 가능한 소프
트웨어 프레임워크를 가지고 있음
 rosbag 는 모든 데이터에 대해서 녹음이 가능하여, 언제든지 재 실험이 가능하다.
 재실험 없이 기존 데이터를 기반으로 한 알고리즘 개발에 용이
91http://www.ros.org/core-components/
ROS 활용의 예
92http://www.ros.org/core-components/
ROS 활용의 예
• 3차원 모델링, 시뮬레이션, 플래닝
93
ROS 활용의 예
 센서 정보 취득
 센서 정보 시각화
94
ROS 활용의 예
 로봇 모션 플래닝
 실제 하드웨어를 기반으로 한 로봇 실험
95
질문
대환영!
국내 유일! 최초! ROS 책
비 영어권 최고의 책
인세 전액 기부
여기서! 광고 하나 나가요~
여기서! 광고 둘 나가요~
• 오로카
• www.oroca.org
• 오픈 로보틱스 지향
• 풀뿌리 로봇공학의 저변 활성화
• 열린 강좌, 세미나, 프로젝트 진행
• 로봇공학을 위한 열린 모임 (KOS-ROBOT)
• www.facebook.com/groups/KoreanRobotics
• 로봇공학 통합 커뮤니티 지향
• 일반인과 전문가가 어울러지는 한마당
• 로봇공학 소식 공유
• 연구자 간의 협력
혼자 하기에 답답하시다고요?
커뮤니티에서 함께 해요~
Yoonseok Pyo
pyo@robotis.com
www.robotpilot.net
표윤석
www.facebook.com/yoonseok.pyo
또~ 봬요!
*^^*
끝.
Thanks for your attention!
표윤석
100
Yoonseok Pyo
pyo@robotis.com
www.robotpilot.net
표윤석
www.facebook.com/yoonseok.pyo

Contenu connexe

Tendances

TurtleBot3でROSを始めよう
TurtleBot3でROSを始めようTurtleBot3でROSを始めよう
TurtleBot3でROSを始めようROBOTIS Japan
 
Intel RealSense for ROSConJP20221121.pdf
Intel RealSense for ROSConJP20221121.pdfIntel RealSense for ROSConJP20221121.pdf
Intel RealSense for ROSConJP20221121.pdfTakumi14
 
Robotics and Technology
Robotics and TechnologyRobotics and Technology
Robotics and TechnologyRamki M
 
ROS+GAZEBO
ROS+GAZEBOROS+GAZEBO
ROS+GAZEBOicmike
 
Dronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応についてDronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応について博宣 今村
 
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )博宣 今村
 
20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_korea20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_koreaYoonseok Pyo
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-IndustrialClay Flannigan
 
HoloLens2とMeta QuestではじめるWebXR
HoloLens2とMeta QuestではじめるWebXRHoloLens2とMeta QuestではじめるWebXR
HoloLens2とMeta QuestではじめるWebXRTakashi Yoshinaga
 
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるmozyanari
 
A-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVRA-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVRTakashi Yoshinaga
 
Presentation of robotics
Presentation of roboticsPresentation of robotics
Presentation of roboticsQaiserAnsari3
 
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.230分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2uchan_nos
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyYasuharu Nakano
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Piyush Chand
 

Tendances (20)

TurtleBot3でROSを始めよう
TurtleBot3でROSを始めようTurtleBot3でROSを始めよう
TurtleBot3でROSを始めよう
 
Intel RealSense for ROSConJP20221121.pdf
Intel RealSense for ROSConJP20221121.pdfIntel RealSense for ROSConJP20221121.pdf
Intel RealSense for ROSConJP20221121.pdf
 
Robotics and Technology
Robotics and TechnologyRobotics and Technology
Robotics and Technology
 
ROS+GAZEBO
ROS+GAZEBOROS+GAZEBO
ROS+GAZEBO
 
Dronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応についてDronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応について
 
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
 
20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_korea20150708 ros seminar_in_busan_korea
20150708 ros seminar_in_busan_korea
 
My ROS Experience
My ROS ExperienceMy ROS Experience
My ROS Experience
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
HoloLens2とMeta QuestではじめるWebXR
HoloLens2とMeta QuestではじめるWebXRHoloLens2とMeta QuestではじめるWebXR
HoloLens2とMeta QuestではじめるWebXR
 
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみる
 
Robotics
RoboticsRobotics
Robotics
 
Robotics - IK
Robotics - IKRobotics - IK
Robotics - IK
 
A-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVRA-Frameで始めるOculus Quest対応WebVR
A-Frameで始めるOculus Quest対応WebVR
 
Presentation of robotics
Presentation of roboticsPresentation of robotics
Presentation of robotics
 
30分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.230分で分かる!OSの作り方 ver.2
30分で分かる!OSの作り方 ver.2
 
Obstacle detctor
Obstacle detctorObstacle detctor
Obstacle detctor
 
Robotics
RoboticsRobotics
Robotics
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 

En vedette

4th Open Robotics Seminar
4th Open Robotics Seminar4th Open Robotics Seminar
4th Open Robotics SeminarYoonseok Pyo
 
DYNAMIXEL ROS Package
DYNAMIXEL ROS PackageDYNAMIXEL ROS Package
DYNAMIXEL ROS PackageYoonseok Pyo
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)Yoonseok Pyo
 
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션Yoonseok Pyo
 
Open Source License
Open Source LicenseOpen Source License
Open Source LicenseYoonseok Pyo
 
2nd ROS Tutorial Seminar Section 4
2nd ROS Tutorial Seminar Section 42nd ROS Tutorial Seminar Section 4
2nd ROS Tutorial Seminar Section 4Yoonseok Pyo
 
2nd ROS Tutorial Seminar
2nd ROS Tutorial Seminar2nd ROS Tutorial Seminar
2nd ROS Tutorial SeminarYoonseok Pyo
 
2nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 22nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 2Yoonseok Pyo
 
ROS SERIAL and OpenCR
ROS SERIAL and OpenCRROS SERIAL and OpenCR
ROS SERIAL and OpenCRYoonseok Pyo
 

En vedette (9)

4th Open Robotics Seminar
4th Open Robotics Seminar4th Open Robotics Seminar
4th Open Robotics Seminar
 
DYNAMIXEL ROS Package
DYNAMIXEL ROS PackageDYNAMIXEL ROS Package
DYNAMIXEL ROS Package
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)
 
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
 
Open Source License
Open Source LicenseOpen Source License
Open Source License
 
2nd ROS Tutorial Seminar Section 4
2nd ROS Tutorial Seminar Section 42nd ROS Tutorial Seminar Section 4
2nd ROS Tutorial Seminar Section 4
 
2nd ROS Tutorial Seminar
2nd ROS Tutorial Seminar2nd ROS Tutorial Seminar
2nd ROS Tutorial Seminar
 
2nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 22nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 2
 
ROS SERIAL and OpenCR
ROS SERIAL and OpenCRROS SERIAL and OpenCR
ROS SERIAL and OpenCR
 

Similaire à 20160406 ROS 1차 강의 (for 아스라다 팀)

Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원:: AWS Summit Online ...
Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원::  AWS Summit Online ...Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원::  AWS Summit Online ...
Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원:: AWS Summit Online ...Amazon Web Services Korea
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍Suhan Park
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장Devgear
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략Ji-Woong Choi
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?유명환 FunFun Yoo
 
오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료) 오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료) 정명훈 Jerry Jeong
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...Amazon Web Services Korea
 
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론Yoonseok Pyo
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요TIMEGATE
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요Seung-Woo Kang
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석Tommy Lee
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 Devgear
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"Changhwan Yi
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD StudioDevgear
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축rockplace
 

Similaire à 20160406 ROS 1차 강의 (for 아스라다 팀) (20)

Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원:: AWS Summit Online ...
Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원::  AWS Summit Online ...Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원::  AWS Summit Online ...
Robot 혁명 : 기계들의 반란 - 박천구, AWS솔루션즈 아키텍트/손의형, 로보티즈 선임 연구원:: AWS Summit Online ...
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
 
Why OpenStack is Operating System?
Why OpenStack is Operating System?Why OpenStack is Operating System?
Why OpenStack is Operating System?
 
오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료) 오픈소스의 이해(교육자료)
오픈소스의 이해(교육자료)
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
 
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요
 
Hello std.io 유명환_20140125
Hello std.io 유명환_20140125Hello std.io 유명환_20140125
Hello std.io 유명환_20140125
 
Mobile Application Development Platform "Morpheus"
Mobile Application Development Platform "Morpheus"Mobile Application Development Platform "Morpheus"
Mobile Application Development Platform "Morpheus"
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 

Plus de Yoonseok Pyo

제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기Yoonseok Pyo
 
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇Yoonseok Pyo
 
공돌이에게도 전략은 필요하다
공돌이에게도 전략은 필요하다공돌이에게도 전략은 필요하다
공돌이에게도 전략은 필요하다Yoonseok Pyo
 
BLDC 모터 돌려보기
BLDC 모터 돌려보기BLDC 모터 돌려보기
BLDC 모터 돌려보기Yoonseok Pyo
 
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)Yoonseok Pyo
 
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)Yoonseok Pyo
 
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)Yoonseok Pyo
 

Plus de Yoonseok Pyo (7)

제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
 
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
 
공돌이에게도 전략은 필요하다
공돌이에게도 전략은 필요하다공돌이에게도 전략은 필요하다
공돌이에게도 전략은 필요하다
 
BLDC 모터 돌려보기
BLDC 모터 돌려보기BLDC 모터 돌려보기
BLDC 모터 돌려보기
 
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
 
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
 
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
 

Dernier

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Dernier (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

20160406 ROS 1차 강의 (for 아스라다 팀)

  • 1. 로봇 운영체제 ROS 개론 2016. 04. 06 Yoonseok Pyo Open Source Team 1
  • 2. Index I. 로봇 소프트웨어 플랫폼의 필요성 II. 로봇 운영체제 ROS 소개 III. 로봇 운영체제 ROS 개념 IV. 로봇 운영체제 ROS 특징과 활용 2
  • 3. Index I. 로봇 소프트웨어 플랫폼의 필요성 II. 로봇 운영체제 ROS 소개 III. 로봇 운영체제 ROS 개념 IV. 로봇 운영체제 ROS 특징과 활용 3
  • 4. 이 두 가지의 공통점은? 4http://www.rosewill.com/, http://www.samsung.com/global/business/mobile/product/smartphone Personal Computer Smartphone
  • 6. http://www.techpowerup.com/, http://global.samsungtomorrow.com/ Personal Computer Smartphone 다양한 하드웨어의 결합이 가능한 하드웨어 모듈
  • 7. 운영 체제 (Operating System) + 애플리케이션(App) 7 Personal Computer Smartphone http://en.wikipedia.org/wiki/Linux, https://www.apple.com/, http://windows.microsoft.com/, The icons are trade mark of each company iOS 8
  • 8.
  • 9. 9
  • 10. 10
  • 11. 로봇 개발  로봇 개발자는 만능? 혼자 다~ 만들려고 해 ㅡㅡ;  단독적인 하드웨어 구성  만들고 자기만 쓰는 경우도 OTL...  하드웨어 레벨에서 바로 서비스 애플리케이션을 구현 11Iron Man (2008 film) - Wikipedia Are you actually a genius?
  • 12. 12
  • 13. [1983년 최초 상용 핸드폰(?) 모토로라 DynaTAC 8000 와 개발자 Martin Cooper, 점점 발전하는 휴대전화] http://blog.cartoys.com/date/2013/04/, https://line.do/the-evolution-of-cell-phones/r5q4ui/vertical 소프트웨어 플랫폼이 가져온 변화 13
  • 14. 소프트웨어 플랫폼이 가져온 변화  하드웨어 인터페이스 통합  하드웨어 추상화 ・ 규격화 ・ 모듈화  가격 ↓, 성능 ↑, 가성비 발군  하드웨어 ・ 운영체제 ・ 애플리케이션 분리  사용자 수요에 맞는 서비스에 집중!  구매와 피드백, 새로운 생태계의 선환 구조 형성 14 iOS 8
  • 15. Photographed by Daniel Case, GNU Free Documentation License Platform ? 플랫폼? 15
  • 16. 플랫폼? • 플랫폼 • 하드웨어 플랫폼 및 소프트웨어 플랫폼을 통칭하는 용어. (로봇 진영에서는 로봇 플랫폼이라 한다.) • 하드웨어 플랫폼 • 하드웨어 아키텍처를 포함하며 정해진 목적에 맞도록 하드웨어를 구성한 것. 또한, 하드웨어 플랫폼은 상단의 응용 프로그램을 위하여 소프트웨어 플랫폼과 결합하기 위한 인터페이스를 갖추고 있다. • 소프트웨어 플랫폼 • 하드웨어 플랫폼에서 정해진 목적의 응용 프로그램을 구동하기 위한 운영체제(OS), 소프트 웨어 프레임워크를 포함하는 것. 16Photographed by Daniel Case, GNU Free Documentation License Platform ?
  • 18. 주요 로봇 운영체제 18http:// ros.org kr.forwallpaper.com http://www.softbank.jp/en/corp/group/sbr/ http://www.opros.or.kr/ http://www.openrtm.org/ http://schools-wikipedia.org/ Galapagos Closed source Open source
  • 19. 주요 로봇 운영체제 19http:// ros.org kr.forwallpaper.com http://www.softbank.jp/en/corp/group/sbr/ http://www.opros.or.kr/ http://www.openrtm.org/ http://schools-wikipedia.org/ Galapagos Closed source Open source
  • 20. 20
  • 21. 21
  • 24. 로봇 소프트웨어 플랫폼이 가져올 미래  하드웨어 플랫폼과의 소프트웨어 플랫폼간의 인터페이스 확립  모듈형 하드웨어 플랫폼 확산  하드웨어에 대한 지식이 없어도 응용 프로그램 작성 가능 (있다면 더 좋고 )  더 많은 소프트웨어 인력들이 로보틱스 분야로 진입, 로봇 제품에 참여 가능  유저에게 제공할 서비스에 집중  서비스 제공으로 유저계층 형성 및 피드백  로봇 개발이 급속도로 발전 할 수 있는 계기 24
  • 25. Index I. 로봇 소프트웨어 플랫폼의 필요성 II. 로봇 운영체제 ROS 소개 III. 로봇 운영체제 ROS 개념 IV. 로봇 운영체제 ROS 특징과 활용 25
  • 26. ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstr action, low-level device control, implementation of c ommonly-used functionality, message-passing betw een processes, and package management. It also pr ovides tools and libraries for obtaining, building, writ ing, and running code across multiple computers. http://www.ros.org/wiki/ http://www.ros.org/news/ ROS 란? 26
  • 27. 소프트웨어 프레임워크  로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크  개발 도구, 라이브러리, 드라이버, 다양한 로봇 소프트웨어 공개 패키지 제공  하드웨어 플랫폼의 하드웨어 추상화  이 기종 하드웨어에서 사용 가능한 메시지 기능  로보틱스 생태계 생성! 27http://www.ros.org/about-ros/
  • 28. ROS의 진정한 목적 28 로보틱스 소프트웨어 개발을 전세계 레벨에서 공동 작업 가능하도록 환경을 구축하는 것! http://imgfave.com/
  • 29. ROS는 새로운 운영 체제(OS)인가?  범용 컴퓨터 • Windows(Windows XP, 7, 8 ...) • Linux(Ubuntu, Redhat, Fedora, Mint, Gentoo ...) • MAC(OS X ...) 등  스마트폰 • Android, iOS, Windows Phone, Symbian, RiMO, Tizen등  ROS = Robot Operating System  ROS는 메타운영체제(Meta-Operating System)이다. 29
  • 30. 메타운영체제(Meta-Operating System) • 메타운영체제(Meta-Operating System) 딱히 정확히 정의된 용어는 아니지만, 어플리케 이션과 분산 컴퓨팅 자원간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템이라고 볼 수 있다. • 즉, 윈도우, 리눅스, 안드로이드와 같은 전통적인 운영체제는 아니다. 오히려, ROS는 기 존의 전통적인 운영체제(리눅스, 윈도우즈, OS-X, 안드로이드)를 이용하고 있다. • 기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸 (컴파일러, 스레드 모델 등)등을 사용하고 있다. 이에 추가적으로 다수의 이기종 하드웨 어간의 데이터 송수신, 스케쥴링, 에러 처리 등 로봇 응용 소프트웨어를 위한 필수 기능 들을 라이브러리 형태로 제공하고 있다. 또한, 이러한 기반 로봇 소프트웨어 프레임워 크를 기반으로 다양한 목적의 응용 프로그램을 개발, 관리, 제공하고 있으며 유저들이 개발한 패키지 또한 유통하는 생태계(ecosystem)를 갖추고 있다. 30
  • 31. 메타운영체제(Meta-Operating System) • 메타운영체제(Meta-Operating System) 딱히 정확히 정의된 용어는 아니지만, 어플리 케이션과 분산 컴퓨팅 자원간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴 링 및 로드, 감시, 에러 처리 등을 실행하는 시스템이라고 볼 수 있다. • 즉, 윈도우, 리눅스, 안드로이드와 같은 전통적인 운영체제는 아니다. 오히려, ROS는 기 존의 전통적인 운영체제(리눅스, 윈도우즈, OS-X, 안드로이드)를 이용하고 있다. • 기존 운영체제의 프로세스 관리 시스템, 파일 시스템, 유저 인터페이스, 프로그램 유틸 (컴파일러, 스레드 모델 등)등을 사용하고 있다. 이에 추가적으로 다수의 이기종 하드웨 어간의 데이터 송수신, 스케쥴링, 에러 처리 등 로봇 응용 소프트웨어를 위한 필수 기능 들을 라이브러리 형태로 제공하고 있다. 또한, 이러한 기반 로봇 소프트웨어 프레임워 크를 기반으로 다양한 목적의 응용 프로그램을 개발, 관리, 제공하고 있으며 유저들이 개발한 패키지 또한 유통하는 생태계(ecosystem)를 갖추고 있다. 31
  • 32. 메타운영체제(Meta-Operating System) 32 iOS 디바이스 드라이버, 라이브러리, 디버그 도구, 메시지 통신 구동 도구, 컴파일 도구, 인스톨러, 패키지 생성 및 릴리즈 메타 운영체제
  • 33. 이 기종간의 통신 지원 33 iOS
  • 34. 이 기종간의 통신 지원 34 iOS
  • 35. ROS를 사용 가능한 운영체제  기존 전통적인 운영체제  ROS를 사용 가능한 운영체제(OS)로는 Ubuntu, OS X, Windows, Fedora, Gentoo, OpenSUSE, Debian, Raspbian, Arch, QNX Realtime OS 등이 있으나 기능 제한사항이 있을 수 있다.  스마트폰 운영체제인 Android, iOS 의 경우, 부분적 사용 가능  OS를 탑재할 수 없는 마이크로 컨트롤러 유닛(MCU)의 경우, 시리얼 통신, 블 루투스, LAN 경유로 통신할 수 있는 라이브러리 제공  기본적으로는 Ubuntu, OS X 에서 구동하는 것을 추천! 35
  • 36. 로봇계의 생태계(ecosystem)를 만들자! 생태계(ecosystem)  스마트폰을 생산하는 하드웨어 회사와 애플리케이션 소프트웨어(앱, APP) 개발자, 이를 사용 하는 유저 를 연결해주는 선환 구조를 말한다. 1) 스마트폰 제조 회사들이 단말기 기기를 생산 2) 사용할 운영체제의 인터페이스에 맞춤 3) 각 OS 개발 회사들은 이를 라이브러리화시켜 제공 4) 스마트폰에 대한 하드웨어 지식이 없어도 손쉽게 개발작업이 가능 5) 유저가 사용하기 쉽도록 관리,&유통 그리고 피드백으로 선순환  ROS는 로보틱스 생태계(ecosystem)를 준비 중이다! 36
  • 37. ROS 생태계 37 로봇 분야도 마찬가지 흐름으로 가고 있다. 처음에는 여러 시도로 각 종 하드웨어 기술들이 넘쳐흘렀으나, 이를 통합해줄 OS가 전무했다. 이 상황에서 다양한 소프트웨어 플랫폼이 등장했고, 가장 주목 받은 ROS의 경우 이제 그 생태계의 틀을 갖추기 시작했다. 아직, 그 여파는 미미하지만 점점 늘고 있고 있는 유저들과 회사들 그 리고 급격히 늘고 있는 관련 툴 및 라이브러리를 볼 때 멀지 않아 생태 계가 완만히 돌아갈 것이라고 기대해본다. 그리고, 로봇회사 및 센서회사와 같은 로봇 관련 하드웨어 개발자 / ROS 개발 운용 팀 / 응용 소프트웨어 개발자 / 유저 모두가 웃을 수 있 는 생태계가 되길 바란다. 컴퓨터 → 스마트폰 → 로봇
  • 38. ROS 생태계 38 로봇 분야도 마찬가지 흐름으로 가고 있다. 처음에는 여러 시도로 각 종 하드웨어 기술들이 넘쳐흘렀으나, 이를 통합해줄 OS가 전무했다. 이 상황에서 다양한 소프트웨어 플랫폼이 등장했고, 가장 주목 받은 ROS의 경우 이제 그 생태계의 틀을 갖추기 시작했다. 아직, 그 여파는 미미하지만 점점 늘고 있고 있는 유저들과 회사들 그 리고 급격히 늘고 있는 관련 툴 및 라이브러리를 볼 때 멀지 않아 생태 계가 완만히 돌아갈 것이라고 기대해본다. 그리고, 로봇회사 및 센서회사와 같은 로봇 관련 하드웨어 개발자 / ROS 개발 운용 팀 / 응용 소프트웨어 개발자 / 유저 모두가 웃을 수 있 는 생태계가 되길 바란다. 컴퓨터 → 스마트폰 → 로봇
  • 39. ROS 생태계 39 로봇 분야도 마찬가지 흐름으로 가고 있다. 처음에는 여러 시도로 각 종 하드웨어 기술들이 넘쳐흘렀으나, 이를 통합해줄 OS가 전무했다. 이 상황에서 다양한 소프트웨어 플랫폼이 등장했고, 가장 주목 받은 ROS의 경우 이제 그 생태계의 틀을 갖추기 시작했다. 아직, 그 여파는 미미하지만 점점 늘고 있고 있는 유저들과 회사들 그 리고 급격히 늘고 있는 관련 툴 및 라이브러리를 볼 때 멀지 않아 생태 계가 완만히 돌아갈 것이라고 기대해본다. 그리고, 로봇회사 및 센서회사와 같은 로봇 관련 하드웨어 개발자 / ROS 개발 운용 팀 / 응용 소프트웨어 개발자 / 유저 모두가 웃을 수 있 는 생태계가 되길 바란다. 컴퓨터 → 스마트폰 → 로봇
  • 40. 현재의 ROS 생태계 40 APP ROS ROBOT, SENSOR 개발자, 유저 로봇, 센서 회사
  • 41. 5,000이상의 패키지 2,188개의 공식 패키지 제공 (July 2015) 71,663 다운로드 (Unique IP, July 2015) 16,043 Wiki페이지 (July 2015) 애플리케이션 fetch beer, elevator … 시뮬레이터gazebo, player/stage, STDR Simulator … 지능모듈 navigation, action, grasping … 라이브러리tf, PCL, OpenCV, OpenRave … 디바이스드라이버 camera_drivers, urg_node … 디버그 툴 rviz, rqt_graph, rosbag, rostopic … 메시지통신rosmaster, rosmsg, rosservice … 실행 툴 rosrun, roslaunch … 컴파일 툴 catkin_make, rosbuild … 파일시스템roscd, rosls … 설치 툴 rosinstall … 프로그래밍언어 C++, Python, Lisp, Java, Ruby, MATLAB등  90종류 이상의 로봇, 80종류 이상의 센서 지원 현재의 ROS 생태계 41 APP ROS ROBOT, SENSOR 개발자, 유저 로봇, 센서 회사
  • 42.  5,000이상의 패키지  2,188개의 공식 패키지 제공 (July 2015)  71,663 다운로드 (Unique IP, July 2015)  16,043 Wiki페이지 (July 2015)  애플리케이션 fetch beer, elevator …  시뮬레이터 gazebo, player/stage, STDR Simulator …  지능모듈 navigation, action, grasping …  라이브러리 tf, PCL, OpenCV, OpenRave …  디바이스드라이버 camera_drivers, urg_node …  디버그 툴 rviz, rqt_graph, rosbag, rostopic …  메시지통신 rosmaster, rosmsg, rosservice …  실행 툴 rosrun, roslaunch …  컴파일 툴 catkin_make, rosbuild …  파일시스템 roscd, rosls …  설치 툴 rosinstall …  프로그래밍언어 C++, Python, Lisp, Java, Ruby, MATLAB등  90종류 이상의 로봇, 80종류 이상의 센서 지원 현재의 ROS 생태계 42 APP ROS ROBOT, SENSOR 개발자, 유저 로봇, 센서 회사
  • 43. 현재의 ROS 생태계 43  5,000이상의 패키지  2,188개의 공식 패키지 제공 (July 2015)  71,663 다운로드 (Unique IP, July 2015)  16,043 Wiki페이지 (July 2015)  애플리케이션 fetch beer, elevator …  시뮬레이터 gazebo, player/stage, STDR Simulator …  지능모듈 navigation, action, grasping …  라이브러리 tf, PCL, OpenCV, OpenRave …  디바이스드라이버 camera_drivers, urg_node …  디버그 툴 rviz, rqt_graph, rosbag, rostopic …  메시지통신 rosmaster, rosmsg, rosservice …  실행 툴 rosrun, roslaunch …  컴파일 툴 catkin_make, rosbuild …  파일시스템 roscd, rosls …  설치 툴 rosinstall …  프로그래밍언어 C++, Python, Lisp, Java, Ruby, MATLAB등  90종류 이상의 로봇, 80종류 이상의 센서 지원 APP ROS ROBOT, SENSOR 개발자, 유저 로봇, 센서 회사
  • 44. ROS 역사 • 2017.05.xx - ROS 2.0 릴리즈 예정 • 2016.05.xx - Kinetic Kame 릴리즈 예정 • 2015.10.03 - ROSCon2015 컨퍼런스 개최 • 2015.05.23 - Jade Turtle 릴리즈 • 2014.09.12 - ROSCon2014 컨퍼런스 개최 • 2014.07.22 - Indigo Igloo 릴리즈 • 2014.06.06 - ROS Kong 2014 개최 • 2013.09.04 - Hydro Medusa 릴리즈 • 2013.05.11 - ROSCon2013 컨퍼런스 개최 • 2013.02.11 - Open Source Robotics Foundation 가 개발, 관리를 맡음 • 2012.12.31 - Groovy Galapagos 릴리즈 • 2012.05.19 - ROSCon2012 컨퍼런스 개최 • 2012.04.23 - Fuerte 릴리즈 • 2011.08.30 - Electric Emys 릴리즈 • 2011.03.02 - Diamondback 릴리즈 • 2010.08.02 - C Turtle 릴리즈 • 2010.03.02 - Box Turtle 릴리즈 • 2010.01.22 - ROS 1.0 개발 • 2007.11.01 - Willow Garage 가 “ROS”라는 이름으로 개발 시작 • 2007.05.01 - Switchyard, Morgan Quigley, Stanford AI LAB, 스탠포드 대학 • 2000 - Player/Stage Project, Brian Gerkey, Richard Vaughan, Andrew Howard, 남캘리포니아 대학 44http://wiki.ros.org/Distributions ?
  • 45. ROS moves to the Open Source Robotics Foundation (OSRF) http://wiki.ros.org/Distributions http://wiki.ros.org/Events ROS History 45 2008 2010 2011 2012 2013 2014 2015 20162000 2007.05.01 2007.11.01 02.11 Player/Stage Project, Brian Gerkey, Richard Vaughan, Andrew Howard Switchyard (ROS’s prototype), Morgan Quigley, Stanford AI LAB Personal Robotics (PR) project with ROS Willow Garage
  • 46. 9th ROS distribution Jade Turtle release 4th ROS distribution Electric Emys release 7th ROS distribution Hydro Medusa release ROS moves to the Open Source Robotics Foundation (OSRF) 6th ROS distribution Groovy Galapagos release 3rd ROS distribution Diamondback release 2nd ROS distribution C Turtle release http://wiki.ros.org/Distributions http://wiki.ros. org/Events ROS History 46 2008 2010 2011 2012 2013 2014 2015 20162000 2007.05.01 2007.11.01 ROS 1.0 release 1st ROS distribution Box Turtle release 01.22 03.02 08.02 03.02 08.30 5th ROS distribution Fuerte release 04.23 05.19 12.31 02.11 05.11 8th ROS distribution Indigo Igloo release 06.0609.04 07.22 09.12 05.23 10.03 05.xx (TBD) 10th ROS distribution Kinetic Kame release Player/Stage Project, Brian Gerkey, Richard Vaughan, Andrew Howard Switchyard (ROS’s prototype), Morgan Quigley, Stanford AI LAB Personal Robotics (PR) project with ROS Willow Garage
  • 48. 9th ROS distribution Jade Turtle release 4th ROS distribution Electric Emys release 7th ROS distribution Hydro Medusa release ROS moves to the Open Source Robotics Foundation (OSRF) 6th ROS distribution Groovy Galapagos release 3rd ROS distribution Diamondback release 2nd ROS distribution C Turtle release http://wiki.ros.org/Distributions http://wiki.ros. org/Events ROS History 48 2008 2010 2011 2012 2013 2014 2015 20162000 2007.05.01 2007.11.01 ROS 1.0 release 1st ROS distribution Box Turtle release 01.22 03.02 08.02 03.02 08.30 5th ROS distribution Fuerte release 04.23 05.19 12.31 02.11 05.11 8th ROS distribution Indigo Igloo release 06.0609.04 07.22 09.12 05.23 10.03 05.xx (TBD) 10th ROS distribution Kinetic Kame release Player/Stage Project, Brian Gerkey, Richard Vaughan, Andrew Howard Switchyard (ROS’s prototype), Morgan Quigley, Stanford AI LAB Personal Robotics (PR) project with ROS Willow Garage
  • 49. ROSCon2014 9th ROS distribution Jade Turtle release 4th ROS distribution Electric Emys release 7th ROS distribution Hydro Medusa release ROS moves to the Open Source Robotics Foundation (OSRF) 6th ROS distribution Groovy Galapagos release 3rd ROS distribution Diamondback release 2nd ROS distribution C Turtle release http://wiki.ros.org/Distributions http://wiki.ros. org/Events ROS History 49 2008 2010 2011 2012 2013 2014 2015 20162000 2007.05.01 2007.11.01 ROS 1.0 release 1st ROS distribution Box Turtle release 01.22 03.02 08.02 03.02 08.30 5th ROS distribution Fuerte release 04.23 ROSCon2012 05.19 12.31 02.11 ROSCon2013 05.11 ROS Kong 2014 8th ROS distribution Indigo Igloo release 06.0609.04 07.22 09.12 05.23 10.03 ROSCon2015 05.xx (TBD) 10th ROS distribution Kinetic Kame release Player/Stage Project, Brian Gerkey, Richard Vaughan, Andrew Howard Switchyard (ROS’s prototype), Morgan Quigley, Stanford AI LAB Personal Robotics (PR) project with ROS Willow Garage
  • 50. ROS Conferences 50 Stuttgart, Germany 11-12 May 2013 St. Paul, Minnesota, USA 19-20 May 2012 Chicago, Illinois, USA September 12-13, 2014 Hong Kong University June 6, 2014 Hamburg, Germany May 3-4, 2015 http://roscon.ros.org/
  • 51. ROS 릴리즈 스케줄과 버전 선택! • 1년에 1번 정식 버전 릴리즈될 예정!  2016.05.xx - Kinetic Kame (추천)  2015.05.23 - Jade Turtle  2014.07.22 - Indigo Igloo (추천)  2013.09.04 - Hydro Medusa  2012.12.31 - Groovy Galapagos  2012.04.23 - Fuerte Turtle  2011.08.30 - Electric Emys  2011.03.02 - Diamondback  2010.08.02 - C Turtle  2010.03.02 - Box Turtle  2010.01.22 - ROS 1.0  Jade Turtle (EOL=May, 2017)  Indigo Igloo (EOL=April, 2019) 51
  • 52. ROS 설치 방법 52 $ wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_indigo_install.sh $ sh ros_indigo_install.sh
  • 53. ROS 설치 방법 53https://mirror.enha.kr/ $ wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_indigo_install.sh $ sh ros_indigo_install.sh
  • 54. ROS 동작 테스트 • turtlesim 패키지  roscore  rosrun turtlesim turtlesim_node  rosrun turtlesim turtle_teleop_key  rosrun rqt_graph rqt_graph 54
  • 55. Index I. 로봇 소프트웨어 플랫폼의 필요성 II. 로봇 운영체제 ROS 소개 III. 로봇 운영체제 ROS 개념 IV. 로봇 운영체제 ROS 특징과 활용 55
  • 56. ROS 용어  Node  최소 단위의 실행 가능한 프로세서를 가리키는 용어로써 하나의 실행 가능한 프 로그램으로 생각하면 된다. ROS 에서는 최소한의 실행단위로 프로그램을 나누 어 작업하게 된다. 각 노드는 메시지 통신으로 데이터를 주고 받는다.  Package  하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것. 또한, 패키지의 묶 음을 메타패키지라 하여 따로 분리한다.  Message  메시지를 통해 노드간의 데이터를 주고받게 된다. 메시지는 integer, floating point, boolean 와 같은 변수형태이다. 또한, 메시지 안에 메시지를 품고 있는 간 단한 데이터 구조 및 메시지들의 배열과 같은 구조도 사용할 수 있다. 56
  • 57. ROS 용어 57 Topic, Publisher, Subscriber http://www.dreamstime.com/illustration/people-talk-listen-tin-can-phone-communication.html 퍼블리셔 서브스크라이버 Topic Publisher Subscriber Topic 엔코더 SLAM(위치정보 X, Y, θ) Publisher Subscriber Topic 거리센서 로봇A (장애물 X, Y) Subscriber 로봇B 하나의 Topic 에 대해 복수의 퍼블리셔, 복수의 서브스크라이버도 가능함
  • 58. ROS 용어 58 Service, Service server, Service client http://www.dreamstime.com/illustration/people-talk-listen-tin-can-phone-communication.html 서버 클라이언트 서비스 응답 서버 클라이언트 서비스 요청 어이~ 서버! 지금 몇 시야? 지금 몇 시냐고? 알아볼게~ 지금 12:00시야!
  • 59. 59
  • 60. ROS 개념 정리 • ROS에서 가장 기본이 되는 기술적 포인트: 노드간의 메시지 통신! 60 마스터 노드1 노드2 노드 정보노드 정보 접속 정보 메시지 통신 (토픽, 서비스)
  • 61. 마스터 XMLRPC: 서버 http://ROS_MASTER_URI:11311 노드 정보 관리 ROS 개념 정리 1. 마스터 구동: XMLRPC(XML-Remote Procedure Call)  $ roscore 61
  • 62. ROS 개념 정리 2. 서브스크라이버 노드(Node) 구동  $rosrun 패키지이름 노드이름 62 마스터 노드2 XMLRPC: 서버 http://ROS_MASTER_URI:11311 노드 정보 관리 서브스크라이버 노드 정보: /subscriber_node_name, /topic_name, message_type, http://ROS_HOSTNAME:1234 XMLRPC: 클라이언트 http://ROS_HOSTNAME:1234 정보 구독
  • 63. ROS 개념 정리 3. 퍼블리셔 노드(Node) 구동  $rosrun 패키지이름 노드이름 63 마스터 노드1 노드2 XMLRPC: 서버 http://ROS_MASTER_URI:11311 노드 정보 관리 퍼블리셔 노드 정보: /publisher_node_name, /topic_name, message_type, http://ROS_HOSTNAME:5678 XMLRPC: 클라이언트 http://ROS_HOSTNAME:5678 정보 발행 서브크스라이버 노드 정보
  • 64. ROS 개념 정리 4. 퍼블리셔 정보 알림  마스터는 서브스크라이버 노드에게 새로운 퍼블리셔 정보를 알린다. 64 마스터 노드1 노드2 퍼블리셔 노드 정보: /publisher_node_name, /topic_name, message_type, http://ROS_HOSTNAME:5678 XMLRPC: 서버 XMLRPC: 클라이언트 http://ROS_HOSTNAME:1234 정보 구독 퍼블리셔 노드 정보 서브크스라이버 노드 정보
  • 65. ROS 개념 정리 5. 퍼블리셔 노드에 접속 요청  마스터로부터 받은 퍼블리셔 정보를 이용하여 TCPROS 접속을 요청 65 마스터 노드1 노드2 XMLRPC: 클라이언트 http://ROS_HOSTNAME:1234 정보 구독 TCPROS 접속 요청 XMLRPC: 서버 http://ROS_HOSTNAME:5678 정보 발행
  • 66. ROS 개념 정리 6. 서브스크라이버 노드에 접속 응답  접속 응답에 해당되는 자신의 TCP URI 주소와 포트번호를 전송 66 마스터 노드1 노드2 XMLRPC: 클라이언트 http://ROS_HOSTNAME:1234 정보 구독 TCPROS 접속 응답 XMLRPC: 서버 http://ROS_HOSTNAME:5678 정보 발행 (http://ROS_HOSTNAME:3456)
  • 67. ROS 개념 정리 7. TCP 접속  TCPROS를 이용하여 퍼블리셔 노드와 직접 연결한다. 67 마스터 노드1 노드2 TCPROS : 클라이언트 ROS_HOSTNAME:7890 정보 구독 TCPROS 접속 TCPROS: 서버 ROS_HOSTNAME:3456 정보 발행
  • 68. ROS 개념 정리 8. 메시지 전송  발행자 노드는 서브스크라이버 노드에게 메시지를 전송 (토픽) 68 마스터 노드1 노드2 TCPROS : 클라이언트 ROS_HOSTNAME:7890 정보 구독 TCPROS: 서버 ROS_HOSTNAME:3456 정보 발행 메시지 전송 (토픽)
  • 69. ROS 개념 정리  토픽방식에서는 접속을 끊지 않는 이상 지속적으로 메시지를 전송한다. 즉, 연속성. 69 노드1 노드2 TCPROS : 클라이언트 ROS_HOSTNAME:7890 정보 구독 TCPROS: 서버 ROS_HOSTNAME:3456 정보 발행 메시지 전송 (토픽)
  • 70. ROS 개념 정리 9. 서비스 요청 및 응답  1회에 한해 접속, 서비스 요청 및 서비스 응답이 수행되고 서로간의 접속을 끊는다. 70 마스터 노드1 노드2 TCPROS : 클라이언트 ROS_HOSTNAME:7890 서비스 요청 TCPROS: 서버 ROS_HOSTNAME:3456 서비스 응답 메시지 송/수신 (서비스)
  • 71. ROS 개념 정리  서비스는 토픽과 달리 1회에 한해 접속하고 서비스 요청 및 서비스 응답이 수행한 후 서로간의 접속을 끊는다. 즉, 1회성이다. 71 노드1 노드2 TCPROS : 클라이언트 ROS_HOSTNAME:7890 서비스 요청 TCPROS: 서버 ROS_HOSTNAME:3456 서비스 응답 메시지 수신 (서비스 응답) 메시지 송신 (서비스 요청)
  • 72. ROS 개념 정리 • turtlesim 패키지  roscore  rosrun turtlesim turtlesim_node  rosrun turtlesim turtle_teleop_key  rosrun rqt_graph rqt_graph 72
  • 73. ROS 개념 정리 • 10. 예제! turtlesim 73 roscore http://192.168.4.100:50051 turtlesim_node 노드 정보 구독 http://192.168.4.100:45704 turtle_teleop_key 노드 정보 발행 메시지 전송 /turtle1/cmd_vel 퍼블리셔 노드 정보: /teleop_turtle, /turtle1/cmd_vel, geomety_msgs/Twist, http://192.168.4.100:45704 퍼블리셔 노드 정보: /teleop_turtle, /turtle1/cmd_vel, geomety_msgs/Twist, http://192.168.4.100:45704 서브스크라이버 노드 정보: /turtlesim, /turtle1/cmd_vel, geomety_msgs/Twist, http://192.168.4.100:50051 마스터 http://192.168.4.100:11311 노드 정보 관리 ← ↑↓ → ④ ① ② ③
  • 74. Index I. 로봇 소프트웨어 플랫폼의 필요성 II. 로봇 운영체제 ROS 소개 III. 로봇 운영체제 ROS 개념 IV. 로봇 운영체제 ROS 특징과 활용 74
  • 75. Index I. 로봇 소프트웨어 플랫폼의 필요성 II. 로봇 운영체제 ROS 소개 III. 로봇 운영체제 ROS 개념 IV. 로봇 운영체제 ROS 특징과 활용 → 통신 인프라 / 로봇 관련 기능 / 다양한 개발 도구 75
  • 76. 통신 인프라  프로세스 간 통신을 제공  통상적 미들웨어로 지칭되는 메시지 전달 인터페이스  메시지 파싱 기능 • 로봇 개발 시에 빈번히 사용되는 통신 시스템 제공 • 캡슐화 및 코드 재사용을 촉진하는 노드 들간의 메시지 전달 인터페이스  메시지의 기록 및 재생 • 노드간 송수신되는 데이터인 메시지를 저장하고 필요 시에 재사용 가능 • 저장된 메시지를 기반으로 반복적인 실험 가능, 알고리즘 개발에 용이함 • 개발 노력을 절감, 시스템의 유연성과 모듈화를 촉진하는 강력한 디자인 패턴  원격 프로시저 호출 • 프로세스 간의 동기식 요청/응답 상호 작용 가능  분산 매개 변수 시스템 • 시스템에서 사용되는 변수를 글로벌 키를 작성하여 공유, 수정하여 실시간으로 반영 76
  • 77. 로봇 관련 기능  로봇에 대한 표준 메시지 정의 • 카메라, IMU, 레이저 등의 센서 / 오도메트리, 경로 및 지도 등의 내비게이션 데이터 등의 표 준 메시지를 정의하여 모듈화, 협업 작업을 유도, 효율성 향상  로봇 기하학 라이브러리 • 로봇, 센서 등의 상대적 좌표를 트리화 시키는 TF 제공  로봇 기술 언어 • 로봇의 물리적 특성을 설명하는 XML 문서 기술  진단 시스템 • 로봇의 상태를 한눈에 파악할 수 있는 진단 시스템 제공  포즈 추정  위치 추정  지도 제작  내비게이션 • 로봇에서 많이 사용되는 로봇의 포즈(위치/자세) 추정, 지도내의 자기 위치 추정 및 지도 작 성에 필요한 SLAM, 작성된 지도 내에서 목적지를 찾아가는 Navigation 라이브러리를 제공 77
  • 78. 다양한 개발 도구  로봇 개발에 필요한 다양한 개발 도구를 제공  로봇 개발의 효율성 향상  Command-Line Tools • GUI 없이 ROS에서 제공되는 명령어로만 로봇 억세스 및 거의 모든 ROS 기능 소화  RViz • 강력한 3D 시각화툴 제공 • 레이저, 카메라 등의 센서 데이터를 시각화 • 로봇 외형과 계획된 동작을 표현  RQT • 그래픽 인터페이스 개발을 위한 Qt 기반 프레임 워크 제공 • 노드와 그들 사이의 연결 정보 표시(rqt_graph) • 인코더, 전압, 또는 시간이 지남에 따라 변화하는 숫자를 플로팅(rqt_plot) • 데이터를 메시지 형태로 기록하고 재생(rqt_bag) 78http://www.ros.org/core-components/
  • 79. RViz? • ROS의 3D 시각화툴 • 센서 데이터의 시각화 • 레이저 레인지 파인더(LRF)센서의 거리 데이터 • Kinect, Xtion, RealSense 등의 Depth Camera의 포인트 클라우드 데이터 (Point Cloud Data) • 카메라의 영상 데이터 • IMU 센서의 관성 데이터 • 로봇 외형의 표시와 계획된 동작을 표현 • URDF(Unified Robot Description Format) • 내비게이션 • 매니퓰레이션 • 원격 제어
  • 90. RViz를 이용하면 센서 및 로봇 관련 데이터 시각화가 간단! 90
  • 91. ROS 활용의 예  OpenCV, PCL, Machine Learning, Sensing, IoT 등 로봇 이외에도 범용적으로 사용 가능한 소프 트웨어 프레임워크를 가지고 있음  rosbag 는 모든 데이터에 대해서 녹음이 가능하여, 언제든지 재 실험이 가능하다.  재실험 없이 기존 데이터를 기반으로 한 알고리즘 개발에 용이 91http://www.ros.org/core-components/
  • 93. ROS 활용의 예 • 3차원 모델링, 시뮬레이션, 플래닝 93
  • 94. ROS 활용의 예  센서 정보 취득  센서 정보 시각화 94
  • 95. ROS 활용의 예  로봇 모션 플래닝  실제 하드웨어를 기반으로 한 로봇 실험 95
  • 97. 국내 유일! 최초! ROS 책 비 영어권 최고의 책 인세 전액 기부 여기서! 광고 하나 나가요~
  • 98. 여기서! 광고 둘 나가요~ • 오로카 • www.oroca.org • 오픈 로보틱스 지향 • 풀뿌리 로봇공학의 저변 활성화 • 열린 강좌, 세미나, 프로젝트 진행 • 로봇공학을 위한 열린 모임 (KOS-ROBOT) • www.facebook.com/groups/KoreanRobotics • 로봇공학 통합 커뮤니티 지향 • 일반인과 전문가가 어울러지는 한마당 • 로봇공학 소식 공유 • 연구자 간의 협력 혼자 하기에 답답하시다고요? 커뮤니티에서 함께 해요~
  • 100. Thanks for your attention! 표윤석 100 Yoonseok Pyo pyo@robotis.com www.robotpilot.net 표윤석 www.facebook.com/yoonseok.pyo