Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ROS and mROS: How to accelerate the development of robot systems and integrate embedded devices

1,033 views

Published on

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

Published in: Engineering
  • Be the first to comment

ROS and mROS: How to accelerate the development of robot systems and integrate embedded devices

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. ROS around the world!! 12 http://download.ros.org/downloads/ metrics/metrics-report-2018-07.pdf
  13. 13. ROS Robots 13https://robots.ros.org Aerial Marine Component Sensor Ground Manipulator Motor
  14. 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. 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. 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. 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. 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. 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
  20. 20. Overview of mROS 20 ROS node ROS node ROS master topic topic ROS node ROS node ROS mROS ROS compatible programming model mid-range embedded devices ROS node Contributions of mROS  Portability of ROS 1 packages to embedded devices  Enhancement of power saving & real-time performance for edge nodes on distributed robot systems
  21. 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
  22. 22. :inter-task communication :TCP/IP communication usertask1 (subnode) O subnode B A K XML_L A K XML_MA A K P B A K O pubnode O master embeddeddevice hostdevice usertask2 (pubnode) mROS comm. lib Tasks for mROS comm. lib. 22 TCPROS XMLRPC
  23. 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. 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. 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. 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. 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
  28. 28. Our activity: ZytleBot • Zynq + TurtleBot − Zynq: CPU + FPGA − TurtleBot: ROS standard platform robot kit • FPGA Usage − Image Preprocessing − HOG Feature Calculation 28
  29. 29. Our activity: ZytleBot 29 PS(CPU) PL(FPGA) PetaLinux(Ubuntu) Motor (via OpenCR) USB Webcam HOG IP PCam 5C Image Preprocessor DDR Diving System We got the 1st prize of FPT’18 FPGA Competition!!
  30. 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
  31. 31. ROSCon JP 2019!! • Localized ROSCon @ Japan 31 Call for Proposal -2019/06/10 Notification 2019/07/08 Early-bird reg. 2019/08/09 Late-rate reg. 2019/09/17 Conference 2019/09/24-25
  32. 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. 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

×