제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ros 개론

69
로봇 운영체제 ROS 개론 The 3 rd Open Robotics Seminar 표윤석 WWW.OROCA.ORG Section 7. 2015/05/24

Upload: yoonseok-pyo

Post on 09-Aug-2015

785 views

Category:

Technology


11 download

TRANSCRIPT

Page 1: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

로봇 운영체제 ROS 개론The 3rd Open Robotics Seminar

표윤석WWW.OROCA.ORG

Section 7.2015/05/24

Page 2: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

ROSRobot Operating System

Page 3: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

ROSRobot Operating System

Page 4: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.rosewill.com/, http://www.samsung.com/global/business/mobile/product/smartphone

Personal Computer Smartphone

Page 5: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 6: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.techpowerup.com/, http://global.samsungtomorrow.com/

Personal Computer Smartphone

Page 7: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

Personal Computer Smartphonehttp://en.wikipedia.org/wiki/Linux, https://www.apple.com/, http://windows.microsoft.com/, The icons are trade mark of each company

iOS 8

Page 8: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 9: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://freedesignfile.com (CC BY)

𝐹𝐹 =𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚 = 𝑚𝑚

𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚 = 𝑚𝑚𝑚𝑚

Are you actually a genius?

Page 10: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://freedesignfile.com (CC BY), http://www.tested.com/art/makers/455620-maker-faire-2013-roy-animatronic-robot/

ServiceApp

𝐹𝐹 =𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚

= 𝑚𝑚𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚 = 𝑚𝑚𝑚𝑚

Are you actually a genius?

Page 11: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://freedesignfile.com (CC BY), http://www.tested.com/art/makers/455620-maker-faire-2013-roy-animatronic-robot/

ServiceApp

𝐹𝐹 =𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚𝑚𝑚

= 𝑚𝑚𝑑𝑑𝑑𝑑𝑑𝑑 𝑚𝑚 = 𝑚𝑚𝑚𝑚

Are you actually a genius?

Page 12: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 13: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

[1983년최초상용핸드폰(?) 모토로라 DynaTAC 8000 와개발자 Martin Cooper, 점점발전하는휴대전화]

http://blog.cartoys.com/date/2013/04/, https://line.do/the-evolution-of-cell-phones/r5q4ui/vertical

Page 14: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

iOS 8

Presenter
Presentation Notes
하드웨어의 급성장과 필연적인 사용자들의 수요도 있었겠지만,  소프트웨어 플랫폼 기반으로 지식이 한데 모아져서 나온 결과라고 볼 수 있다. 이러한 소프트웨어 플랫폼은 하드웨어 플랫폼의 인터페이스를 통합시키게 만들고, 나아가 하드웨어를 몰라도 상위 단의 프로그램인 응용 프로그램에 집중할 수 있게 되었기 때문에 사용자들의 수요에 맞는 응용 제품이 나올 수 있었다. 
Page 15: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

Photographed by Daniel Case, GNU Free Documentation License

Platform ?

Presenter
Presentation Notes
운영체제 및 플랫폼은 각각 서로 다른 용어를 사용하고 있다. 소프트웨어 플랫폼, 로봇 플랫폼, 소프트웨어 프레임워크 등 매우 다양하다. 이러한 이유로 설명을 통일화하기 위하여 플랫폼에 대한 정의를 아래와 같이 정의한다.
Page 16: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

Photographed by Daniel Case, GNU Free Documentation License

Platform ?

Presenter
Presentation Notes
운영체제 및 플랫폼은 각각 서로 다른 용어를 사용하고 있다. 소프트웨어 플랫폼, 로봇 플랫폼, 소프트웨어 프레임워크 등 매우 다양하다. 이러한 이유로 설명을 통일화하기 위하여 플랫폼에 대한 정의를 아래와 같이 정의한다.
Page 17: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 18: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 19: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 20: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.greaterlasvegashomes.com/files/2014/09/soccer-stadium-.jpg

Page 21: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.wallpaper505.com/the-best-world-football-players-2014-2015-best-desktop-wallpaper.html

Page 22: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 23: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

ROSRobot Operating System

Page 24: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

ROS is an open-source, meta-operati

ng system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining,building, writing, and running code across multiple computers.

http://www.ros.org/wiki/

http://www.ros.org/news/

Page 25: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.ros.org/about-ros/

Page 26: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

로보틱스 소프트웨어 개발을 전세계 레벨에서공동 작업 가능하도록 환경을 구축하는 것!

http://imgfave.com/

Page 27: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 28: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 29: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 30: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

iOS

디바이스 드라이버, 라이브러리, 디버그 도구, 메시지 통신구동 도구, 컴파일 도구, 인스톨러, 패키지 생성 및 릴리즈

Page 31: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

iOS

Page 32: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

iOS

Page 33: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 34: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 35: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

컴퓨터 → 스마트폰 → 로봇

Page 36: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

컴퓨터 → 스마트폰 → 로봇

