Skip to content

Commit 0e66aeb

Browse files
authored
Create 2021-07-07-multithreading.md (#344)
1 parent 588026a commit 0e66aeb

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: micro-ROS Multithreading support
3+
author: Maria Merlan
4+
---
5+
[micro-ROS](https://micro.ros.org/) Foxy, Galactic and Rolling provides a new enhancement, the multithreading feature.
6+
7+
Multithreading allows the micro-ROS default middleware (Micro XRCE-DDS) to be thread safe. This way, micro-ROS nodes can run ROS 2 entities such as publishers, subscribers or services in different RTOS execution threads.
8+
As a result, micro-ROS will run in a multi threaded approach under specific circumstances, improving the performance, the usability and resource optimization.
9+
10+
The multithreading mechanism together with shared memory [transport](https://discourse.ros.org/t/shared-memory-implementation-available-now-in-micro-ros/20422?u=mamerlan) contribute to provide a highly flexible environment for deploying micro-ROS nodes with isolated functionality in different RTOS tasks or threads. As always, in a build-time configured way with no usage of dynamic memory.
11+
12+
→ To activate this new feature, just enable the Multithreading [flag](https://github.com/eProsima/Micro-XRCE-DDS-Client/blob/3e2a144b44add2a789ecdfd116686c981738839e/CMakeLists.txt#L65) in your middleware configuration using your colcon.meta file.
13+
14+
These features are supported in Micro XRCE-DDS, the micro-ROS middleware implementation.
15+
16+
See the associated PRs in the Micro XRCE-DDS library ([General](https://github.com/eProsima/Micro-XRCE-DDS/pull/85), [Client](https://github.com/eProsima/Micro-XRCE-DDS-Client/pull/224), [Agent](https://github.com/eProsima/Micro-XRCE-DDS-Agent/pull/239)) and in micro-ROS’ Client RMW and Agent.

0 commit comments

Comments
 (0)