KEMBAR78
ROS 2.0 Features and Future Insights | PDF | Transmission Control Protocol | Multicast
0% found this document useful (0 votes)
200 views52 pages

ROS 2.0 Features and Future Insights

The document discusses ROS 2.0 and its key features including using DDS (Data Distribution Service) as its communication protocol. DDS uses RTPS which is based on UDP, allowing for high-speed communication like UDP but with reliability. DDS also enables auto-discovery so nodes do not need to know IP addresses or port numbers to communicate. The document provides background on limitations of ROS 1.x and motivations for ROS 2.0 such as supporting multiple robots, embedded systems, and real-time applications.

Uploaded by

aDun iDei
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
200 views52 pages

ROS 2.0 Features and Future Insights

The document discusses ROS 2.0 and its key features including using DDS (Data Distribution Service) as its communication protocol. DDS uses RTPS which is based on UDP, allowing for high-speed communication like UDP but with reliability. DDS also enables auto-discovery so nodes do not need to know IP addresses or port numbers to communicate. The document provides background on limitations of ROS 1.x and motivations for ROS 2.0 such as supporting multiple robots, embedded systems, and real-time applications.

Uploaded by

aDun iDei
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

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.

You might also like