Page 37: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 38: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

APP

ROS

ROBOT, SENSOR

2014 Metrics 자료, http://download.ros.org/downloads/metrics/metrics-report-2014-07.pdf, http://wiki.ros.org/Robots

개발자, 유저

로봇, 센서 회사

Page 40: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

Switchyard

ROS

ROS 1.0

2007 2007.11 2010.01.22 2010.03.01 2010.08.02 2011.03.02 2011.08.30 2012.04.23 2012.12.31

Box Turtle C Turtle Diamondback Electric Emys Fuerte Turtle Groovy Galapagos

2013.09.04 2014.07.22

Hydro Medusa Indigo Igloo

2015.05.23

B C D E F

G H I

http://wiki.ros.org/Distributions

Jade Turtle

J

KineticKame

2016.05.xx

Page 41: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 42: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 43: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

https://mirror.enha.kr/

Page 44: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 45: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

ROSRobot Operating System

Page 46: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 47: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.dreamstime.com/illustration/people-talk-listen-tin-can-phone-communication.html

발행자 구독자

Topic Publisher SubscriberTopic

엔코더 SLAM(위치정보 X, Y, θ)

Publisher

Subscriber

Topic

거리센서

로봇A

(장애물 X, Y)Subscriber

로봇B하나의 Topic 에 대해복수의 발행자, 복수의 구독자도 가능함

Page 48: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

http://www.dreamstime.com/illustration/people-talk-listen-tin-can-phone-communication.html

서버 클라이언트

서비스 응답

서버 클라이언트

서비스 요청 어이~ 서버!지금 몇 시야?

지금 몇 시냐고?알아볼게~지금 12:00시야!

Page 49: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 50: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

노드 정보노드 정보

접속 정보

메시지 통신(토픽, 서비스)

Page 51: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

XMLRPC: 서버http://ROS_MASTER_URI:11311

노드 정보 관리

Page 52: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드2

XMLRPC: 서버http://ROS_MASTER_URI:11311

노드 정보 관리

구독자 노드 정보:/subscriber_node_name,/topic_name,message_type,http://ROS_HOSTNAME:1234

XMLRPC: 클라이언트http://ROS_HOSTNAME:1234

정보 구독

Page 53: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

구독자 노드 정보

XMLRPC: 서버http://ROS_MASTER_URI:11311

노드 정보 관리

발행자 노드 정보:/publisher_node_name,/topic_name,message_type,http://ROS_HOSTNAME:5678

XMLRPC: 클라이언트http://ROS_HOSTNAME:5678

정보 발행

Page 54: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

구독자 노드 정보

발행자 노드 정보:/publisher_node_name,/topic_name,message_type,http://ROS_HOSTNAME:5678

XMLRPC: 서버

XMLRPC: 클라이언트http://ROS_HOSTNAME:1234

정보 구독

발행자 노드 정보

Page 55: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

XMLRPC: 클라이언트http://ROS_HOSTNAME:1234

정보 구독

TCPROS 접속 요청

XMLRPC: 서버http://ROS_HOSTNAME:5678

정보 발행

Page 56: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

XMLRPC: 클라이언트http://ROS_HOSTNAME:1234

정보 구독

TCPROS 접속 응답

XMLRPC: 서버http://ROS_HOSTNAME:5678

정보 발행

(http://ROS_HOSTNAME:3456)

Page 57: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

TCPROS : 클라이언트ROS_HOSTNAME:7890

정보 구독

TCPROS 접속TCPROS: 서버

ROS_HOSTNAME:3456정보 발행

Page 58: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

TCPROS : 클라이언트ROS_HOSTNAME:7890

정보 구독

TCPROS: 서버ROS_HOSTNAME:3456

정보 발행 메시지 전송(토픽)

Page 59: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

노드1 노드2

TCPROS : 클라이언트ROS_HOSTNAME:7890

정보 구독

TCPROS: 서버ROS_HOSTNAME:3456

정보 발행

메시지 전송(토픽)

Page 60: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

마스터

노드1 노드2

TCPROS : 클라이언트ROS_HOSTNAME:7890

서비스 요청

TCPROS: 서버ROS_HOSTNAME:3456

서비스 응답 메시지 송/수신(서비스)

Page 61: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

노드1 노드2

TCPROS : 클라이언트ROS_HOSTNAME:7890

서비스 요청

TCPROS: 서버ROS_HOSTNAME:3456

서비스 응답

메시지 수신(서비스 응답)

메시지 송신(서비스 요청)

Page 62: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 63: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

roscore

http://192.168.4.100:50051turtlesim_node 노드

정보 구독

http://192.168.4.100:45704turtle_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노드 정보 관리

← ↑↓ →

①②

Page 64: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

ROSRobot Operating System

Page 65: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 66: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 67: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 68: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
Page 69: 제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론

Thank you for your attention.

Yoonseok [email protected]

www.robotpilot.net

WWW.OROCA.ORG