SlideShare a Scribd company logo
Workshop:
“Deeply embedded software”
Program
Francesca Finocchiaro (eProsima) - “micro-ROS: bringing ROS 2 to microcontrollers”
Jan Staschulat (Bosch Research) - “micro-ROS: API and executor”
Anaëlle Sarazin (WYCA Robotics) - “Elodie and micro-ROS”
Tomasz Rokosz (Hydra System) - “micro-ROS enabled GNSS receiver”
---
Panel discussion - Invited panelists: Pablo Garrido Sanchez (eProsima), Alexandre Malki (PIAP)
micro-ROS: bringing
ROS 2 to MCUs
Francesca Finocchiaro - eProsima
April 13th, 2021
Overview
funded by
Open-source project,
now benefiting from a huge
participation from a growing
community!
https://micro-ros.github.io/
https://www.eprosima.com/
francescafinocchiaro@eprosima.com
Who are we?
ROS 2
What is ROS 2?
● 2nd generation of Robotic Operating System, provides infrastructure for
robotics developers
● Open-source software with large community underneath
● [Long story short] Communication based on pub/sub paradigm:
○ Sensors publish to topics & actuators subscribe to topics
○ Based on DDS (Data Distribution System middleware)
○ Each node runs its own independent process
● Modular
● Benefits of QoS
● Has its own build/launch system
● CLI tools for deployment, monitoring and debugging
● Runs on Linux, Windows
micro-ROS: puts ROS 2 onto microcontrollers!
A solution for creating ROS 2 nodes into embedded devices
micro-ROS
Highlights
● Layer-compatible with ROS 2
● Integrated into ROS 2 ecosystem
● Allows to create a ROS 2 node with ~ all functionalities
● Client/server logics
● Fully customizable transports
● Runs on a variety of different platforms thanks to
platform-versatile cross-compilation tools
● Supporting ROS 2 Foxy, Rolling and soon Galactic!
● A growing community!
Why micro-ROS
ROS 2 micro- ROS
micro-ROS architecture
ROS 2 micro- ROS
micro-ROS architecture
Micro XRCE-DDS: DDS for eXtremely Resource-Constrained Environments.
Clients - XRCE entities on low-resource consumption devices.
Agent - XRCE entity connected with DDS global data space. Acts on behalf of Clients in the DDS world.
Main features:
● Client-server architecture
● Request-response pattern
● Connection oriented
Middleware architecture
ROS 2 micro- ROS
micro-ROS architecture
C99 library:
provides utility functions for creating
nodes, publishers, subscribers &
redesigned executor [deterministic and
LET semantics, dynamic memory
allocation only at startup,
domain-specific scheduling ]
RCL, RCUtils,
rosidl_typesupport
RCLCPP, RCLPY
App
RCL, RCUtils,
rosidl_typesupport
RCLC
App
Same as in ROS 2
(many functionalities not used)
ROS Client Support Libraries
Supported platforms
NuttX
Zephyr
FreeRTOS
Linux Windows
micro-ROS
Client
micro-ROS
Agent
Supported RTOSes
Mbed
Target: mid-range microcontrollers.
Currently supported:
● ARM-M3/M4/M7 MCUs
● Xtensa MCUs
● RISC-V
Typical features:
● ~ 1 MB of flash memory
● ~ 100 kB of RAM memory
● < 500 mA consumption
● General purpose input/output pins (GPIO)
● Communication peripherals: USB, Ethernet, SPI, UART, I2C, CAN, etc.
Supported HW
Arduino Due/Zero
OpenCR 1.0
Olimex LTD
STM32-E407
Crazyflie 2.1 drone
ST Nucleo family
STM32L4
Discovery kit IoT ESP32 family Teensy 3.2/4.1
Arduino Portenta
Supported HW
Raspberry Pi Pico
micro-ROS
Zephyr module
micro-ROS Arduino
micro-ROS ESP-IDF
component
Integration into external tools
micro-ROS STMCube
Recent developments
and features
my_custom_transport_open(...)
my_custom_transport_close(...)
my_custom_transport_write(...)
my_custom_transport_read(...)
Versatile API for custom transports
micro-ROS provides user API for interfacing with
lowest level transport layer at runtime
This enables to implement custom transports and allows to transmit DDS-XRCE
wire protocol over virtually any protocol, network or communication
mechanism.
4 functions must be implemented:
Continuous fragment mode
micro-ROS Client
Transport
buffer
Allows to send up to 64 kB according to DDS-XRCE specification
Publisher
writes on the run
(continuously)
MTU
To the
micro-ROS
Agent
message
fragmentation
serialization
Client-to-Agent Ping
micro-ROS
Client
micro-ROS
Agent
establish session
request operation
operation reply
Ping to see if Agent is alive
Pong reply
Pings Pongs
(if alive)
Shared Memory
micro-ROS Client micro-ROS Agent
Pub creation
Sub creation
Publisher
Subscriber
Matching info
Internal mechanism
for matching entities
within Client
Entities match within
the Agent by default
Static Memory Pools in the RMW
Client-Agent time sync
micro-ROS Client
micro-ROS Agent
epoch
relative
time
Client inherits epoch
from sync w/ Agent
Client requests time
offset between clocks
Demos
Demo I
micro-ROS enabling smart warehouses duties
Demo II
ROS 2 to micro-ROS TCP tunneling via Integration Service!
Thanks for your attention!
Back-up slides
● Implemented using Micro XRCE-DDS middleware in lower layer
● Allows static configuration of memory resources
Micro XRCE-DDS
configurable parameters
Transport
[UDP, serial, custom] Agent IP Agent Port
Creation mode
[XML, Ref]
IP version
[IPv4 - IPv6]
Max History
Max Nodes
Max Publishers Max Subscriptions Max Clients Max Services Max Topics
Node name max length Topic name max length
Type name max length
micro-ROS
configurable
parameters
Configurability of these parameters allows preconfiguring the size of the library
and tuning the size of the buffer to the memory available
RMW
Continuous fragment mode
XRCE Client
XRCE Agent
Max: 64 kB according to DDS-XRCE specification
Publisher
Publisher
...
writes
on the run
Static Memory Pooling in RMW
micro-ROS Client’s RMW
Subscriber ...
Subscriber ...
Subscriber ...
...
Subscriber
Subscriber
...
Subscriber
...
Continuous fragment mode
micro-ROS Client
micro-ROS
Agent
Up to 64 kB according to DDS-XRCE specification
Publisher
Publisher
...
writes
on the run
Graph manager
● DDS participant scanning the network: provides
introspection capabilities to user. ROS 2 topology
consumable by micro-ROS
● micro-ROS topology info available to ROS 2
Graph support
Continuous fragment mode
micro-ROS Client
Transport
buffer
Allows to send up to 64 kB according to DDS-XRCE specification
Publisher
writes on the run
(continuously)
MTU
To the
micro-ROS
Agent
message
Continuous fragment mode
micro-ROS Client
Transport
buffer
Allows to send up to 64 kB according to DDS-XRCE specification
Publisher
writes on the run
(continuously)
MTU
To the
micro-ROS
Agent
message

