The Future of the Robot Operating System
ROS 2.0
1
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
2
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
3
ROSCon2015
Hamburg, Germany October 3-4, 2015
4
ROSCon2015
Hot Issue : ROS 2.0
Hamburg, Germany October 3-4, 2015
5
Why ROS 2?
• Multiple robots
• Small embedded platforms
• Real-time systems
• Non-ideal networks
• Production environments
• Prescribed patterns for building and structuring systems
• New technologies: Zeroconf, Protocol Buffers, ZeroMQ, Redis,
WebSockets, DDS (Data Distribution Service)
• API changes
• Risk associated with changing the current ROS system
6
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
7
ROS 1.x (XMLRPC + TCPROS)
Publisher Node Information ROS
Subscriber Node Information
② Master ①
③
Publisher Node Information
④
Node Node
Information Transmission Receive Information
8
ROS 1.x (XMLRPC + TCPROS)
XMLRPC
Node Information Management
Publisher Node Information ROS
Subscriber Node Information
② Master ①
③
Publisher Node Information
④
Node Node
Information Transmission Receive Information
TCPROS
1:1 Connect 9
ROS 1.x (XMLRPC + TCPROS)
XMLRPC
Node Information Management
Publisher Node Information ROS
Subscriber Node Information
② Master ①
③
Publisher Node Information
④
Node Node
Information Transmission Receive Information
TCPROS
1:1 Connect 10
ROS 1.x (XMLRPC + TCPROS)
XMLRPC
Publisher Node Information: Subscriber Node Information:
/teleop_turtle,
Node Information Management /turtlesim,
/turtle1/cmd_vel, /turtle1/cmd_vel,
geomety_msgs/Twist,
ROS geomety_msgs/Twist,
http://192.168.4.100:45704 ② Master http://192.168.4.100:50051
①
http://192.168.4.100:11311
Node Information Management ③
Publisher Node Information:
/teleop_turtle,
/turtle1/cmd_vel,
geomety_msgs/Twist,
http://192.168.4.100:45704
④
Send Message
← ↑↓ →
/turtle1/cmd_vel
http://192.168.4.100:45704 http://192.168.4.100:50051
turtle_teleop_key node turtlesim_node
TCPROS
Information Transmission Receive Information
1:1 Connect 11
Transport: TCP vs UDP
TCP UDP
A B A B
SYN
Connection Connection-oriented Connectionless
SYN+ACK
establishment Unicast Unicast, Broadcast
ACK
Multicast
FIN
Connection ACK
termination ACK FIN
12
Transport: TCP vs UDP
TCP UDP
A B A B
SYN
Connection Connection-oriented Connectionless
SYN+ACK
establishment Unicast Unicast, Broadcast
ACK
Multicast
DATA DATA
DATA
ACK
DATA DATA
Data transmission Reliable DATA
Best effort
ACK
DATA
DATA
DATA ACK DATA
ACK High Speed DATA
Very high Speed
FIN
Connection ACK
termination ACK FIN
13
DDS (Data Distribution Service)
• DDS: Publish/subscribe middle ware for data-centric distributed
systems, Managed by Object Management Group(OMG)
• Communication Protocol: RTPS(Real Time Publish Subscribe)
It is based on UDP, but has the advantage of TCP
14
DDS (Data Distribution Service)
• Auto-Discovery: No need to know the IP Address and Port number
Node A Multicast IP Node B Node C
INFO
INFO
INFO
15
DDS (Data Distribution Service)
• Auto-Discovery: No need to know the IP Address and Port number
Node A Multicast IP Node B Node C
INFO
INFO
INFO
DATA
DATA Data
DATA Data
INFO, Heartbeat
INFO, Heartbeat
INFO, ACK NACK
INFO, ACK NACK
16
DDS (Data Distribution Service)
• Retransmission Data Writer Data Reader
Node A Node B
Sequence 1 DATA 1
Number
2 DATA 2 1
3 DATA 3, HB 2
4 DATA 4 ACK (1,3), NACK (2) 3
DATA 2
5 DATA 5 4
6 DATA 6, HB 5
7 DATA 7 ACK (1-6)
6
8 DATA 8
7
9 DATA 9, HB
8
9
ACK (1-9)
17
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
18
Real-time Computing
• Real-time: It's about determinism, not performance!
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 19
Real-time Computing
• Hard real-time systems
• Soft real-time systems
• Firm real-time systems
reactor, aircraft, spacecraft control audio / video streaming financial forecasting,
robot assembly lines
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 20
Real-time Computing
• Use an OS able to deliver the required determinism
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 21
Real-time Computing
• Use an OS able to deliver the required determinism
• Prioritize real-time threads
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 22
Real-time Computing
• Avoid sources of non-determinism in real-time code
• Memory allocation and management ( malloc, new )
• Blocking synchronization primitives ( mutex )
• Printing, logging ( printf, cout )
• Network access, especially TCP/IP
• Non real-time device drivers
• Accessing the hard disk
• Page faults
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 23
Real-time Computing
• Real-time code
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 24
Real-time Computing
• Node lifecycle
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 25
Real-time Computing
• Real-time Benchmarking
Goal
﹣ 1 KHz update loop (1 ms period)
﹣ Less than 3% jitter (30 μs)
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 26
Real-time Computing
• Real-time Benchmarking
Goal
﹣ 1 KHz update loop (1 ms period)
﹣ Less than 3% jitter (30 μs)
Jackie Kay (OSRF) et. al. "Real-time Performance in ROS 2", ROSCon2015 27
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
28
Embedded Systems
• Small embedded systems are everywhere!
Morgan Quigley (OSRF) "ROS 2 on “small” embedded systems", ROSCon2015 29
Scope
32-bit MCU ARM A-class x86
8/16-bit MCU
"small" 32-bit MCU "big" 32-bit MCU (smartphone without screen) (laptop without screen)
Example Chip Atmel AVR ARM Cortex-M0 ARM Cortex-M7 Samsung Exynos Intel Core i5
Example System Arduino Leonardo Arduino M0 Pro SAM V71 ODROID Intel NUC
MIPS 10's 100's 100's 1000's 10000's
a few GB 2-16 GB
RAM 1-32 KB 32 KB 384 KB
(off-chip) (SODIMM)
Max power 10's of mW 100's of mW 100's of mW 1000's of mW 10000's of mW
Peripherals UART, USB FS, ... USB FS Ethernet, USB HS Gigabit Ethernet USB SS, PCIe
Future work Target MCU "Normal" ROS2
Morgan Quigley (OSRF) "ROS 2 on “small” embedded systems", ROSCon2015 30
OpenCR
• Open-source Control module for ROS (OpenCR, Link)
• Present 'ROS Embedded Board' at ‘ROSCon 2016' (Link)
CAN LED Dip Switch GPIO JTAG OLLO Arduino
DC3.3V OUT
UART1
DC5V OUT
UART2
DC12V OUT
SPI
Power Switch USB
User Button
Power OUT
Boot Button
DC Adapter In
Reset Button
RTC Battery
Battery In TTL IMU RS485 Arduino Buzzer
31
FreeRTPS
• RTPS for embedded systems FreeRTPS User API
• Apache2 License Portable discovery, serialization, etc.
• https://github.com/ros2/freertps Minimalist UDPv4 POSIX UDPv4
• It can use on MCU and on Linux. Vender Ethernet Ethernet
Flexible library stack,
elegant API via C++
User code
rclcpp Minimalist library stack,
ugly API, C-only
rmw
DDS interface User code
OpenSplice et. al. FreeRTPS
"Normal" ROS2 ROS2 using FreeRTPS
Morgan Quigley (OSRF) "ROS 2 on “small” embedded systems", ROSCon2015 32
ROS 2 features for embedded systems
• ROS2 / DDS / RTPS is much more embedded friendly than the ROS1
protocols
ROS 1 ROS 2
• startup sequencing • no master
• XML-RPC discovery • multicast UDP discovery
▫ parse XML trees ▫ parse parameter lists
• TCP data streams • RTPS/UDP data streams
• UDPROS not complete • extensive QoS on UDP
Morgan Quigley (OSRF) "ROS 2 on “small” embedded systems", ROSCon2015 33
State of ROS 2: Architecture
https://github.com/ros2/ros_core_documentation/ 34
Performance measurements: IMU demo
Morgan Quigley (OSRF) "ROS 2 on “small” embedded systems", ROSCon2015 35
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
36
State of ROS 2
• Goals
Dirk Thomas (OSRF) et. al. "State of ROS 2 - demos and the technology behind", ROSCon2015 37
State of ROS 2: TODO list
• New APIs
• ROS on DDS
• Mapping between ROS interface types and DDS IDL types
• RPC API design in ROS
• Parameter API design in ROS
• ROS 2 middleware interface
• Real-time Systems
• Build system ‘ament’
38
State of ROS 2: Changes between ROS 1 and ROS 2
ROS 1 ROS 2
Platforms Ubuntu, OS X Ubuntu, OS X, Windows
Communication XMLRPC + ROSTPC DDS
Languages C++03, Python 2 C++11, Python 3 (3.5+)
Build system rosbuild → catkin ament
Messages, Services *.msg, *.srv new *.msg, *.srv, *.msg.idl, *.srv.idl
roslaunch XML written in Python
multiple nodes one node in a process multiple nodes in a process
real-time external frameworks like Orocos real-time nodes when using a proper RTOS
with carefully written user code
Graph API remapping at startup time only remapping at runtime
Embedded systems rosserial (UART) FreeRTPS (UART, Ethernet, WiFi, et. al.)
No non-isolated build
No devel space
39
State of ROS 2: Schedule
• 2015-08-31: ROS 2 Alpha1 release (code name Anchor)
• 2015-11-03: ROS 2 Alpha2 release (code name Baling wire)
• 2015-12-18: ROS 2 Alpha3 release (code name Cement)
• 2016-02-17: ROS 2 Alpha4 release (code name Duct tape)
• 2016-04-06: ROS 2 Alpha5 release (code name Epoxy)
• 2016-06-02: ROS 2 Alpha6 release (code name Fastener)
• 2016-07-14: ROS 2 Alpha7 release (code name Glue Gun)
• 2016-10-04: ROS 2 Alpha8 release (code name Hook-and-Loop)
• 2016-12-19: ROS 2 Beta1 release (code name Asphalt)
• 2017-07-05: ROS 2 Beta2 release (code name R2B2)
• 2017-09-13: ROS 2 Beta3 release (code name R2B3)
• 2017-12-08: ROS 2 release (Ardent Apalone)
40
Contents
I. ROS 2
II. Three Key Features of ROS 2
1. DDS (Data Distribution Service)
2. Real-time Computing
3. Embedded System
III. Development Status of ROS 2
IV. What the Future Robot Operating System should Have?
41
What the Future Robot Operating System should Have?
Function대동소 [大同小異]
• 처음에는 각각의 특징이 있었으나 닮아가고 서로 보완하고 있다.
• 기능 갖춤은 필수이지
• 차별 점이 아니다.
Community power
• 기능 보강, 빠른 피드백, 컨텐츠 생성, 보급, 문서화, 표준화 등에 큰 도움이 된다.
• 개발자/사용자 커뮤니티 없는 로봇 운영체제는 미래에 있을 수 없다.
Cooperation with industrial robot vendors
• 산업용 로봇의 벤더들은 보유 기술은 공개할 수 없지만 산학협력은 해야 한다.
• 오월동주 [吳越同舟] (ROS-Industrial)
Catch hardware
• 웨어 추상화 플랫폼 실현, 규격 제안, 모듈화 하드웨어 유도
Securing commercial viability, building a complete ecosystem
• ROS는 아카데믹적인 면에서 영향력을 발휘했지만 수익 면에서는 NAOqi 처럼 개발자의 수익도 염두 해둔
APP시장을 키워야 더욱 풍부한 응용 애플리케이션 개발을 이끌 수 있다.
• 생태계(ECO system)
42
What the Future Robot Operating System should Have?
Function대동소 [大同小異]
• [大同小異]
• At first, there were features of each, but they are becoming similar while complementing each other
• Funcionality is essential, not discrimination
Community power
• 기능 보강, 빠른 피드백, 컨텐츠 생성, 보급, 문서화, 표준화 등에 큰 도움이 된다.
• 개발자/사용자 커뮤니티 없는 로봇 운영체제는 미래에 있을 수 없다.
Cooperation with industrial robot vendors
• 산업용 로봇의 벤더들은 보유 기술은 공개할 수 없지만 산학협력은 해야 한다.
• 오월동주 [吳越同舟] (ROS-Industrial)
Catch hardware
• 웨어 추상화 플랫폼 실현, 규격 제안, 모듈화 하드웨어 유도
Securing commercial viability, building a complete ecosystem
• ROS는 아카데믹적인 면에서 영향력을 발휘했지만 수익 면에서는 NAOqi 처럼 개발자의 수익도 염두 해둔
APP시장을 키워야 더욱 풍부한 응용 애플리케이션 개발을 이끌 수 있다.
• 생태계(ECO system)
43
What the Future Robot Operating System should Have?
Function대동소 [大同小異]
• [大同小異]
• At first, there were features of each, but they are becoming similar while complementing each other
• Funcionality is essential, not discrimination
Community power
• It is very helpful to enhance functions, quick feedback, content creation, dissemination, documentation and
standardization
• There is no future for robotic operating systems without a developer/user community수 없다.
Cooperation with industrial robot vendors
• 산업용 로봇의 벤더들은 보유 기술은 공개할 수 없지만 산학협력은 해야 한다.
• 오월동주 [吳越同舟] (ROS-Industrial)
Catch hardware
• 웨어 추상화 플랫폼 실현, 규격 제안, 모듈화 하드웨어 유도
Securing commercial viability, building a complete ecosystem
• ROS는 아카데믹적인 면에서 영향력을 발휘했지만 수익 면에서는 NAOqi 처럼 개발자의 수익도 염두 해둔 APP시장을 키워
야 더욱 풍부한 응용 애플리케이션 개발을 이끌 수 있다.
• 생태계(ECO system)
44
What the Future Robot Operating System should Have?
Function대동소 [大同小異]
• [大同小異]
• At first, there were features of each, but they are becoming similar while complementing each other
• Funcionality is essential, not discrimination
Community power
• It is very helpful to enhance functions, quick feedback, content creation, dissemination, documentation and
standardization
• There is no future for robotic operating systems without a developer/user community수 없다.
Cooperation with industrial robot vendors
• [吳越同舟] (ROS-Industrial)
• Industrial robot vendors can not disclose their technology, but industry-academia cooperation should be done
Catch hardware
• 웨어 추상화 플랫폼 실현, 규격 제안, 모듈화 하드웨어 유도
Securing commercial viability, building a complete ecosystem
• ROS는 아카데믹적인 면에서 영향력을 발휘했지만 수익 면에서는 NAOqi 처럼 개발자의 수익도 염두 해둔 APP시장을 키워
야 더욱 풍부한 응용 애플리케이션 개발을 이끌 수 있다.
• 생태계(ECO system)
45
What the Future Robot Operating System should Have?
Function대동소 [大同小異]
• [大同小異]
• At first, there were features of each, but they are becoming similar while complementing each other
• Funcionality is essential, not discrimination
Community power
• It is very helpful to enhance functions, quick feedback, content creation, dissemination, documentation and
standardization
• There is no future for robotic operating systems without a developer/user community수 없다.
Cooperation with industrial robot vendors
• [吳越同舟] (ROS-Industrial)
• Industrial robot vendors can not disclose their technology, but industry-academia cooperation should be done
Catch hardware
• Hardware abstraction platform realization, standard/specification proposal, modularization hardware induction웨어 유도
Securing commercial viability, building a complete ecosystem
• ROS는 아카데믹적인 면에서 영향력을 발휘했지만 수익 면에서는 NAOqi 처럼 개발자의 수익도 염두 해둔 APP시장을 키워
야 더욱 풍부한 응용 애플리케이션 개발을 이끌 수 있다.
• 생태계(ECO system)
46
What the Future Robot Operating System should Have?
Function대동소 [大同小異]
• [大同小異]
• At first, there were features of each, but they are becoming similar while complementing each other
• Funcionality is essential, not discrimination
Community power
• It is very helpful to enhance functions, quick feedback, content creation, dissemination, documentation and
standardization
• There is no future for robotic operating systems without a developer/user community수 없다.
Cooperation with industrial robot vendors
• [吳越同舟] (ROS-Industrial)
• Industrial robot vendors can not disclose their technology, but industry-academia cooperation should be done
Catch hardware
• Hardware abstraction platform realization, standard/specification proposal, modularization hardware induction웨어 유도
Securing commercial viability, building a complete ecosystem Hardware Module + OS + App + User
• ECO system
• The ROS was academically influential. However, in terms of profits, it is necessary to develop the APP market with the
developer’s profit, like NAOqi, to lead to the development of rich advanced applications.
47
Question Time!
Advertisement #1
Download link
Language:
English, Chinese, Japanese, Korean
“ROS Robot Programming”
A Handbook is written by TurtleBot3 Developers
Advertisement #2
AI Research Starts Here
ROS Official Platform
TurtleBot3 is a new generation mobile robot that’s modular, compact and
customizable. Let's explore ROS and create exciting applications for education,
research and product development.
Direct Link
Advertisement #3
www.robotsource.org
The ‘RobotSource’ community is the space for people making robots.
We hope to be a community where we can share knowledge about robots, share
robot development information and experiences, help each other and collaborate
together. Through this community, we want to realize open robotics without disti
nguishing between students, universities, research institutes and companies.
Join us in the Robot community ~
END.