ASPDAC 2019 Designers’ Forum (Session 5A-2)
Robotics: From System Design to Application
http://tsys.jp/aspdac/2019/program/program_abst.html#5A-2
You can also check the slide following url since SlideShare service loses color in figures.
https://speakerdeck.com/takasehideki/ros-and-mros-how-to-accelerate-the-development-of-robot-systems-and-integrate-embedded-devices
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
ROS and mROS: How to accelerate the development of robot systems and integrate embedded devices
1. &
How to accelerate
the development of robot systems and
integrate embedded devices
Hideki Takase
(Kyoto University / JST PREST)
ASPDAC 2019 Designers’ Forum (Session 5A-2)
Robotics: From System Design to Application
2. Contents
• ROS: How to accelerate the development
− Background & Motivation
− History of robot software framework
− Features of ROS
− ROS 2: next-generation development platform
• mROS: How to integrate embedded devices
− Motivation & Our Strategy
− Overview & Structure
− Current Status & Case Study
• (One more thing??) EDAs for ROS/Robot
• Conclusion & Announcement
2
3. Background & Motivation
• Characteristics of robot systems
− Combination of a number of technology fields
(controlling, processing, automation, planning, AI, etc,,,)
− Interaction to the physical world
Mixed processing of real-time and non real-time
Huge amount of data to be operated
− Limited computational resources and power
3
Unified design framework would accelerate
development of robot systems
4. Robot Software Framework
• To accelerate the development,,,
− enhancing the reusability of modules
− managing inter-process and inter-system easily
4
CORBA-based architecture
http://openrtm.org/
Transport-neutral communication
http://www.yarp.it/
Mainly for kinematics and dynamics
http://www.orocos.org/
de-fact around the world!!
http://www.ros.org/
5. ROS History
2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
5
1st commit to SourceForge (Nov. 2007)
https://sourceforge.net/p/ros/code/1/log/?path=
http://www.ros.org/news/
2017/11/ros-turns-10.html
ROS 1.0 released
ROS 2 Alpha released
http://wiki.ros.org
6. What is ROS?
6
http://www.ros.org/about-ros/
ROS is not just framework,
but design platform for robots!!
• Plumbing: pub/sub messaging infrastructure
• Tools: configuring, debugging, visualizing, etc.
• Capabilities: broad collection of libraries
• Ecosystem: world-wide powerful community
7. Plumbing
• Publish / Subscribe messaging infrastructure
ROS is not OS, but middle-ware (on Ubuntu)
− ROS nodes for constructing the robot software
− Master (roscore) manages the registration of node
− service (synchronous comm.) is also supported
7
topic:A
topic:B
publish
pub
subscribe
sub
registration
reg
XMLRPC
TCPROS
service
node
node
node
master
node
node
8. Plumbing
• Benefits
− If a process/node crashes, it can be restarted
− A functionality can be exchanged by replacing node
8
topic:A
topic:B
publish
pub
subscribe
sub
registration
reg
XMLRPC
TCPROS
service
node
node
node
master
node
node
9. Tools
• catkin_tools: CLI of config. & build system
• rqt: Qt-based debugging framework
• gazebo: 3D physical simulation tool
• rviz: visualization tool
− and roslaunch, rosbag, tf, etc.,,,
9
10. Capabilities
• ROS package:
− a broad collection of libraries that implement
useful robot functionality
mobility, manipulation, perception, etc.,,,
− 2,000+ packages are available as open-source
• Advantages of package:
− enhance reusability of resources
− realize component based development approach
• Officially supported languages:
C++, Python, LISP
− Others: C#, Java, Lua, Go, ruby, etc.,,,
10
11. Ecosystem
• On-line community
− ROS Wiki: documentation & download site
− ROS Answers: Q&A community site
− ROS Discourse: announcement of release & events
• Off-line community
− ROSCon: international developers conference
− SIG meetups, tutorial workshop, local events, etc.,,,
11
12. ROS around the world!!
12
http://download.ros.org/downloads/
metrics/metrics-report-2018-07.pdf
14. Transition of Use Case
• Single robot
• Workstation-class
computational resource
• No real-time control
• Excellent connectivity
of network quality
• Application in research
14
• Multiple robots
• Demands for small
embedded platforms
• For real-time control
• Non-ideal networks
(loss and/or delay)
• Production environment
Development of has been started
from the ground up!!
15. New Features of ROS 2
• DDS (Data Distribution Service)
− ROS-like pub/sub transport protocol
No master is needed for managing comm.
− Technical credibility by OMG standard specification
15
https://speakerdeck.com/youtalk/dds?slide=12
16. New Features of ROS 2
• QoS control
− reliability, history policy,
and durability for each topic
• Lifecycle state machine
− 4 states with error handling
− State change is notified by topic
• Multi platform support
− Ubuntu, macOS, Windows
− (experimental) bare-metal / RTOS with tiny DDS
• And much more improvement,,,
16
17. Contents
• ROS: How to accelerate the development
− Background & Motivation
− History of robot software framework
− Features of ROS
− ROS 2: next-generation development platform
• mROS: How to integrate embedded devices
− Motivation & Our Strategy
− Overview & Structure
− Current Status & Case Study
• (One more thing??) EDAs for ROS/Robot
• Conclusion & Announcement
17
18. Motivation
18
• Enormous amount of
OSS packages
• Linux/Ubuntu is needed
• multi-platform support
including embedded
• Not so many packages
• Embedded technology would contribute to
power consumption & real-time capability
• There is no compatibility between ROS 1 and ROS 2
19. Our Strategy
19
lightweight runtime environment
that enables to integrate
embedded technology onto ROS 1 world
• Enormous amount of
OSS packages
• Linux/Ubuntu is needed
• power-efficient
• real-time capability
• Severe resource restriction
21. Software Structure
• mROS tasks can be designed by ROS APIs
− Device programing can be realized with mbed lib.
− Multi-tasks (multi-nodes) execution can be
realized by ITRON programming model
21
HW
mbed
TOPPERS/ASP kernel
mROS
communication library
application
lwIP (TCP/IP stack)
device drivers RTOS
(task scheduling &
resource management)
ROS compatible APIs
XMLRPC & TCPROS
HTTP method
23. Pub/Sub Flow
• Publication of mROS data to external ROS node
23
user task
XML_MAS
TASK
(1)
embedded device
advertise() ROS master
(2)
(3)
PUB
TASK
(4)
:XML-RPC
:TCPROS
:inter-task comm.
XML_SLV
TASK
ROS
sub node
(5) (6)
(7)
data queue
SUB TASK
(1)
(3)
(7)
ROS
pub node(8)
(4)(5)(6)
embedded device
user task
subscribe()
XML_MAS
TASK
(2)
ROS master
(9)
(8)
:XML-RPC
:TCPROS
:inter-task comm.
(10)
• Subscription from ROS node
24. Current Status
• Implementation target:
Renesas GR-PEACH
− 400 MHz Cortex-A9 processor
− 8 MB Flash memory
− Arduino compatible pins
− CMOS camera shield
• Memory size: 2.6MB
24
text data bss total
kernel 99,676 0 16,408 116,084
mbed lib. 264,477 52,940 45,711 363,128
mROS lib. 57,950 28 2,097,310 2,155,288
total 422,103 52,968 2,159,429 2,634,500
25. Case Study:
distributed edge detection system
25
nodes
executed
on mROS
nodes on
native ROS1
edge
detection
result
original
camera
image
Ported node from ROS package
onto embedded device!!
26. Contents
• ROS: How to accelerate the development
− Background & Motivation
− History of robot software framework
− Features of ROS
− ROS 2: next-generation development platform
• mROS: How to integrate embedded devices
− Motivation & Our Strategy
− Overview & Structure
− Current Status & Case Study
• (One more thing??) EDAs for ROS/Robot
• Conclusion & Announcement
26
27. EDAs for ROS / Robot
FPGA would contribute to the evolution of ROS!!
27
https://roscon.ros.org/2017/presentations/
ROSCon%202017%20ROS%20Compliant%20FPGA.pdf
30. Conclusion
• ROS is not just framework,
but design platform for robot software
• Development of ROS 2 has been started
− DDS, QoS control, Lifecycle, multi-platform,,,
• mROS: a light-weight runtime environment
− Portability of ROS 1 packages to embedded devices
− Enhancement of power saving & real-time perf.
• FPGA would contribute to the evolution of ROS
30github.com/tlk-emb/mROS
32. Acknowledgements & References
• Acknowledgement: The part of this work was supported by JST,
PRESTO Grant Number JPMJPR18M8, Japan.
• Yutaka Kondo: Getting Started with ROS 2 / DDS, ROS Japan User
Group #27, Dec 2018. https://speakerdeck.com/youtalk/dds
• Geoffrey Biggs: Introduction of Next-Generation Robot Framework
ROS 2 (in Japanese), 20th Summer Workshop on Embedded System
Technologies (SWEST20), Aug 2018.
https://swest.toppers.jp/SWEST20/program/s2a.html#s2
• Tully Foote: ROS Community Metrics Report, Jul 2018.
http://download.ros.org/downloads/metrics/metrics-report-2018-07.pdf
• Dirk Thomas, Mikael Arguedas: The ROS 2 Vision -For Advancing the
Future of Robotics Development-, ROSCon 2017, Sep 2017.
https://roscon.ros.org/2017/presentations/ROSCon%202017%20ROS2%
20Vision.pdf
32
33. Acknowledgements & References
• ROS Wiki: http://wiki.ros.org
• ROS Answers: https://answers.ros.org
• ROS Discourse: https://discourse.ros.org
• Hideki Takase, Tomoya Mori, et al.: Work-in-Progress: Design Concept
of a Lightweight Runtime Environment for Robot Software Components
Onto Embedded Devices, Proc. of EMSOFT, Oct 2018.
https://ieeexplore.ieee.org/document/8537199
• Yasuhiro Nitta, Sou Tamura, Hideki Takase: A Study on Introducing
FPGA to ROS Based Autonomous Driving System, Proc. of FPT, Dec 2018.
• Takeshi Ohkawa, Yutaro Ishida, Yuhei Sugata, Hakaru Tamukoh:
ROS-Compliant FPGA Component Technology - FPGA installation into
ROS, ROSCon 2017, Sep 2017.
https://roscon.ros.org/2017/presentations/ROSCon%202017%20
ROS%20Compliant%20FPGA.pdf
33
Hinweis der Redaktion
Thank you very much for the kind introduction.
I'm Hideki Takase from Kyoto University, and also from Japan Science and Technology Agency.
It’s my pleasure to present at ASPDAC 2019 Designers’ Forum.
Today, I would like to talk about rapid design platform for robot software.
My talk mainly consists of two part.
In the 1st part, I introduce ROS, that stands for Robot Operating System.
ROS is a state-of-the-art design framework for robot software. ROS can accelerate your development of the robot systems.
In the 2nd part, I will share our research activity about mROS.
mROS is a lightweight runtime environment of ROS 1 node.
It would realize the integration of embedded technology onto ROS systems.
OK, let’s go to the 1st part.
First of all, I want to discuss the characteristics of robot systems.
Robot systems are realized as the combination of a number of technology fields such as controlling, processing, automation, planning, and of course AI.
One of the most important but difficult aspect of robot systems is the real-time interaction to the physical world including human. Robot should treat a huge amount of data while its operation.
Robot systems are required to design with limited amount of resources. In addition, the amount of power consumption often becomes severe problem.
So, we can conduct that an unified design framework would solve these issues.
Several framework have been published so far.
These software frameworks can accelerate your development to enhance the reusability of robot modules and manage the communication at inter-process and inter-machine.
Orocos, that stands for Open Robot Control Software, is portable C++ libraries for advanced machine and robot control.
YARP stands for Yet Another Robot Platform. It offers transport-neutral communication framework, and supports building a robot control system as a collection of programs communicating in a peer-to-peer way.
OpenRTM is the CORBA-based framework to construct distributed robot systems.
I believe Robot Operating Systems is de-fact standard framework around the world. ROS is an open-source and flexible framework for developing robot software.
ROS can provide almost all functionality you need.
ROS has a history of over 10 years.
The project of ROS was started on November 2007., A head of development to ROS is OSRF, stands for Open Source Robotics Foundation. They develop the core component of ROS and maintain the ROS packages.
1st primary version of ROS 1 was released on May 2010. Recently, there is a ROS release every year in May. Releases on even numbered years will be a LTS release, supported for five years. The release number of ROS is attached with a code name derived from a turtle.
In 2015, the development of ROS 2 was started and its alpha version was released. I will explain the detail of update for ROS version 2.
This picture is a screenshot of web page that states the overview of ROS. I will read out this statement.
ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.
Box Turtle / C Turtle / Diamondback / Electric / Fuertre / Groovy / Hydro / Indigo / Jade / Kinetic Kame / Lunar / Melodic
Melodic Morenia / Kinetic Kame / Indigo Igloo
Ardent Apalone (Dec 2017)
Bouncy Bolson (Aug 2018)
Crystal Clemmys (Dec 2018)
ROS is not just framework, but design platform to accelerate the development of robot systems.
There is 4 features for ROS, plumbing, tools, capabilities, and ecosystems.
Plumbing means the publish / subscribe messaging infrastructure.
ROS offers powerful tools to support configuring, debugging, and visualizing tasks.
Capabilities means a broad collection of libraries.
Finally, ROS project is organized by the world-wide community.
Next, I will explain these features in detail.
The computational unit is expressed as node in ROS application. Nodes can communicate their data through a topic.
ROS offers the publish-subscribe messaging infrastructure designed to support the quick and easy construction of distributed computing systems.
Master of ROS systems (roscore) manages the communication of ROS nodes.
There is two protocols to realize pub/sub communication on the ROS systems.
XMLRPC performs the registration for communication.
TCPROS/UDPROS is the communication protocol between nodes on TCP/IP or UDP.
Synchronous communication is also supported as the ROS function.
Benefits of publish / subscribe based ROS transport is that if a process/node crashes, it can be restarted independently.
In addition, a functionality can be exchanged by replacing a process/node that provides it.
These are suitable for constructing distributed systems by component based development manner.
Second feature of ROS is powerful tools.
The most important tool in development is catkin_tools. It is the command line interface based on cmake for configuring and building ROS systems.
Qt-based framework rqt would help you for debugging of systems. For example, rqt_graph such as this picture can indicate the communication structure of nodes and topics.
Gazebo is an animation tool for 3D physical behavior. ROS integrates Gazebo's functionality to simulate the interaction for physical world like this figure.
Rviz is GUI based visualization tool.
ROS also offers a broad collection of libraries that implement useful robot functionality, with a focus on mobility, manipulation, and perception. They are expressed as packages in the ROS platform.
Over 2,000 packages have been available as open source. They can enhance the reusability of existing design resource. We can utilize these packages to prevent re-inventing the wheels.
In ROS, C++, Python and LISP are officially supported as the ROS client libraries.
ROS is supported and improved by a large community, with a strong focus on integration and documentation.
ROS Wiki, Answers and discourse are organized as the online community. ROS Wiki is the official site for documentation and downloading. ROS Answers is a Q&A site like stack overflow. The announcement of release for new packages and related events are posted on ROS Discourse.
Of course ROS project employs GitHub to develop the core component and packages. You can join the project by PR, issue, and so on.
For the offline event, ROSCon is the most important developers conference for ROS community. ROSCon is held on every year. Over 500 developers participates this conference and discuss the future direction of ROS. All presentation video and slide on ROSCon are available online.
Next ROSCon will take place October 31st to November 1st at Macao.
ミネソタ シュツットガルト
ICRAは5月頃ICRA: International Conference on Robotics and AutomationIROS: International Conference on Intelligent Robots and Systems
OSRF publish the metrics report every year. This figure shows the number of visitors from the world to ROS Wiki. We can understand users of ROS are all around the world. The largest number of users is of course America. China is the second place and Japan is third.
This figure is the group photo of ROSCon 18's participants at Madrid. Can you find me from this picture? Maybe I'm around here.
Robots with ROS have already been everywhere.
The most frequently used application of ROS is aerial and ground applications such as drone and autonomous self-driving vehicle. Industrial robots such as robot arm on the factory production line is also important application for ROS.
Recently, ROS has been contributing to the development of new fields to robot systems, such as marine and space.
ROS can be installed to not only whole robot systems but also respective components such as robot module, board, sensor and motor. We can construct robot systems by using these components with ROS.
ROS began life as the development environment for the Willow Garage PR2 robot. Their primary goal was to provide the software tools that users would need to undertake novel research and development projects with the PR2. At the same time, they wanted ROS to be useful on other robots. So they put a lot of effort into defining levels of abstraction that would allow much of the software to be reused elsewhere.
Still, they thought the PR2 use case as follows.
Existing a single robot, and it has workstation-class computational resources on board.
No real-time requirements or any real-time requirements would be needed in a special-purpose manner.
There is excellent network connectivity that means wired or close-proximity high-bandwidth wireless.
And they thought ROS user's main applications are in research.
However, the use case and demand of ROS users have been changing in recent years.
Specific interest for the ongoing and future growth of the ROS community are the following use cases.
Uses want to build multi-robot systems using the ROS platform.
And also, we want small computers, including “bare-metal” micro controllers.
In addition, we want to support real-time control directly in ROS, including inter-process and inter-machine communication.
We want ROS to behave as well as is possible when network connectivity degrades due to loss and/or delay.
Finally, we want to ensure that ROS-based prototypes can evolve into ROS-based products, that are suitable for use in real-world applications.
Therefore, we have been started to develop next generation ROS platform from the ground up.
So, I explain the improvement of ROS 2 in detail.
The most important update is employment of DDS, stands for data distribution service.
DDS is the ROS-like publish / subscribe transport protocol which is technically certified as OMG standard specification. Several vendors have already released high quality DDS implementation. While communication function of ROS 1 was heavily dependent on the implementation of the open source product, the function of ROS 2 is now dependent from network protocol by focusing DDS abstraction layer. Therefore, we can choose suitable DDS implementation as ROS 2 components according to capability, license, and price you prefer.
The main contribution to employ DDS is that master-less communication among nodes can be realized. It means that building multi-robot systems can became easily with next generation ROS platform.
Second important update is the configuration of Quality of Service for the communication.
We can configure reliability, history policy, and durability for each topic according to its network environment. Therefore, we can utilize ROS 2 communication protocol to poor-quality WiFi or ground-to-space communication links.
Lifecycle state machine is also introduced as the ROS 2 feature. In ROS 1, node can take only dead or alive states and wait busy loop for node activation. In ROS 2, node can take 4 states, active, inactive, finished and unconfigured with error handling. State of node is changed by the notification with topic.
QoS control and Lifecycle can contribute to enhance real-time performance for the robot systems.
In addition, multi platform support is realized on ROS 2.
While ROS 1 is only being CI tested on Ubuntu officially by OSRF, ROS 2 is currently being CI tested and supported on Ubuntu 18.04, OS X El Capitan as well as Windows 10 Professional. ROS community is trying to implement ROS 2 function onto the bare-metal embedded environment or RTOS environment with tiny DDS implementation.
OK, let’s go to the 2nd part.
I would like to share our research activity in this part.
mROS is a lightweight runtime environment of ROS 1 node.
Embedded technology can be integrated onto ROS systems by our research.
At first, let's review the contribution of ROS 1 and ROS 2.
The main advantage of ROS 1 is a huge number of open source packages. We can start the development by utilizing these existing packages. However, one of the serious issue for ROS 1 is that we must employ Desktop version of Linux to operate ROS1 nodes. It means that we should select high-performance and power-hunger devices, such as AARCH64 or x86 CPU.
We think use of embedded technology would contribute to power consumption & real-time capability for robot systems. ROS 2 tries to introduce embedded device to the ROS systems. However, there is no compatibility between ROS 1 and ROS 2. It is hard to port the implementation of ROS 1 package to ROS 2 directly. So, ROS developer should implement package of ROS 2 from the ground up.
So, we would like to propose mROS, that is a lightweight runtime environment for ROS1 node onto embedded devices.
mROS can integrate embedded technology easily onto robot systems.
This figure shows the overview of mROS. We assumed the distributed systems consists of the host and edge devices which are connected by network.
mROS is assumed to be operated on the mid-range embedded systems as edge devices. We design mROS programming model to be compatible to original ROS.
Therefore, we can summarize the contributions of mROS are as followings.
mROS has the compatibility to ROS 1 at API level. So, we can port and operate ROS 1 packages onto embedded devices directly.
It also means that power saving & real-time performance can be improved on the edge nodes of distributed robot systems
This figure shows software structure of mROS.
We employ lwIP as TCP/IP protocol stack that is included in ARM mbed library. We also employ TOPPERS/ASP kernel as real-time operating systems for task scheduling and resource management about ROS communication.
You can design mROS tasks with ROS compliant APIs. You can also develop embedded device drivers with mbed library. ITRON programming model could help you if you wish to realize multi-tasking.
There is four system tasks to realize mROS communication function.XML_MASTER and SLAVE tasks perform the behavior of XMLRPC protocol. They manage the registration of mROS node to roscore on the host computer.
PUB and SUB tasks perform TCPROS protocol. They realize ROS compiliant pub/sub communication with another ROS/mROS nodes.
These figures show the data flow of pub/sub communication between mROS and ROS.
Inter-task communication is designed with data queue & shared memory.
Due to the time limitation, I cannot explain them in detail. Please let me know if you are interested in the implementation after this session.
advertise() registers with the ROS master as a publisher.
(1) It notifies the initialization request of the topic name for subscription to XML_MAS TASK via the data queue. XML_MAS TASK assigns the node ID to the user task and registers it to the node list of mROS.
(2) XML_MAS TASK generates the XML header and send it to ROS master.
(3) ROS master replies the result of registration about XML-RPC communication.
(4) XML_MAS TASK notifies the message ID for initialization to PUB TASK via the data queue. PUB TASK performs corresponding
initialization process and generates the object
of TCP socket for data publication. When initialization of the publisher node is completed, XML_SLV TASK starts the
acceptance of the connection request from the external subscribe node.
(5) When the topic request from the external subscribe node occurs, XML_SLV TASK that is executed periodically returns the TCPROS port number of the PUB TASK as the response.
(6) XML_SLV TASK sends the arrival request to PUB TASK.
(7) PUB TASK accepts the connection of TCPROS and exchange TCPROS connection headers to establish the connection for the TCP socket of data subscription.
Next, we would like to share the current implemetation status of mROS.
We use GR-PEACH embedded board provided by Renesas Electronics. It has 400MHz processor and 8MB memory.
Memory footprint of current implementation on GR-PEACH is about 2.6MB. You can save memory size by configuring the region for inter-task communication that was occupied about 2MB. The region for inter-task communication can be reduced according to the application requirement.
Finally, we show the case study of mROS. We develop the distributed edge detection system by using mROS.
The right side indicates original image captured by GR-PEACH camera. The left is the result of edge detection performed by our ROS system. You can recognize that mROS and ROS nodes cooperatively perform to realize edge detection from this rqt_graph screen.
This is image conversion node to resize camera image. It could be ported from existing ROS package directly onto the embedded device.
As the one more thing, we would like to discuss how EDA technology contribute to ROS and development of the robot systems.
I think FPGA is one of the key technology for evolving ROS and robot systems.
FPGA is suitable for such robot systems since FPGA has flexibility and power-efficient capability.
My research partners at Utsunomiya University and Kyushu Institute Technology have already proposed several technologies that can install FPGA easily to robot systems.
I think such research will become one of the trend in the EDA filed.
Finally, I would like to share our research activity about FPGA.
We are developing ZytleBot. ZytleBot is the name of our robot, which comes from Zynq + TurtleBot.
As you may know, Zynq is All programmable SoC developed by Xilinx, which has CPU and FPGA. Ubuntu OS is working on CPU, ARM Processor. TurtleBot is an educational robot and standard platform for ROS.
We have installed FPGA onto the autonomous self-driving robot.
As I explained. we can use various useful package, and powerful simulation environment. We used the ROS package to control the motor.
We have offloaded two high load calculations to FPGA. First is the image preprocessing of the road image. HW core executes edge detection.
Second is the detection of traffic signal. FPGA calculates HOG feature, that is histogram of oriented gradients.
This figure shows the configuration of ZytleBot, and this is the movie of the ZytleBot at the FPT’18 FPGA Design Competition. We got the 1st prize with ZytleBot in this competition.
We are planning to share our research achievement and implementation of ZytleBot not only to ROS community but also to academia such as EDA researchers.
I would like to announce the ROSCon JP 19. I am one of the organizing committee members of this event.
It is a localized event of developer conference for ROS. And it will be held on September at Tokyo.
If you can speak Japanese, please keep your schedule and consider participating to ROSConJP.
If you cannot speak Japanese, let us meet again in ROSCon19 Macao.