More Related Content

What's hot

【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
MAKERPRO.cc
 
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet ConnectivityABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
Benjamin Zores
 
BIG IP F5 GTM Presentation
BIG IP F5 GTM PresentationBIG IP F5 GTM Presentation
BIG IP F5 GTM Presentation
PCCW GLOBAL
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROS
Jaime Martin Losa
 
Virtualization
VirtualizationVirtualization
Virtualization
imp_satish
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
ALTANAI BISHT
 
F5 Solutions for Service Providers
F5 Solutions for Service ProvidersF5 Solutions for Service Providers
F5 Solutions for Service Providers
BAKOTECH
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
Saúl Ibarra Corretgé
 
micro-ROS Humble Hawskbill
micro-ROS Humble Hawskbillmicro-ROS Humble Hawskbill
micro-ROS Humble Hawskbill
eProsima
 
Introduction to Microsoft Azure Cloud
Introduction to Microsoft Azure CloudIntroduction to Microsoft Azure Cloud
Introduction to Microsoft Azure Cloud
Dinesh Kumar Wickramasinghe
 
micro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollersmicro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollers
eProsima
 
emea_cisco_live_webinar_150623.pptx
emea_cisco_live_webinar_150623.pptxemea_cisco_live_webinar_150623.pptx
emea_cisco_live_webinar_150623.pptx
ThousandEyes
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
Pradeep Kumar
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Nanik Tolaram
 
Lecture 8 permissions
Lecture 8   permissionsLecture 8   permissions
Lecture 8 permissions
Wiliam Ferraciolli
 
Android 10
Android 10Android 10
F5 DDoS Protection
F5 DDoS ProtectionF5 DDoS Protection
F5 DDoS Protection
MarketingArrowECS_CZ
 
