More Related Content Similar to Hypha ROS X 星火計畫 ROS 2.0 Introduction [haochih, English ver] (20) Hypha ROS X 星火計畫 ROS 2.0 Introduction [haochih, English ver]3. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
About us
● Introduction
○ Website: https://hypharosworkshop.wordpress.com/
○ Github: https://github.com/Hypha-ROS/hypha-racecar
○ Facebook: https://www.facebook.com/HyphaROS/
○ Youtube: https://www.youtube.com/watch?v=jgS6gpmWPoY
○ Youku: http://i.youku.com/hypha
4. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
About us
● Introduction
○ Established date: April-2017
○ Self-organized Workshop: 3
○ Speech & Training: 8
○ Technical supports: > 10 universities/labs & > 5 companies
○ HyphaROS RaceCar ver 1.0 has been sold 30 units
○ HyphaROS RaceCar ver 2.0 released (for both indoor & outdoor scenario)
4
5. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
About us
● Introduction
○ Lecturer in “ROS Summer School in China 2017”
○ Presenter in “2017 WRC ROS Forum”
○ Main organizer of ROS.Taipei 2018 Developers Event
○ Product & Service [ROS]: Workshop, Technical Consultant, AGVs, Home robots, etc..
9. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
Known Issue of ROS 1.0
• Realtime performance
• Node management
• Master (roscore)
• Multi-robots capability (Swarm)
• Small processors
• Communication Priority
• Communication Security
• Unreliable network connectivity
Source: http://blog.ascens-ist.eu/wp-content/uploads/2011/03/13marxbots.jpg
Why ROS 2.0
10. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
Why ROS 2.0
● [ROS 1.0 Review] Establishing a topic connection
○ Subscriber starts.
○ Publisher starts.
○ Subscriber registers with the Master. (XMLRPC)
○ Publisher registers with the Master. (XMLRPC)
○ Master informs Subscriber of new Publisher. (XMLRPC)
○ Subscriber contacts Publisher to request a topic
connection and negotiate the transport protocol. (XMLRPC)
○ Publisher sends Subscriber the settings
for the selected transport protocol. (XMLRPC)
○ Subscriber connects to Publisher using
the selected transport protocol. (TCPROS, etc...)
figure source: http://wiki.ros.org/ROS/Technical%20Overview
13. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
Source: https://roscon.ros.org/2014/wp-content/uploads/2014/07/ROSCON-2014-Next-Generation-of-ROS-on-top-of-DDS.pdf
=
less time
spent here
more time to spent here
Why ROS 2.0
20. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
OpenSplice DDS
Source: DDS Tutorial PrismTech CTO, Angelo Corsaro 2015 june
● DDS provides a Distributed Data Space
abstracton where applicatons can
autonomously and asynchronously
read and write data enjoying spatal
and temporal decoupling
● Its built-in dynamic discovery isolates
applicatons from network to pology
and connectvity details
● DDS’ Data Space is completely
decentralised
24. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
Data Type: StockPrice
struct StockPrice
{
float price;
Time timeStamp;
char *symbol; //@key
};
Instance 1 = (Topic: “StockPrices”) + (Key: “MSFT”)
sample a, price = $28.00
sample b, price = $27.88
Instance 2 = (Topic: “StockPrices”) + (Key: “IBM”)
sample a, price = $74.02
sample b, price = $73.50
OpenSplice DDS
Source: https://community.rti.com/static/documentation/connext-dds
Source: DDS Tutorial PrismTech CTO, Angelo Corsaro 2015 june
29. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
User Code
ROS Client Lib
rclpy rclcpp Third Party
ROS Middleware
OpenSplice
RMW Impl.
FastRTPS
RMW Impl.
Third Party
RMW Impl.
PrismTech
OpenSplice
eProsima
FastRTPS
Third Party
DDS
User
Applications
Client
Wrapper
Middleware
DDS
DDS
agnostic
ROS
agnostic
ROS 2.0 Architecture Overview
32. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
ROS 2.0 Architecture Overview
●
register the DDS TypeCode with the DDS Participant
●
create a DDS Publisher, DDS Topic and DDS DataWriter
●
convert data from a ROS message into a DDS DynamicData instance
●
write the DDS DynamicData to the DDS DataWriter
Include “rclcpp/rclcpp.hpp”
rclcpp::Publisher ==> SharedPtr
create_publisher()
rclcpp/rclcpp/include/rclcpp/node_impl.hpp
rclcpp/rclcpp/include/rclcpp/create_publisher.hpp
rmw_create_publisher()
rcl/rcl/src/rcl/publisher.c
rmw/rmw/include/rmw/rmw.h
rmw_opensplice/rmw_opensplice_cpp/src/rmw_publisher.cpp
34. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
ROS 2.0 Architecture Overview
Pure DDS vs. ROS 2.0
DDS: create Publisher &
DataWriter (~80 lines)
ROS 2.0 for pub & sub
(< 10 lines) Source: OpenSplice DDS C Tutorial
35. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
ROS 2.0 Architecture Overview
[How to learn ROS 2.0]
●
ROS 2.0 Design:
http://design.ros2.org/
●
ROS 2.0 Wiki (Github):
https://github.com/ros2/ros2/wiki
●
ROS Discourse – Next Generation ROS:
https://discourse.ros.org/c/ng-ros
●
ADLINK-IST OpenSplice Online Doc:
http://download.prismtech.com/docs/Vortex/html/ospl/GettingStartedGu
ide/index.html
●
RTI Connext Online Doc:
https://community.rti.com/documentation
50. https://hypharosworkshop.wordpress.com/
Copyright © 2017 Hypha ROS Workshop. All rights reserved Lecturer: HaoChih, LIN
Q & A
Website: https://hypharosworkshop.wordpress.com/
Github: https://github.com/Hypha-ROS/hypha-racecar
FB Page: https://www.facebook.com/HyphaROS/
Youku: http://i.youku.com/hypha
Gmail: hypha.ros@gmail.com
WeChat (ID): HyphaROS