SlideShare a Scribd company logo
1 of 23
Download to read offline
© 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 ON VXWORKS
CHALLENGES IN PORTING A MODERN SOFTWARE
FRAMEWORK TO AN RTOS
A N D R E I K H O L O D N Y I , P R I N C I P A L T E C H N O L O G I S T , T E C H N O L O G Y O F F I C E
2 © 2019 WIND RIVER. ALL RIGHTS RESERVED. AUTOSAR 07-Nov-2018
 What Is VxWorks?
 Why Is ROS 2 on VxWorks?
 ROS 2 at Wind River (Why We Are Doing It)
 Technical Challenges
 Non-technical Challenges
 Conclusions and Next Steps
> ADAS/HAD, Connected Vehicle, IVI, OTA, Automotive
Security
> ROS 2 Mobile Robotics
> Products, Solutions; Partnerships & University Programs
FOCUS
> First GENIVI Linux based IVI project development for BMW
> AdvancedTCA (Networking) for Alcatel and Lucent
> Leadership and delivery of IVI, telematics, and connectivity
projects
> Thematic pathfinding for the new technologies (autonomous
robotics, dependability)
> Continuous innovation
> Improvement for existing and creation of new company
products
> Participation in alliances (GENIVI, FASTR, AUTOSAR
Adaptive, PICMG)
RELEVANT PROJECTS (selection)Andrei Kholodnyi
Principal Technologist
CTO Office
TOPICS OF MY TALK TODAY
3 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
CHEMICAL SECTOR COMMERCIAL BUILDING SECTOR COMMUNICATIONS SECTOR
CRITICAL MANUFACTURING SECTOR DAMS SECTOR
AEROSPACE AND DEFENSE SECTOR
EMERGENCY SERVICES SECTOR ENERGY SECTOR
FINANCIAL SERVICES SECTOR FOOD AND AGRICULTURE SECTOR GOVERNMENT BUILDING SECTOR
MEDICAL SECTOR
IT SECTOR
NUCLEAR SECTOR TRANSPORTATION/AUTO SECTOR WATER AND WASTEWATER SECTOR
3 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
TSN
 Hard RT
 safety
 TSN
 Soft RT
 non-safety
 TSN
TSN
EDGE COMPUTE
GATEWAY COMPUTE
COMPUTECOMPUTE
TITANIUM (STARLING X)
ARM / INTEL
Linux
ROS2 FRAMEWORK
ROS2 APPSROS2 APPS
ROS2 FRAMEWORK
Linux
NXP LS1028 TSN SWITCH
VxWorks / Linux
ROS2 FRAMEWORK
ROS2 APPS
Hypervisor
ARM /Intel HW
ROS2 FRAMEWORK
ROS2 Apps
Hypervisor
ROS2 Apps
VxWorks WRLinux
ARM /Intel HW
ROS2 FRAMEWORK
ROS2 Apps
Hypervisor
ROS2 Apps
VxWorks WRLinux
ETHERNET
SIMULATE LEARN
INTEL CPU / INTEL ML
ML FRAMEWORK
ML
INTEL CPU / NVIDIA GPU
SIMULATION ENGINE
LG OR GAZEBO SIMULATION
INDUSTRIAL PROFILE
MCU HW
ZEPHYR
MICRO ROS OR ROS2
MCU HW
ZEPHYR
MICRO ROS OR ROS2
MCU HW
ZEPHYR
MICRO ROS OR ROS2
5 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
 32/64 bits on Arm/Intel/MIPS/PowerPC
 Proprietary real-time OS, POSIX PSE52
 Kernel/user space separation, user space optional
 C/C++11/14, possible to develop kernel C++ modules and user apps
 Safety certifiable: DO-178, ISO 26262, IEC 61508
 Toolchain LLVM 8, Dinkumware C/C++ libs
 Proprietary build system
 Kernel shell
 Eclipse-based IDE, Windows/Linux hosts