Proxmox ve-datasheet
Proxmox ve-datasheetProxmox ve-datasheet
Proxmox ve-datasheet
Miguel Angel
 
Data Virtualization Manager for z/OS
Data Virtualization Manager for z/OS Data Virtualization Manager for z/OS
Data Virtualization Manager for z/OS
Gustav Lundström
 
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
Siji Sunny
 

What's hot (20)

【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
 
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet ConnectivityABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
ABS 2013: Dive into Android Networking - Adding Ethernet Connectivity
 
BIG IP F5 GTM Presentation
BIG IP F5 GTM PresentationBIG IP F5 GTM Presentation
BIG IP F5 GTM Presentation
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROS
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
 
F5 Solutions for Service Providers
F5 Solutions for Service ProvidersF5 Solutions for Service Providers
F5 Solutions for Service Providers
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
 
micro-ROS Humble Hawskbill
micro-ROS Humble Hawskbillmicro-ROS Humble Hawskbill
micro-ROS Humble Hawskbill
 
Introduction to Microsoft Azure Cloud
Introduction to Microsoft Azure CloudIntroduction to Microsoft Azure Cloud
Introduction to Microsoft Azure Cloud
 
micro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollersmicro-ROS - ROS 2 into microcontrollers
micro-ROS - ROS 2 into microcontrollers
 
emea_cisco_live_webinar_150623.pptx
emea_cisco_live_webinar_150623.pptxemea_cisco_live_webinar_150623.pptx
emea_cisco_live_webinar_150623.pptx
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
 
Lecture 8 permissions
Lecture 8   permissionsLecture 8   permissions
Lecture 8 permissions
 
Android 10
Android 10Android 10
Android 10
 
F5 DDoS Protection
F5 DDoS ProtectionF5 DDoS Protection
F5 DDoS Protection
 
Proxmox ve-datasheet
Proxmox ve-datasheetProxmox ve-datasheet
Proxmox ve-datasheet
 
Data Virtualization Manager for z/OS
Data Virtualization Manager for z/OS Data Virtualization Manager for z/OS
Data Virtualization Manager for z/OS
 
A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)A deep dive into Android OpenSource Project(AOSP)
A deep dive into Android OpenSource Project(AOSP)
 

Similar to micro-ROS: bringing ROS 2 to MCUs

Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
eProsima
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE
 
micro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUsmicro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUs
eProsima
 
FIWARE Robotics
FIWARE RoboticsFIWARE Robotics
FIWARE Robotics
eProsima
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
eProsima
 
Atom The Redis Streams-Powered Microservices SDK: Dan Pipemazo
Atom The Redis Streams-Powered Microservices SDK: Dan PipemazoAtom The Redis Streams-Powered Microservices SDK: Dan Pipemazo
Atom The Redis Streams-Powered Microservices SDK: Dan Pipemazo
Redis Labs
 
Rover.pptx Baripada SEEMANTA engineering
Rover.pptx Baripada SEEMANTA engineeringRover.pptx Baripada SEEMANTA engineering
Rover.pptx Baripada SEEMANTA engineering
SunilTriya1
 
Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)
Piyush Chand
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
Piyush Chand
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
ZettaScaleTechnology
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
Benjamin Cabé
 
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Jaime Martin Losa
 
Uit Presentation of IN/NGIN for Cosmote 2010
Uit Presentation of IN/NGIN for  Cosmote  2010Uit Presentation of IN/NGIN for  Cosmote  2010
Uit Presentation of IN/NGIN for Cosmote 2010
michael_mountrakis
 
Rover technology.ppt
Rover technology.pptRover technology.ppt
Rover technology.ppt
kritikaagarwal03
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
Michael Koster
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
Hideki Takase
 
UNIT V PPT.ppt
UNIT V PPT.pptUNIT V PPT.ppt
UNIT V PPT.ppt
ThanmayaGoud
 
micro-ROS - New client library and middleware features
micro-ROS - New client library and middleware featuresmicro-ROS - New client library and middleware features
micro-ROS - New client library and middleware features
eProsima
 
optimizing_ceph_flash
optimizing_ceph_flashoptimizing_ceph_flash
optimizing_ceph_flash
Vijayendra Shamanna
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
Jaime Martin Losa
 

Similar to micro-ROS: bringing ROS 2 to MCUs (20)

Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
Open Middleware Technologies for Smart Robotics - a FIWARE Smart Fest present...
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
 
micro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUsmicro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUs
 
