You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-11
Original file line number
Diff line number
Diff line change
@@ -5,27 +5,29 @@ It consists of basic APIs for pub/sub communication, RTPS protocol, UDP/IP stack
5
5
Embedded nodes can now communicate directly with native ROS 2 nodes via topic!
6
6
7
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.
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.
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.
9
9
10
10
## Features
11
11
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.
13
-
- mros2 currently uses [embeddedRTPS @ 1410a87](https://github.com/mROS-base/embeddedRTPS/tree/1410a8776660244249a84031ffa78c9bdaa45e19) as it is.
12
+
-**Agent-less**: A node on mROS 2 autonomously discovers communication nodes on the host. No agent/bridge is required for pub/sub communication from the embedded devices.
13
+
- mros2 adopts [embeddedRTPS](https://github.com/mROS-base/embeddedRTPS) with some modifications.
14
14
-**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++.
15
-
-**Real-time**: mROS 2 employs the real-time kernel (e.g., [TOPPERS kernel](https://www.toppers.jp/en/project.html), [Mbed OS](https://os.mbed.com/mbed-os/)) as the runtime platform in order to enhance the real-time capability.
15
+
-**Real-time**: mROS 2 uses the real-time kernel (e.g., [TOPPERS kernel](https://www.toppers.jp/en/project.html), [Mbed OS](https://os.mbed.com/mbed-os/)) as the runtime platform in order to enhance the real-time capability.
16
16
17
17
## Functionalities and limitations
18
18
19
-
Here are functionalities that mROS 2 offers for you, and current limitations (a.k.a call for your contibutions!).
19
+
Here are the functionalities that mROS 2 offers for you, and current limitations (a.k.a call for your contributions!).
20
20
21
21
- Pub/Sub communication via Topic is supported
22
-
-[Built-in-types](https://docs.ros.org/en/foxy/Concepts/About-ROS-Interfaces.html#field-types) except for `wstring` (UTF-16)
23
-
-Please check [mros2-asp3-f767zi#exapmle-applications](https://github.com/mROS-base/mros2-asp3-f767zi#example-applications) for more details.
-`wstring` (UTF-16) is not provided due to its difficulty in verification, but it is unlikely to be used.
24
24
-`array` types are not supported
25
25
- Some custom message types (e.g., Twist, Pose)
26
-
- We think variable-length types and types exceeding one packet cannot be handled, probably due to the limitation of lwIP.
26
+
- Please check [mros2-mbed#generating-header-files-for-custom-msgtypes](https://github.com/mROS-base/mros2-mbed#generating-header-files-for-custom-msgtypes) for more details.
27
+
- Fragmented message types (that exceed one packet) are experimentally supported. See [PR#36](https://github.com/mROS-base/mros2/pull/36) for more details.
28
+
- We think variable-length types cannot be handled, probably due to the limitation of lwIP.
27
29
- Service, Actions, and Parameters are not supported
28
-
- Please let us know if you want to use them as soon as possible. We can consider of raising the priority of these supports.
30
+
- Please let us know if you want to use them as soon as possible. We can consider raising the priority of these supports.
29
31
30
32
## Supported platform
31
33
@@ -37,11 +39,12 @@ Please see each repository to learn how to use it.
37
39
|:---|:---|:---|:---|
38
40
|[mros2-asp3-f767zi](https://github.com/mROS-base/mros2-asp3-f767zi)|[TOPPERS/ASP3](https://www.toppers.jp/en/project.html)|[STM32 NUCLEO-F767ZI](https://www.st.com/en/evaluation-tools/nucleo-f767zi.html)| currently supported up to v0.3.2 (see [status](https://github.com/mROS-base/mros2-asp3-f767zi/issues/74)) |
39
41
|[mros2-mbed](https://github.com/mROS-base/mros2-mbed)|[Mbed OS 6](https://github.com/ARMmbed/mbed-os)| Mbed enabled boards having an Ethernet port (See [detail](https://github.com/mROS-base/mros2-mbed#supported-environment)) | well maintained and easy to try |
42
+
|[mros2-esp32](https://github.com/mROS-base/mros2-esp32)|[ESP-IDF FreeRTOS](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos_idf.html)| ESP32 boards with 2.4 GHz Wi-Fi (See [detail](https://github.com/mROS-base/mros2-esp32#supported-environment)) | well maintained |
40
43
|[mros2-posix](https://github.com/mROS-base/mros2-posix)| POSIX (pthread) | any machine that runs Linux | partly maintained |
41
44
42
-
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.
45
+
Please let us know if you have a request for support for other boards/kernels, or if you could implement this layer on other platforms.
43
46
44
47
## License
45
48
46
49
The source code of this repository itself is published under [Apache License 2.0](https://github.com/mROS-base/mros2/blob/main/LICENSE).
47
-
Please note that this repository contains [embeddedRTPS and its thirdparty libraries](https://github.com/mROS-base/embeddedRTPS#third-party-libraries) as the submodule, and also check their Licenses.
50
+
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.
0 commit comments