# ROS2 Embedded SIG meeting #1

**URL:** <https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645>\
**Category:** Embedded\
**Tags:** design\
**Created:** [October 30, 2018, 6:14am UTC](https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645 "2018-10-30T06:14:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![BorjaOuterelo](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/borjaouterelo/32/2981_2.png) [@BorjaOuterelo](https://discourse.openrobotics.org/u/BorjaOuterelo)\
**Post date:** [October 30, 2018, 6:14am UTC](https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645/1 "2018-10-30T06:14:21Z")

</div>

Following the current interest on a ROS 2 targeting microcontrollers we have scheduled an online community meeting for next Monday, 5th of November at 16:00-18:00 UTC.

The meeting will take place on hangouts meet: [https://meet.google.com/eym-hjfs-mvq](https://meet.google.com/eym-hjfs-mvq)  
[![](https://us1.discourse-cdn.com/flex022/uploads/ros/original/2X/e/e67be53ea7ba553ee262e145bfceb4b97c409e5c.gif)](https://calendar.google.com/event?action=TEMPLATE&tmeid=NGU4Z2trMnEzN3Rhc3JuaWU5cGpybG10dnUgYm9yamFvdXRlcmVsb0BlcHJvc2ltYS5jb20&tmsrc=borjaouterelo%40eprosima.com)

The main point of this meeting would be to get some consensus on design and joint efforts on the development.

Currently, there is an in-progress PR with a draft of a design:  
[https://github.com/ros2/design/pull/197](https://github.com/ros2/design/pull/197)

---

<div class="post-metadata">

**Author:** ![qnetjoe](https://avatars.discourse-cdn.com/v4/letter/q/34f0e0/32.png) [@qnetjoe](https://discourse.openrobotics.org/u/qnetjoe)\
**Post date:** [November 5, 2018, 6:07pm UTC](https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645/2 "2018-11-05T18:07:34Z")

</div>

I was unable to make this meeting, are there any plans to post minutes?

---

<div class="post-metadata">

**Author:** ![BorjaOuterelo](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/borjaouterelo/32/2981_2.png) [@BorjaOuterelo](https://discourse.openrobotics.org/u/BorjaOuterelo)\
**Post date:** [November 7, 2018, 9:26am UTC](https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645/3 "2018-11-07T09:26:30Z")

</div>

Here you can find the meeting notes.  
If any of the attendees want his names/companies removed from them I can do it.

# ROS 2 Embedded SIG meeting Agenda 11/05

05 NOVEMBER 2018 17:00 PM, Hangouts Meet.

## ATTENDEES

- eProsima: Jaime Martin, Borja Outerelo
- Bosch: Ingo Lütkebohle
- Acutronic Robotics: Iñigo Muguruza
- eSOL: Akihiko Tsukuda, Shoji Morita (supporting Renesas, [eMCOS Overview | Products | eSOL - Real-time embedded software platform solutions](https://www.esol.com/embedded/emcos.html))
- Amazon: Nick Burek
- Renesas: Osamu “Max” Matshushima
- AIST: Geoffrey Biggs

## AGENDA

### Quick presentations

Quick presentations on each of the attendees.  
By turns, each of the attendees introduces themselves. Check Attendees section for the list.

### Embedded ROS 2 Design

Summary of the current status of the design.  
PR on ROS2 Design:

> <https://github.com/ros2/design/pull/197>
>
> Start of the design page for the ROS 2 Embedded effort.
> 
> Includes contribution…s by all of the OFERA consortium partners.

Original design doc from OFERA/microROS:

> <https://github.com/microROS/design/blob/embedded_ROS2/articles/embedded.md>

#### Discussion

_Ingo:_ What kind of devices we are targeting?

_Geoffrey Biggs:_ Possible two targets:  
Bigger devices using the current stack.  
Smaller devices using something more like rosserial.

_Iñigo:_ We are not very far from small devices on OFERA project we are squeezing the sizes with pretty good results (XRCE-DDS client is taking ~4k RAM)

_Nick:_ We are looking at TurtleBot. We don’t think we need a smaller implementation.  
They have one implementation targeting Arduino, extending TurtleBot that is already integrated on Arduino platform.

_Ingo:_ May OSRF can help with some optimisations and modularisation on RCL and RMW.

Ingo & Geoffrey Biggs:  
One of the most significant issues is the statically concept in RCL and RMW.

_Ingo:_ We should engage OSRF for ensuring the success of this work. Some layers will need to be modified in future.

### Current work review

List and review of currently available approaches.

_Borja:_ The current release of OFERA/micro-ROS:

> **[RMW-microxrcedds implementation](https://discourse.openrobotics.org/t/rmw-microxrcedds-implementation/6727)**
>
> Hi. We have been working on an implementation of RMW using eProsima’s Micro XRCE-DDS. We made this as part of OFERA project approach to embedded ROS 2. In a nutshell, this approach consists on changing middleware implementation (from DDS to...

Project’s GitHub page:

> **[microROS](https://github.com/microROS)**
>
> microROS, micro-ROS, MicroROS, Micro-ROS, micro-ROS® - microROS

_Nick:_

> **[GitHub - awslabs/aws-ros-client-library-microcontrollers: A ROS Client Library targeted at microcontrollers...](https://github.com/awslabs/aws-ros-client-library-microcontrollers)**
>
> A ROS Client Library targeted at microcontrollers that will connect to the ROS network using DDS-XRCE.

Very thin wrapper over Micro XRCE-DDS with pretty simple basic ROS 2 concepts.  
Don’t need to touch ROS 2 core.  
Having a lot of rosserial users, It looks a good idea to have a migration path to ROS 2.

**Open question:** Is the use case people bringing ROS 2 nodes to microcontrollers or just implementing specific nodes?

_Ingo:_ People worrying about minimal impact will do their custom implementation.  
People on ROS 2 community side, may want the full stack approach.  
If we can get RCL/RMW really small would be the ideal approach.

_Nick:_ H-ROS is other interesting approach using microprocessors. But how small they are targeting?.

_Iñigo:_ H-ROS uses H-RIM to set a standard information model to be able to plug and play components.  
H-ROS would like to integrate microcontrollers.

_Ingo:_ We plan to benchmark the memory usage of the provided solutions.  
We think that the messages buffers are probably the biggest consumers.

_Nick:_ Will be Lovely to have measures on current consumption of RMW and RCL

_Osamu “Max” Matshushima:_ RTOS is the biggest consumer on the system. In our POC FreeRTOS uses more ram than Micro XRCE-DDS implementation. TCP/IP stack included.  
Link to the source code?

_Borja:_ You can select the protocol you want to use under micro XRCE-DDS: TCP, UDP, Serial even personalise yours.

_Ingo:_ We use FreeRTOS on XDK, see [https://xdk.bosch-connectivity.com/hardware](https://xdk.bosch-connectivity.com/hardware)

### Further actions

Organisation and further actions of a joint effort towards embedded ROS 2.

_Ingo:_ Trying to get further information on the RCL and RMW implementation.  
Maybe engage in a discussion on the size of the layers once we have some data.

_Iñigo & Ingo & Borja:_  
RTOS implementation for later.

_Osamu “Max” Matshushima:_  
Provide POC code.

### AP

Provide some demos for memory usage measures.  
_Planning:_ Alternate time approach for setting meeting times.  
_Planning:_ Meets to be set for every two weeks.

---

<div class="post-metadata">

**Author:** ![godzilla\_max](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/godzilla_max/32/1187_2.png) [@godzilla\_max](https://discourse.openrobotics.org/u/godzilla_max)\
**Post date:** [November 13, 2018, 7:27am UTC](https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645/4 "2018-11-13T07:27:47Z")

</div>

Here is the memory usage of Renesas RX65N implementation. The memory size I discussed at the SIG meeting includes AWS and Mbed TLS which are the big memory consumers. If we don’t have to support the use-case, the memory usage becomes quite small (Use case 1 and 2). Please see the table below. Please note this memory usage could get changed during the course of development.

For RX65N FreeRTOS code, please see [amazon-freertos/demos/renesas/rx65n-gr-rose at master · renesas-rx/amazon-freertos · GitHub](https://github.com/renesas-rx/amazon-freertos/tree/master/demos/renesas/rx65n-gr-rose)

**Use case1: w/ UART**

| | Flash | RAM |
| --- | --- | --- |
| FreeRTOS Kernel | 10KB | 0KB (allocated by heap/stack) |
| RX Driver Package | 30KB | 5KB |
| Micro XRCE-DDS | 50KB | 5KB |
| System heap/stack | - | 10KB |
| Total | 90KB | 20KB |

**Use case2: w/ Local Area Network**

| | Flash | RAM |
| --- | --- | --- |
| Use case1 | 10KB | 0KB (allocated by heap/stack) |
| RX Driver Package | 30KB | 5KB |
| Micro XRCE-DDS | 50KB | 5KB |
| FreeRTOS+TCP | 20KB | 0KB (allocated by heap/stack) |
| System heap/stack | - | 30KB |
| Total | 110KB | 40KB |

**Use case3: w/ full implementation: Wide Area Network**

| | Flash | RAM |
| --- | --- | --- |
| FreeRTOS Kernel | 10KB | 0KB (allocated by heap/stack) |
| RX Driver Package | 30KB | 5KB |
| Micro XRCE-DDS | 50KB | 5KB |
| FreeRTOS+TCP | 20KB | 0KB (allocated by heap/stack) |
| Mbed TLS | 110KB | 20KB |
| AWS | 50KB | 10KB |
| System heap/stack | - | 130KB |
| Total | 270KB | 170KB |

---

<div class="post-metadata">

**Author:** ![godzilla\_max](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/godzilla_max/32/1187_2.png) [@godzilla\_max](https://discourse.openrobotics.org/u/godzilla_max)\
**Post date:** [December 27, 2018, 8:03am UTC](https://discourse.openrobotics.org/t/ros2-embedded-sig-meeting-1/6645/5 "2018-12-27T08:03:46Z")

</div>

Please see [GitHub - godzilla-max/rose\_sketch: a DDS-XRCE implementation for RX65N MCU](https://github.com/godzilla-max/rose_sketch) for DDS-XRCE PoC code running on the Renesas RX65N MCU.