FIWARE Robotics
FIWARE RoboticsFIWARE Robotics
FIWARE Robotics
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
 
Atom The Redis Streams-Powered Microservices SDK: Dan Pipemazo
Atom The Redis Streams-Powered Microservices SDK: Dan PipemazoAtom The Redis Streams-Powered Microservices SDK: Dan Pipemazo
Atom The Redis Streams-Powered Microservices SDK: Dan Pipemazo
 
Rover.pptx Baripada SEEMANTA engineering
Rover.pptx Baripada SEEMANTA engineeringRover.pptx Baripada SEEMANTA engineering
Rover.pptx Baripada SEEMANTA engineering
 
Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)Robot Operating Systems (Ros) Overview &amp; (1)
Robot Operating Systems (Ros) Overview &amp; (1)
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
 
Uit Presentation of IN/NGIN for Cosmote 2010
Uit Presentation of IN/NGIN for  Cosmote  2010Uit Presentation of IN/NGIN for  Cosmote  2010
Uit Presentation of IN/NGIN for Cosmote 2010
 
Rover technology.ppt
Rover technology.pptRover technology.ppt
Rover technology.ppt
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
UNIT V PPT.ppt
UNIT V PPT.pptUNIT V PPT.ppt
UNIT V PPT.ppt
 
micro-ROS - New client library and middleware features
micro-ROS - New client library and middleware featuresmicro-ROS - New client library and middleware features
micro-ROS - New client library and middleware features
 
optimizing_ceph_flash
optimizing_ceph_flashoptimizing_ceph_flash
optimizing_ceph_flash
 
Fiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPSFiware - communicating with ROS robots using Fast RTPS
Fiware - communicating with ROS robots using Fast RTPS
 

More from eProsima

AML & ALMA: Project Overview
AML & ALMA: Project OverviewAML & ALMA: Project Overview
AML & ALMA: Project Overview
eProsima
 
Fast DDS Hello World in Windows
Fast DDS Hello World in WindowsFast DDS Hello World in Windows
Fast DDS Hello World in Windows
eProsima
 
ROS 2 deployment in K8s: DDS Router as WAN comms enabler
ROS 2 deployment in K8s: DDS Router as WAN comms enablerROS 2 deployment in K8s: DDS Router as WAN comms enabler
ROS 2 deployment in K8s: DDS Router as WAN comms enabler
eProsima
 
Algebraic Machine Learning - On changing the rules of the game
Algebraic Machine Learning - On changing the rules of the gameAlgebraic Machine Learning - On changing the rules of the game
Algebraic Machine Learning - On changing the rules of the game
eProsima
 
Vulcanexus: the all-in-one ROS 2 toolset
Vulcanexus: the all-in-one ROS 2 toolsetVulcanexus: the all-in-one ROS 2 toolset
Vulcanexus: the all-in-one ROS 2 toolset
eProsima
 
ALMA - Integration of AI in ROS 2 ecosystem
ALMA - Integration of AI in ROS 2 ecosystemALMA - Integration of AI in ROS 2 ecosystem
ALMA - Integration of AI in ROS 2 ecosystem
eProsima
 
micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...
eProsima
 
Towards Easy 5GS Integration in ROS2 - eProsima & Ericsson
Towards Easy 5GS Integration in ROS2 - eProsima & EricssonTowards Easy 5GS Integration in ROS2 - eProsima & Ericsson
Towards Easy 5GS Integration in ROS2 - eProsima & Ericsson
eProsima
 
eProsima - Company brief
eProsima - Company briefeProsima - Company brief
eProsima - Company brief
eProsima
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & Tools
eProsima
 
micro-ROS Galactic
micro-ROS Galacticmicro-ROS Galactic
micro-ROS Galactic
eProsima
 
Integration Service: Integrating Communication Protocols
Integration Service: Integrating Communication ProtocolsIntegration Service: Integrating Communication Protocols
Integration Service: Integrating Communication Protocols
eProsima
 
EU Project: ALMA
EU Project: ALMAEU Project: ALMA
EU Project: ALMA
eProsima
 
Fast RTPS
Fast RTPSFast RTPS
Fast RTPS
eProsima
 

More from eProsima (14)

AML & ALMA: Project Overview
AML & ALMA: Project OverviewAML & ALMA: Project Overview
AML & ALMA: Project Overview
 
Fast DDS Hello World in Windows
Fast DDS Hello World in WindowsFast DDS Hello World in Windows
Fast DDS Hello World in Windows
 