WHAT IS VXWORKS RTOS?
6 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
NASA
MITSUBISHI ELECTRIC
7 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
WHY ROS 2 AT WIND RIVER
 Show VxWorks running robotics platform based on ROS 2
 Engage with R&D customers already interested in leveraging ROS 2
 Upstream ROS 2 changes back to the community
 Identify challenges in porting a modern software framework (with Python,
Boost, cmake, etc.) to VxWorks and address those challenges
 Provide some hints (common problem-solving patterns) for how to build
Linux applications under VxWorks
 Identify gaps in a development workflow (VxWorks versus Linux) and
address those gaps
8 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 IN KEYWORDS (2017)
⋮⋮⋮ ROS 2
VxWorks
9 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 IN KEYWORDS (2017)
!!!Pain!!!
alone
⋮⋮⋮ ROS 2
VxWorks
10 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 IN KEYWORDS (2019)
Helix Virtualization Platform
meta-rosWind River LabsAutoware
EWC2020 AUTOSAR Adaptive
VxWorksTitanium turtlebot3
microROS
DDS eProsima ROS communityROS-IndustrialDocker
MUSL
LG RPI4UP2
Wind River LinuxIP ReviewDeveloper Journey LLVM GPL
Apollo Digital Twin Training BlogWebinarSimulation
DashingUSB2Serial ROS 2 LabZephyr
ARM SDKTSN CES2020 Intel UMLROS2019 ⋮⋮⋮ ROS 2
11 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
THE ‘RIPPLE’ EFFECT OF ROS 2
ROS 2
12 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 DASHING RELEASE VXWORKS PORT
ROS 2 dependencies: ASIO, tinyxml2, OpenCV
LLVM C++11/C++14
VxWorks SR620
ROS 2 VxWorks SDK
Python 3.8
Cmake / autotools build primitives
Intel 64-bit / Arm / QEMU
POSIX
https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos
• Complete ROS 2 Dashing release has been ported to
VxWorks
• Build using colcon, the same look and feel as a native ROS
2 build (command line)
• OpenCV integration
• Python (ported, not tested)
• Only graphical packages (like RViz) are not ported and stay
on Ubuntu
based on the ROS 2 dashing release
approx. 200 ROS 2 packages
OSS_BUILD layer
UNIX_EXTRA layer
ROS 2 apps
13 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
https://labs.windriver.com
(ROS 2 ON VXWORKS, WIND RIVER LINUX)
14 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
VXWORKS7-ROS2-BUILD (A HELPER REPO)
 https://github.com/Wind-River/vxworks7-ros2-build
 Makefile build: BUILD_TYPE=Debug BOARD=up2 make
 Set of scripts to build:
– bootloader, kernel, userspace, ROS2, and the rootfs (boot from the USB stick)
 Board support:
– UP, UP2, RPI3/RPI4, VxWorks Simulator, QEMU, and others
 Docker build:
– VxWorks product install
15 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
VXWORKS7-LAYER-FOR-ROS2
 https://github.com/Wind-River/vxworks7-layer-for-ros2
 VxWorks layers (build infrastructure):
– OSS_BUILD, UNIX_EXTRA
 VxWorks layers (ROS 2 dependencies):
– ASIO, tinyxml2
 ROS 2 patches:
– fastcdr, fastrtps, rcl, rclutils, etc.
16 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 BUILD UNDER VXWORKS
 From the command line (ROS 2 native build)
– colcon build --symlink-install --cmake-force-configure --cmake-args -DBUILD_TESTING=OFF
 The same look and feel as a ROS 2 native build
– ./wrenv.linux –p vxworks-7 && ./vxworks_env.sh
– colcon build --symlink-install --cmake-force-configure --cmake-args -
DCMAKE_TOOLCHAIN_FILE=$VSB_DIR/buildspecs/cmake/rtp.cmake -
DCMAKE_PREFIX_PATH=$PRJ_WS/install;$VSB_DIR/usr/root -DBUILD_TESTING=OFF
17 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
DUMMY ROBOT
18 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
 IP compliance !!!
 Missing libraries (ROS 2 dependencies need to be ported)
 Missing UNIX functions (e.g., fnmatch, memccpy, some others)
 cmake support in VxWorks is good, but not good enough
 Missing autotools support under Windows
 Dinkum C++ library is not equal to stdlibc++
 Python support is missing in VxWorks
