Porting mros2 as an Mbed library.
Dependents: mbed-os-example-mros2 example-mbed-mros2-sub-pose example-mbed-mros2-pub-twist example-mbed-mros2-mturtle-teleop
README.md@0:580aba13d1a1, 2021-12-30 (annotated)
- Committer:
- smoritaemb
- Date:
- Thu Dec 30 21:06:29 2021 +0900
- Revision:
- 0:580aba13d1a1
- Child:
- 1:9bbb45710820
Updated to catch up to mros2 v2.3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
smoritaemb | 0:580aba13d1a1 | 1 | # mros2 |
smoritaemb | 0:580aba13d1a1 | 2 | |
smoritaemb | 0:580aba13d1a1 | 3 | `mros2` (formally mROS 2) realizes an agent-less and lightweight runtime environment compatible with ROS 2 for embedded devices. |
smoritaemb | 0:580aba13d1a1 | 4 | It consists of basic APIs for pub/sub communication, RTPS protocol, UDP/IP stack, and real-time kernel. |
smoritaemb | 0:580aba13d1a1 | 5 | Embedded nodes can now communicate directly with native ROS 2 nodes via topic! |
smoritaemb | 0:580aba13d1a1 | 6 | |
smoritaemb | 0:580aba13d1a1 | 7 | This repository maintains the communication layer of mROS 2, that mainly offers pub/sub APIs compatible with [rclcpp](https://docs.ros2.org/dashing/api/rclcpp/index.html) for embedded devices. |
smoritaemb | 0:580aba13d1a1 | 8 | [ROS 2](https://docs.ros.org/en/dashing/) is a de-fact platform for the robot system development, and provides pub/sub communication infrastructure with the DDS/RTPS protocol. |
smoritaemb | 0:580aba13d1a1 | 9 | |
smoritaemb | 0:580aba13d1a1 | 10 | ## Features |
smoritaemb | 0:580aba13d1a1 | 11 | |
smoritaemb | 0:580aba13d1a1 | 12 | - **Agent-less**: a node on mROS 2 autonomously discovers communication nodes on the host with the feature of [embeddedRTPS](https://github.com/mROS-base/embeddedRTPS). It means no agent/bridge is required for pub/sub communication from the embedded devices. |
smoritaemb | 0:580aba13d1a1 | 13 | - **Lightweight**: mROS 2 APIs are implemented by C++ to be operated on the embedded devices. All software stacks are also implemented only in C/C++. |
smoritaemb | 0:580aba13d1a1 | 14 | - **Real-time**: mROS 2 employs the real-time kernel (e.g., [TOPPERS kernel](https://www.toppers.jp/en/project.html)) as the runtime platform in order to enhance the real-time capability. |
smoritaemb | 0:580aba13d1a1 | 15 | |
smoritaemb | 0:580aba13d1a1 | 16 | ## Supported platform |
smoritaemb | 0:580aba13d1a1 | 17 | |
smoritaemb | 0:580aba13d1a1 | 18 | Since this repository itself only maintains the communication layer of mROS 2, we also publish the implementation on the embedded board using this layer and the embedded kernel. |
smoritaemb | 0:580aba13d1a1 | 19 | Please see each repository to learn how to use it. |
smoritaemb | 0:580aba13d1a1 | 20 | |
smoritaemb | 0:580aba13d1a1 | 21 | |
smoritaemb | 0:580aba13d1a1 | 22 | | name | board | kernel | |
smoritaemb | 0:580aba13d1a1 | 23 | |:---|:---|:---| |
smoritaemb | 0:580aba13d1a1 | 24 | | [mros2-asp3-f767zi](https://github.com/mROS-base/mros2-asp3-f767zi) |[STM32 NUCLEO-F767ZI](https://www.st.com/en/evaluation-tools/nucleo-f767zi.html) | [TOPPERS/ASP3](https://www.toppers.jp/en/project.html) | |
smoritaemb | 0:580aba13d1a1 | 25 | |
smoritaemb | 0:580aba13d1a1 | 26 | Please let us know if you have a request for a support of board/kernel, or if you could implement this layer on another platform. |
smoritaemb | 0:580aba13d1a1 | 27 | |
smoritaemb | 0:580aba13d1a1 | 28 | ## License |
smoritaemb | 0:580aba13d1a1 | 29 | |
smoritaemb | 0:580aba13d1a1 | 30 | The source code of this repository itself is published under [Apache License 2.0](https://github.com/mROS-base/mros2/blob/main/LICENSE). |
smoritaemb | 0:580aba13d1a1 | 31 | Please note that this repository contains [embeddedRTPS and its third party libraries](https://github.com/mROS-base/embeddedRTPS#third-party-libraries) as the submodule, and also check their Licenses. |