ROS 2 deployment in K8s: DDS Router as WAN comms enabler
ROS 2 deployment in K8s: DDS Router as WAN comms enablerROS 2 deployment in K8s: DDS Router as WAN comms enabler
ROS 2 deployment in K8s: DDS Router as WAN comms enabler
 
Algebraic Machine Learning - On changing the rules of the game
Algebraic Machine Learning - On changing the rules of the gameAlgebraic Machine Learning - On changing the rules of the game
Algebraic Machine Learning - On changing the rules of the game
 
Vulcanexus: the all-in-one ROS 2 toolset
Vulcanexus: the all-in-one ROS 2 toolsetVulcanexus: the all-in-one ROS 2 toolset
Vulcanexus: the all-in-one ROS 2 toolset
 
ALMA - Integration of AI in ROS 2 ecosystem
ALMA - Integration of AI in ROS 2 ecosystemALMA - Integration of AI in ROS 2 ecosystem
ALMA - Integration of AI in ROS 2 ecosystem
 
micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...
 
Towards Easy 5GS Integration in ROS2 - eProsima & Ericsson
Towards Easy 5GS Integration in ROS2 - eProsima & EricssonTowards Easy 5GS Integration in ROS2 - eProsima & Ericsson
Towards Easy 5GS Integration in ROS2 - eProsima & Ericsson
 
eProsima - Company brief
eProsima - Company briefeProsima - Company brief
eProsima - Company brief
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & Tools
 
micro-ROS Galactic
micro-ROS Galacticmicro-ROS Galactic
micro-ROS Galactic
 
Integration Service: Integrating Communication Protocols
Integration Service: Integrating Communication ProtocolsIntegration Service: Integrating Communication Protocols
Integration Service: Integrating Communication Protocols
 
EU Project: ALMA
EU Project: ALMAEU Project: ALMA
EU Project: ALMA
 
Fast RTPS
Fast RTPSFast RTPS
Fast RTPS
 

Recently uploaded

Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 

Recently uploaded (20)

Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 