CHALLENGES IN PORTING A MODERN
SOFTWARE FRAMEWORK (BASED ON THE
LATEST VXWORKS RELEASE)
19 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
IP COMPLIANCE
 ROS 2 license is fine (BSD 3-Clause), but …
 There are many dependencies that have different licenses
– ASIO (Boost Software License)
– EIGEN (Mozilla Public License 2.0, GPL and other licenses )
– PCL (BSD license)
– POCO (Boost Software License)
– TINYXML (zlib License)
– TINYXML2 (zlib License)
 This is a real problem for customers who want to run their software on top of it
 Would be good to review a complete licenses list
20 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 DEPENDENCIES
 Some of them are not really necessary (e.g., difficult to certify, not
needed for non-Windows systems)
– POCO
– ASIO (from FastRTPS)
– tinyxml vs tinyxml2
 ROS 2 dependencies need to be ported
– Not a straight (colcon) way to port them in compare to ROS 2 packages
 Missing UNIX/Linux functions
– fnmatch, memccpy, some others
 Probably we need a version without some dependencies
– POCO is a good example (used to run ROS 2 under Windows)
21 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
ROS 2 EMBEDDED VS. ROS 2 FULL
Embedded
– No HMI (meant graphics)
– No visualization tools (Qt, Rviz…)
– No simulation tools (Gazebo)
– No Python
– Remove some dependencies
To make it possible building a ROS2 embedded version
22 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
CONCLUSIONS AND NEXT STEPS
 ROS 2 runs on VxWorks (great experience)
 Current results are published on https://labs.windriver.com
 Docker-based host environment that can be used for reproducible cross-platform
builds
 Make VxWorks officially supported by ROS 2 Dashing
 Provide non-commercial VxWorks SDK for RPI4
 Real-time performance tests: VxWorks, real-time ROS2 working group
 Python: VxWorks integration and test
 Windows development host support: test VxWorks build
23 © 2019 WIND RIVER. ALL RIGHTS RESERVED.

More Related Content

What's hot

An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym Lotar
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP serverKazuho Oku
 
Introduction of android treble
Introduction of android trebleIntroduction of android treble
Introduction of android trebleBin Yang
 
Top frontend web development tools
Top frontend web development toolsTop frontend web development tools
Top frontend web development toolsBenji Harrison
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
Vijay kumar java developer_resume
Vijay kumar java developer_resumeVijay kumar java developer_resume
Vijay kumar java developer_resumeVijay Kumar
 
Customizing nopCommerce with Plugins and Themes
Customizing nopCommerce with Plugins and ThemesCustomizing nopCommerce with Plugins and Themes
Customizing nopCommerce with Plugins and ThemesGaines Kergosien
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Devathon
 
TRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch HaimTRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch Haimharryvanhaaren
 
Summer Training In Java
Summer Training In JavaSummer Training In Java
Summer Training In JavaDUCC Systems
 
Reusing your existing software on Android
Reusing your existing software on AndroidReusing your existing software on Android
Reusing your existing software on AndroidTetsuyuki Kobayashi
 
ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...
ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...
ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...ON.LAB
 
Google flutter and why does it matter
Google flutter and why does it matterGoogle flutter and why does it matter
Google flutter and why does it matterAhmed Abu Eldahab
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform rockplace
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
OpenShift Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
OpenShift  Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud OpenShift  Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
OpenShift Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud Hidetsugu Sugiyama
 

What's hot (20)

An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
 
Introduction of android treble
Introduction of android trebleIntroduction of android treble
Introduction of android treble
 
Top frontend web development tools
Top frontend web development toolsTop frontend web development tools
Top frontend web development tools
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
Vijay kumar java developer_resume
Vijay kumar java developer_resumeVijay kumar java developer_resume
Vijay kumar java developer_resume
 
Customizing nopCommerce with Plugins and Themes
Customizing nopCommerce with Plugins and ThemesCustomizing nopCommerce with Plugins and Themes
Customizing nopCommerce with Plugins and Themes
 
Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020Flutter vs React Native Development in 2020
Flutter vs React Native Development in 2020
 
TRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch HaimTRex Traffic Generator - Hanoch Haim
TRex Traffic Generator - Hanoch Haim
 
Summer Training In Java
Summer Training In JavaSummer Training In Java
Summer Training In Java
 
Reusing your existing software on Android
Reusing your existing software on AndroidReusing your existing software on Android
Reusing your existing software on Android
 
ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...
ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...
ONOS: Open Network Operating System. An Open-Source Distributed SDN Operating...
 
Google flutter and why does it matter
Google flutter and why does it matterGoogle flutter and why does it matter
Google flutter and why does it matter
 
React introduction
React introductionReact introduction
React introduction
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
OpenShift Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
OpenShift  Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud OpenShift  Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
OpenShift Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
 
Intro to Java
Intro to JavaIntro to Java
Intro to Java
 
Estilos en React con styled-components
Estilos en React con styled-componentsEstilos en React con styled-components
Estilos en React con styled-components
 

Similar to ROS2 on VxWorks - Challenges in porting a modern, software framework to RTOS

ROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River LabsROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River LabsAndrei Kholodnyi
 
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...Hidetsugu Sugiyama
 
Flutter Vikings 2022 - Full Stack Dart
Flutter Vikings 2022  - Full Stack DartFlutter Vikings 2022  - Full Stack Dart
Flutter Vikings 2022 - Full Stack DartChris Swan
 
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...Ian Choi
 
micro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollersmicro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollerseProsima
 
Highilights from Rod Randall (SIRIS/Stratus) LTE Asia
Highilights from Rod Randall (SIRIS/Stratus) LTE AsiaHighilights from Rod Randall (SIRIS/Stratus) LTE Asia
Highilights from Rod Randall (SIRIS/Stratus) LTE AsiaAlan Quayle
 
Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016Atomu Hidaka
 
Introduction to Open-O
Introduction to Open-OIntroduction to Open-O
Introduction to Open-OLF Events
 
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪MAKERPRO.cc
 
Android containerization in brief
Android containerization in briefAndroid containerization in brief
Android containerization in briefPo-wen Cheng
 
Container based android
Container based androidContainer based android
Container based androidLihan Chen
 
“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...
“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...
“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...Edge AI and Vision Alliance
 
2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application server2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application serverVOIP2DAY
 
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for RobotsFIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for RobotsFIWARE
 