micro-ROS: bringing ROS 2 to MCUs

  • 1. Workshop: “Deeply embedded software” Program Francesca Finocchiaro (eProsima) - “micro-ROS: bringing ROS 2 to microcontrollers” Jan Staschulat (Bosch Research) - “micro-ROS: API and executor” Anaëlle Sarazin (WYCA Robotics) - “Elodie and micro-ROS” Tomasz Rokosz (Hydra System) - “micro-ROS enabled GNSS receiver” --- Panel discussion - Invited panelists: Pablo Garrido Sanchez (eProsima), Alexandre Malki (PIAP)
  • 2. micro-ROS: bringing ROS 2 to MCUs Francesca Finocchiaro - eProsima April 13th, 2021
  • 4. funded by Open-source project, now benefiting from a huge participation from a growing community! https://micro-ros.github.io/ https://www.eprosima.com/ francescafinocchiaro@eprosima.com Who are we?
  • 5. ROS 2 What is ROS 2? ● 2nd generation of Robotic Operating System, provides infrastructure for robotics developers ● Open-source software with large community underneath ● [Long story short] Communication based on pub/sub paradigm: ○ Sensors publish to topics & actuators subscribe to topics ○ Based on DDS (Data Distribution System middleware) ○ Each node runs its own independent process ● Modular ● Benefits of QoS ● Has its own build/launch system ● CLI tools for deployment, monitoring and debugging ● Runs on Linux, Windows
  • 6. micro-ROS: puts ROS 2 onto microcontrollers! A solution for creating ROS 2 nodes into embedded devices micro-ROS
  • 7. Highlights ● Layer-compatible with ROS 2 ● Integrated into ROS 2 ecosystem ● Allows to create a ROS 2 node with ~ all functionalities ● Client/server logics ● Fully customizable transports ● Runs on a variety of different platforms thanks to platform-versatile cross-compilation tools ● Supporting ROS 2 Foxy, Rolling and soon Galactic! ● A growing community! Why micro-ROS
  • 8. ROS 2 micro- ROS micro-ROS architecture
  • 9. ROS 2 micro- ROS micro-ROS architecture
  • 10. Micro XRCE-DDS: DDS for eXtremely Resource-Constrained Environments. Clients - XRCE entities on low-resource consumption devices. Agent - XRCE entity connected with DDS global data space. Acts on behalf of Clients in the DDS world. Main features: ● Client-server architecture ● Request-response pattern ● Connection oriented Middleware architecture
  • 11. ROS 2 micro- ROS micro-ROS architecture
  • 12. C99 library: provides utility functions for creating nodes, publishers, subscribers & redesigned executor [deterministic and LET semantics, dynamic memory allocation only at startup, domain-specific scheduling ] RCL, RCUtils, rosidl_typesupport RCLCPP, RCLPY App RCL, RCUtils, rosidl_typesupport RCLC App Same as in ROS 2 (many functionalities not used) ROS Client Support Libraries
  • 15. Target: mid-range microcontrollers. Currently supported: ● ARM-M3/M4/M7 MCUs ● Xtensa MCUs ● RISC-V Typical features: ● ~ 1 MB of flash memory ● ~ 100 kB of RAM memory ● < 500 mA consumption ● General purpose input/output pins (GPIO) ● Communication peripherals: USB, Ethernet, SPI, UART, I2C, CAN, etc. Supported HW
  • 16. Arduino Due/Zero OpenCR 1.0 Olimex LTD STM32-E407 Crazyflie 2.1 drone ST Nucleo family STM32L4 Discovery kit IoT ESP32 family Teensy 3.2/4.1 Arduino Portenta Supported HW Raspberry Pi Pico
  • 17. micro-ROS Zephyr module micro-ROS Arduino micro-ROS ESP-IDF component Integration into external tools micro-ROS STMCube
  • 19. my_custom_transport_open(...) my_custom_transport_close(...) my_custom_transport_write(...) my_custom_transport_read(...) Versatile API for custom transports micro-ROS provides user API for interfacing with lowest level transport layer at runtime This enables to implement custom transports and allows to transmit DDS-XRCE wire protocol over virtually any protocol, network or communication mechanism. 4 functions must be implemented:
  • 20. Continuous fragment mode micro-ROS Client Transport buffer Allows to send up to 64 kB according to DDS-XRCE specification Publisher writes on the run (continuously) MTU To the micro-ROS Agent message fragmentation serialization
  • 21. Client-to-Agent Ping micro-ROS Client micro-ROS Agent establish session request operation operation reply Ping to see if Agent is alive Pong reply Pings Pongs (if alive)
  • 22. Shared Memory micro-ROS Client micro-ROS Agent Pub creation Sub creation Publisher Subscriber Matching info Internal mechanism for matching entities within Client Entities match within the Agent by default
  • 23. Static Memory Pools in the RMW
  • 24. Client-Agent time sync micro-ROS Client micro-ROS Agent epoch relative time Client inherits epoch from sync w/ Agent Client requests time offset between clocks
  • 25. Demos
  • 26. Demo I micro-ROS enabling smart warehouses duties
  • 27. Demo II ROS 2 to micro-ROS TCP tunneling via Integration Service!
  • 28. Thanks for your attention!
  • 30. ● Implemented using Micro XRCE-DDS middleware in lower layer ● Allows static configuration of memory resources Micro XRCE-DDS configurable parameters Transport [UDP, serial, custom] Agent IP Agent Port Creation mode [XML, Ref] IP version [IPv4 - IPv6] Max History Max Nodes Max Publishers Max Subscriptions Max Clients Max Services Max Topics Node name max length Topic name max length Type name max length micro-ROS configurable parameters Configurability of these parameters allows preconfiguring the size of the library and tuning the size of the buffer to the memory available RMW
  • 31. Continuous fragment mode XRCE Client XRCE Agent Max: 64 kB according to DDS-XRCE specification Publisher Publisher ... writes on the run
  • 32. Static Memory Pooling in RMW micro-ROS Client’s RMW Subscriber ... Subscriber ... Subscriber ... ... Subscriber Subscriber ... Subscriber ...
  • 33. Continuous fragment mode micro-ROS Client micro-ROS Agent Up to 64 kB according to DDS-XRCE specification Publisher Publisher ... writes on the run
  • 34. Graph manager ● DDS participant scanning the network: provides introspection capabilities to user. ROS 2 topology consumable by micro-ROS ● micro-ROS topology info available to ROS 2 Graph support
  • 35. Continuous fragment mode micro-ROS Client Transport buffer Allows to send up to 64 kB according to DDS-XRCE specification Publisher writes on the run (continuously) MTU To the micro-ROS Agent message
  • 36. Continuous fragment mode micro-ROS Client Transport buffer Allows to send up to 64 kB according to DDS-XRCE specification Publisher writes on the run (continuously) MTU To the micro-ROS Agent message