OpenChain AutomotiveWG(OSS license tools()
OpenChain AutomotiveWG(OSS license tools()OpenChain AutomotiveWG(OSS license tools()
OpenChain AutomotiveWG(OSS license tools()Yuichi Kusakabe
 
Webinar Roadmap TotalCross 2020
Webinar Roadmap TotalCross 2020Webinar Roadmap TotalCross 2020
Webinar Roadmap TotalCross 2020Bruno Muniz
 
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...Cisco Canada
 

Similar to ROS2 on VxWorks - Challenges in porting a modern, software framework to RTOS (20)

ROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River LabsROS2 on VxWorks - one project on Wind River Labs
ROS2 on VxWorks - one project on Wind River Labs
 
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
Kubernetes Native Infrastructure and CoreOS Operator Framework for 5G Edge Cl...
 
Flutter Vikings 2022 - Full Stack Dart
Flutter Vikings 2022  - Full Stack DartFlutter Vikings 2022  - Full Stack Dart
Flutter Vikings 2022 - Full Stack Dart
 
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
한국통신학회 워크샵: SDN/NFV for Secure Services - Understanding Open Source SDN Contr...
 
micro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollersmicro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollers
 
Highilights from Rod Randall (SIRIS/Stratus) LTE Asia
Highilights from Rod Randall (SIRIS/Stratus) LTE AsiaHighilights from Rod Randall (SIRIS/Stratus) LTE Asia
Highilights from Rod Randall (SIRIS/Stratus) LTE Asia
 
Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016Llilum 161108 at MVP Global Summit 2016
Llilum 161108 at MVP Global Summit 2016
 
Introduction to Open-O
Introduction to Open-OIntroduction to Open-O
Introduction to Open-O
 
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
 
Sa*ple
Sa*pleSa*ple
Sa*ple
 
ARM
ARMARM
ARM
 
Android containerization in brief
Android containerization in briefAndroid containerization in brief
Android containerization in brief
 
Container based android
Container based androidContainer based android
Container based android
 
“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...
“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...
“Introducing the Kria Robotics Starter Kit: Robotics and Machine Vision for S...
 
2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application server2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application server
 
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for RobotsFIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
 
OpenChain AutomotiveWG(OSS license tools()
OpenChain AutomotiveWG(OSS license tools()OpenChain AutomotiveWG(OSS license tools()
OpenChain AutomotiveWG(OSS license tools()
 
Webinar Roadmap TotalCross 2020
Webinar Roadmap TotalCross 2020Webinar Roadmap TotalCross 2020
Webinar Roadmap TotalCross 2020
 
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
Software Innovations and Control Plane Evolution in the new SDN Transport Arc...
 
Arm
ArmArm
Arm
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 

ROS2 on VxWorks - Challenges in porting a modern, software framework to RTOS

  • 1. © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 ON VXWORKS CHALLENGES IN PORTING A MODERN SOFTWARE FRAMEWORK TO AN RTOS A N D R E I K H O L O D N Y I , P R I N C I P A L T E C H N O L O G I S T , T E C H N O L O G Y O F F I C E
  • 2. 2 © 2019 WIND RIVER. ALL RIGHTS RESERVED. AUTOSAR 07-Nov-2018  What Is VxWorks?  Why Is ROS 2 on VxWorks?  ROS 2 at Wind River (Why We Are Doing It)  Technical Challenges  Non-technical Challenges  Conclusions and Next Steps > ADAS/HAD, Connected Vehicle, IVI, OTA, Automotive Security > ROS 2 Mobile Robotics > Products, Solutions; Partnerships & University Programs FOCUS > First GENIVI Linux based IVI project development for BMW > AdvancedTCA (Networking) for Alcatel and Lucent > Leadership and delivery of IVI, telematics, and connectivity projects > Thematic pathfinding for the new technologies (autonomous robotics, dependability) > Continuous innovation > Improvement for existing and creation of new company products > Participation in alliances (GENIVI, FASTR, AUTOSAR Adaptive, PICMG) RELEVANT PROJECTS (selection)Andrei Kholodnyi Principal Technologist CTO Office TOPICS OF MY TALK TODAY
  • 3. 3 © 2019 WIND RIVER. ALL RIGHTS RESERVED. CHEMICAL SECTOR COMMERCIAL BUILDING SECTOR COMMUNICATIONS SECTOR CRITICAL MANUFACTURING SECTOR DAMS SECTOR AEROSPACE AND DEFENSE SECTOR EMERGENCY SERVICES SECTOR ENERGY SECTOR FINANCIAL SERVICES SECTOR FOOD AND AGRICULTURE SECTOR GOVERNMENT BUILDING SECTOR MEDICAL SECTOR IT SECTOR NUCLEAR SECTOR TRANSPORTATION/AUTO SECTOR WATER AND WASTEWATER SECTOR 3 © 2019 WIND RIVER. ALL RIGHTS RESERVED.
  • 4. TSN  Hard RT  safety  TSN  Soft RT  non-safety  TSN TSN EDGE COMPUTE GATEWAY COMPUTE COMPUTECOMPUTE TITANIUM (STARLING X) ARM / INTEL Linux ROS2 FRAMEWORK ROS2 APPSROS2 APPS ROS2 FRAMEWORK Linux NXP LS1028 TSN SWITCH VxWorks / Linux ROS2 FRAMEWORK ROS2 APPS Hypervisor ARM /Intel HW ROS2 FRAMEWORK ROS2 Apps Hypervisor ROS2 Apps VxWorks WRLinux ARM /Intel HW ROS2 FRAMEWORK ROS2 Apps Hypervisor ROS2 Apps VxWorks WRLinux ETHERNET SIMULATE LEARN INTEL CPU / INTEL ML ML FRAMEWORK ML INTEL CPU / NVIDIA GPU SIMULATION ENGINE LG OR GAZEBO SIMULATION INDUSTRIAL PROFILE MCU HW ZEPHYR MICRO ROS OR ROS2 MCU HW ZEPHYR MICRO ROS OR ROS2 MCU HW ZEPHYR MICRO ROS OR ROS2
  • 5. 5 © 2019 WIND RIVER. ALL RIGHTS RESERVED.  32/64 bits on Arm/Intel/MIPS/PowerPC  Proprietary real-time OS, POSIX PSE52  Kernel/user space separation, user space optional  C/C++11/14, possible to develop kernel C++ modules and user apps  Safety certifiable: DO-178, ISO 26262, IEC 61508  Toolchain LLVM 8, Dinkumware C/C++ libs  Proprietary build system  Kernel shell  Eclipse-based IDE, Windows/Linux hosts WHAT IS VXWORKS RTOS?
  • 6. 6 © 2019 WIND RIVER. ALL RIGHTS RESERVED. NASA MITSUBISHI ELECTRIC
  • 7. 7 © 2019 WIND RIVER. ALL RIGHTS RESERVED. WHY ROS 2 AT WIND RIVER  Show VxWorks running robotics platform based on ROS 2  Engage with R&D customers already interested in leveraging ROS 2  Upstream ROS 2 changes back to the community  Identify challenges in porting a modern software framework (with Python, Boost, cmake, etc.) to VxWorks and address those challenges  Provide some hints (common problem-solving patterns) for how to build Linux applications under VxWorks  Identify gaps in a development workflow (VxWorks versus Linux) and address those gaps
  • 8. 8 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 IN KEYWORDS (2017) ⋮⋮⋮ ROS 2 VxWorks
  • 9. 9 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 IN KEYWORDS (2017) !!!Pain!!! alone ⋮⋮⋮ ROS 2 VxWorks
  • 10. 10 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 IN KEYWORDS (2019) Helix Virtualization Platform meta-rosWind River LabsAutoware EWC2020 AUTOSAR Adaptive VxWorksTitanium turtlebot3 microROS DDS eProsima ROS communityROS-IndustrialDocker MUSL LG RPI4UP2 Wind River LinuxIP ReviewDeveloper Journey LLVM GPL Apollo Digital Twin Training BlogWebinarSimulation DashingUSB2Serial ROS 2 LabZephyr ARM SDKTSN CES2020 Intel UMLROS2019 ⋮⋮⋮ ROS 2
  • 11. 11 © 2019 WIND RIVER. ALL RIGHTS RESERVED. THE ‘RIPPLE’ EFFECT OF ROS 2 ROS 2
  • 12. 12 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 DASHING RELEASE VXWORKS PORT ROS 2 dependencies: ASIO, tinyxml2, OpenCV LLVM C++11/C++14 VxWorks SR620 ROS 2 VxWorks SDK Python 3.8 Cmake / autotools build primitives Intel 64-bit / Arm / QEMU POSIX https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos • Complete ROS 2 Dashing release has been ported to VxWorks • Build using colcon, the same look and feel as a native ROS 2 build (command line) • OpenCV integration • Python (ported, not tested) • Only graphical packages (like RViz) are not ported and stay on Ubuntu based on the ROS 2 dashing release approx. 200 ROS 2 packages OSS_BUILD layer UNIX_EXTRA layer ROS 2 apps
  • 13. 13 © 2019 WIND RIVER. ALL RIGHTS RESERVED. https://labs.windriver.com (ROS 2 ON VXWORKS, WIND RIVER LINUX)
  • 14. 14 © 2019 WIND RIVER. ALL RIGHTS RESERVED. VXWORKS7-ROS2-BUILD (A HELPER REPO)  https://github.com/Wind-River/vxworks7-ros2-build  Makefile build: BUILD_TYPE=Debug BOARD=up2 make  Set of scripts to build: – bootloader, kernel, userspace, ROS2, and the rootfs (boot from the USB stick)  Board support: – UP, UP2, RPI3/RPI4, VxWorks Simulator, QEMU, and others  Docker build: – VxWorks product install
  • 15. 15 © 2019 WIND RIVER. ALL RIGHTS RESERVED. VXWORKS7-LAYER-FOR-ROS2  https://github.com/Wind-River/vxworks7-layer-for-ros2  VxWorks layers (build infrastructure): – OSS_BUILD, UNIX_EXTRA  VxWorks layers (ROS 2 dependencies): – ASIO, tinyxml2  ROS 2 patches: – fastcdr, fastrtps, rcl, rclutils, etc.
  • 16. 16 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 BUILD UNDER VXWORKS  From the command line (ROS 2 native build) – colcon build --symlink-install --cmake-force-configure --cmake-args -DBUILD_TESTING=OFF  The same look and feel as a ROS 2 native build – ./wrenv.linux –p vxworks-7 && ./vxworks_env.sh – colcon build --symlink-install --cmake-force-configure --cmake-args - DCMAKE_TOOLCHAIN_FILE=$VSB_DIR/buildspecs/cmake/rtp.cmake - DCMAKE_PREFIX_PATH=$PRJ_WS/install;$VSB_DIR/usr/root -DBUILD_TESTING=OFF
  • 17. 17 © 2019 WIND RIVER. ALL RIGHTS RESERVED. DUMMY ROBOT
  • 18. 18 © 2019 WIND RIVER. ALL RIGHTS RESERVED.  IP compliance !!!  Missing libraries (ROS 2 dependencies need to be ported)  Missing UNIX functions (e.g., fnmatch, memccpy, some others)  cmake support in VxWorks is good, but not good enough  Missing autotools support under Windows  Dinkum C++ library is not equal to stdlibc++  Python support is missing in VxWorks CHALLENGES IN PORTING A MODERN SOFTWARE FRAMEWORK (BASED ON THE LATEST VXWORKS RELEASE)
  • 19. 19 © 2019 WIND RIVER. ALL RIGHTS RESERVED. IP COMPLIANCE  ROS 2 license is fine (BSD 3-Clause), but …  There are many dependencies that have different licenses – ASIO (Boost Software License) – EIGEN (Mozilla Public License 2.0, GPL and other licenses ) – PCL (BSD license) – POCO (Boost Software License) – TINYXML (zlib License) – TINYXML2 (zlib License)  This is a real problem for customers who want to run their software on top of it  Would be good to review a complete licenses list
  • 20. 20 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 DEPENDENCIES  Some of them are not really necessary (e.g., difficult to certify, not needed for non-Windows systems) – POCO – ASIO (from FastRTPS) – tinyxml vs tinyxml2  ROS 2 dependencies need to be ported – Not a straight (colcon) way to port them in compare to ROS 2 packages  Missing UNIX/Linux functions – fnmatch, memccpy, some others  Probably we need a version without some dependencies – POCO is a good example (used to run ROS 2 under Windows)
  • 21. 21 © 2019 WIND RIVER. ALL RIGHTS RESERVED. ROS 2 EMBEDDED VS. ROS 2 FULL Embedded – No HMI (meant graphics) – No visualization tools (Qt, Rviz…) – No simulation tools (Gazebo) – No Python – Remove some dependencies To make it possible building a ROS2 embedded version
  • 22. 22 © 2019 WIND RIVER. ALL RIGHTS RESERVED. CONCLUSIONS AND NEXT STEPS  ROS 2 runs on VxWorks (great experience)  Current results are published on https://labs.windriver.com  Docker-based host environment that can be used for reproducible cross-platform builds  Make VxWorks officially supported by ROS 2 Dashing  Provide non-commercial VxWorks SDK for RPI4  Real-time performance tests: VxWorks, real-time ROS2 working group  Python: VxWorks integration and test  Windows development host support: test VxWorks build
  • 23. 23 © 2019 WIND RIVER. ALL RIGHTS RESERVED.