Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch 8 - check but is redundant? #8

Open
wants to merge 54 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5cc5dad
rmw_fastrtps_cpp report 2021 (#44)
IkerLuengo Oct 5, 2021
ed10fb7
Change ROS2 -> ROS 2 in the eProsima Humble report. (#60)
clalancette Oct 5, 2021
526a461
Remove trailing whitespace from eProsima report. (#61)
clalancette Oct 5, 2021
78a7049
In the eProsima report, change cycloneDDS -> Cyclone DDS (#62)
clalancette Oct 5, 2021
f8a7eef
Fix up image rendering in the eProsima response. (#63)
clalancette Oct 5, 2021
a5ef75d
Fix the links to the eProsima images. (#64)
clalancette Oct 5, 2021
3ecc957
Fix a number of very minor typos in the eProsima part of the report. …
clalancette Oct 5, 2021
4b919f5
The Humble report for Eclipse Cyclone DDS (#66)
clalancette Oct 7, 2021
e2edf23
Remove trailing whitespace from Cyclone DDS report.
clalancette Oct 6, 2021
2f61a6e
Remove width=50% from images in Cyclone DDS report.
clalancette Oct 6, 2021
18e2814
Get the report skeleton in place. (#68)
clalancette Oct 7, 2021
1504969
Fix cyclone typos and fix quality link (#69)
paudrow Oct 7, 2021
4a67e9c
Minor fixes to links in eProsima response. (#70)
clalancette Oct 8, 2021
7cea742
Try to fix the table formatting for REP-2004. (#71)
clalancette Oct 8, 2021
14c8052
Add in a discussion for the REP-2004 table. (#72)
clalancette Oct 8, 2021
57450b4
Rerun the objective measurements for Humble (#73)
clalancette Oct 8, 2021
d09ffe2
change link caption for Fast DDS response (#74)
IkerLuengo Oct 11, 2021
cb5ec42
Write large pieces of the Humble report.
clalancette Oct 8, 2021
b333231
Typos and formatting changes
paudrow Oct 12, 2021
1e7ecee
Exec summary + number sections
paudrow Oct 12, 2021
cd45b25
Add an Appendix and do some editing.
clalancette Oct 12, 2021
a6ec342
Updated dates on data to correct date, made nb easier to change date,…
kscottz Oct 12, 2021
2267687
Merge pull request #76 from osrf/humble-additions
kscottz Oct 12, 2021
39ff434
Early redacted data, will update later.
kscottz Oct 12, 2021
c369466
plots for new data.
kscottz Oct 12, 2021
6290e66
Merge pull request #77 from osrf/humble-additions
kscottz Oct 12, 2021
44fc7f7
A few more minor edits. (#78)
clalancette Oct 13, 2021
301bc85
Final Data
kscottz Oct 13, 2021
7fdb873
Last plot tweaks.
kscottz Oct 13, 2021
2f4c9cf
Rough plots.
kscottz Oct 13, 2021
3ce0db9
Merge pull request #80 from osrf/humble-additions
kscottz Oct 13, 2021
81dcf96
fixed typos and minor omissions (#79)
joespeed Oct 13, 2021
b7cc5d8
Adding the text to go with plots and quotes.
kscottz Oct 13, 2021
5194a66
Merge pull request #81 from osrf/humble-additions
kscottz Oct 13, 2021
bb548d9
Formatting fix.
kscottz Oct 13, 2021
eb8bde2
Merge pull request #82 from osrf/humble-additions
kscottz Oct 13, 2021
94907d9
Formatting test.
kscottz Oct 13, 2021
adcea34
Merge pull request #83 from osrf/humble-additions
kscottz Oct 13, 2021
795ec30
Proof reading, formatting, consistency.
kscottz Oct 13, 2021
9ba7f44
Merge pull request #84 from osrf/humble-additions
kscottz Oct 13, 2021
aba75d2
Uhg, open quote fix.
kscottz Oct 13, 2021
5375d50
Merge pull request #85 from osrf/humble-additions
kscottz Oct 13, 2021
bbc6314
Adding more quotes.
kscottz Oct 13, 2021
1a5e777
Merge pull request #86 from osrf/humble-additions
kscottz Oct 13, 2021
ef6e9d9
Fill in executive summary, Fast DDS to Fast RTPS
kscottz Oct 13, 2021
b73088c
Merge branch 'main' into humble-additions
kscottz Oct 13, 2021
3ca2132
Merge pull request #87 from osrf/humble-additions
kscottz Oct 13, 2021
8cea2dc
"manual and nightly performance testing"
joespeed Oct 14, 2021
f3230bc
Update README.md
joespeed Oct 14, 2021
cad6299
Update README.md
joespeed Oct 14, 2021
97eeaaa
Update README.md
joespeed Oct 14, 2021
2800974
Update README.md
joespeed Oct 14, 2021
d8a9a54
Update README.md
joespeed Oct 14, 2021
d5dd864
OR build farm nightly performance testing
joespeed Oct 14, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix a number of very minor typos in the eProsima part of the report. (o…
…srf#65)

Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
  • Loading branch information
clalancette authored Oct 5, 2021
commit 3ecc957e8c8116a0a3046d69ecc2033ca8ffe9a1
28 changes: 14 additions & 14 deletions humble/eProsima-response.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ We found there are two kinds of problems with services: requests that are lost d
Service discovery relies on the discovery of the request/reply topics.
However, both topics are discovered asynchronously, so it is possible that the request topic entities are matched while the response entities are not fully matched yet.
In this situation, if the client makes a request, the response will be lost.
We already proposed a possible solution to this in https://github.com/ros2/rmw_fastrtps/pull/418.
We already proposed a possible solution to this in [https://github.com/ros2/rmw_fastrtps/pull/418](https://github.com/ros2/rmw_fastrtps/pull/418).
Summarizing, this solution proposes that the request publisher sends the GUID of its corresponding response subscriber,
and the server will hold a list of pending requests that will be answered only when the response subscriber has been discovered.
This solution requires RMW implementations to agree how the GUID is going to be sent, to avoid interoperability issues.
Expand Down Expand Up @@ -220,11 +220,11 @@ You can find a complete analysis of the discovery performance of Fast DDS over W

### What is the roadmap and where is it documented?

You can find the roadmap [here](https://github.com/eProsima/Fast-DDS/blob/master/roadmap.md)
You can find the roadmap [here](https://github.com/eProsima/Fast-DDS/blob/master/roadmap.md).

### Can the middleware be configured to be memory-static at runtime?

Yes, see [the documentation](https://fast-dds.docs.eprosima.com/en/latest/fastdds/use_cases/realtime/allocations.html#realtime-allocations)
Yes, see [the documentation](https://fast-dds.docs.eprosima.com/en/latest/fastdds/use_cases/realtime/allocations.html#realtime-allocations).

### What support is there for microcontrollers?

Expand Down Expand Up @@ -257,7 +257,7 @@ The user can track the status of publication/subscription communications between

### What is the currently declared REP-2004 quality of the package implementing the RTPS/DDS protocols and the RMW?

- eProsima Fast DDS has QL1. The Quality declaration document can be found [here](https://github.com/eProsima/Fast-DDS/blob/master/QUALITY.md)
- eProsima Fast DDS has QL1. The Quality declaration document can be found [here](https://github.com/eProsima/Fast-DDS/blob/master/QUALITY.md).
- rmw_fastrtps has QL2.

### How else does the package measure quality? Please list specific procedures or tools that are used.
Expand Down Expand Up @@ -294,7 +294,7 @@ The process can be found in [CONTRIBUTING](https://github.com/eProsima/policies/
Unit tests, integration tests and coverage tests are run before accepting any pull request and on nightly jobs.
Performance tests are run after merging to the master branch.

All tests are run on linux, windows, MacOS and linux aarch64 platforms.
All tests are run on Linux, Windows, MacOS and Linux aarch64 platforms.

### Has the DDS Security implementation been audited by a third-party?

Expand All @@ -314,7 +314,7 @@ For a complete description of the benchmark framework, procedure and results, pl

### Testing framework

Tests have been executed on Raspberry-pi 4b+, linux laptops and windows laptops.
Tests have been executed on Raspberry-pi 4b+, Linux laptops and Windows laptops.

For the test to be reproducible, they were performed using a fork of the [Apex performance test tool](https://gitlab.com/ApexAI/performance_test.git).
This fork has the necessary changes needed for the tools to build on Windows systems.
Expand Down Expand Up @@ -399,7 +399,7 @@ The following plot shows the throughput on a windows platform beyond 2M:

Fast DDS has plenty of unique features driven by ROS 2 requirements, and the difference in functionality and quality between Fast DDS and Cyclone DDS is huge.

It is important to note that for many cases, both implementations have equal performance, and latencies and throughputs are going to be very similar as it has been shown in the benchmarking. In this scenario, it is very hard to choose just looking at numbers or graphs. But being the performance very similar, **there are other dimensions where the difference is really huge**. This section reviews these: A lot More Features, better quality and documentation, stronger team and community. Here is where Fast DDS really makes the difference.
It is important to note that for many cases, both implementations have equal performance, and latencies and throughputs are going to be very similar as it has been shown in the benchmarking. In this scenario, it is very hard to choose just looking at numbers or graphs. But being the performance very similar, **there are other dimensions where the difference is really huge**. This section reviews these: a lot more features, better quality and documentation, stronger team and community. Here is where Fast DDS really makes the difference.

## **Documentation** :

Expand All @@ -417,13 +417,13 @@ Fast DDS QL1 vs Cyclone DDS is QL2 (and this is a [huge difference](https://www.
- **Visual-ROS** : Beta already available. We will show the result during the ROSCON, as promised.
- **Micro-ROS Galactic** : **Released!** In this case, we delivered what was planned and a lot more. [Take a look](https://discourse.ros.org/t/micro-ros-galactic-release/20765)

Besides the planned roadmap, we delivered many new features not planned initially: [Conditions and waitsets](https://fast-dds.docs.eprosima.com/en/latest/fastdds/dds_layer/core/waitsets/waitsets.html#dds-layer-core-waitsets),
Besides the planned roadmap, we delivered many new features not planned initially: [Conditions and waitsets](https://fast-dds.docs.eprosima.com/en/latest/fastdds/dds_layer/core/waitsets/waitsets.html#dds-layer-core-waitsets).

On the other hand, [Cyclone DDS published a very aggressive roadmap](https://discourse.ros.org/t/cyclonedds-roadmap-multi-network-async-content-filtering-ql1-et-al/17561/19) to win the latest votation, which has been demonstrated as pure [vaporware](https://en.wikipedia.org/wiki/Vaporware).

## **Performance** :

As it has been shown in this report, while for many cases the performance of both implementations is similar, Fast DDS outperformed Cyclone DDS in very significant cases, being especially noticeable in the Windows platform. Fast DDS supports Shared memory in all supported platforms including windows, while Cyclone DDS has [many limitations](https://cyclonedds.io/docs/cyclonedds/latest/shared_memory.html#limitations) and **no windows support.**
As it has been shown in this report, while for many cases the performance of both implementations is similar, Fast DDS outperformed Cyclone DDS in very significant cases, being especially noticeable in the Windows platform. Fast DDS supports Shared memory in all supported platforms including windows, while Cyclone DDS has [many limitations](https://cyclonedds.io/docs/cyclonedds/latest/shared_memory.html#limitations) and **no Windows support.**

## **Unique** **Features** : All available in ROS 2.

Expand All @@ -449,7 +449,7 @@ This tool saves many messages and it has been proved the perfect discovery solut
- **Flexibility** : Every node can act as a Server or Client distinctively, no daemon process is needed.
- **Ease-of-use** : Configuration can be done using either an environment variable or XML files. Furthermore, Fast DDS brings a new CLI that enables launching a Discovery Server with a simple command.

The performance and scalability of this mechanism has been extensively tested, and we published a [very complete study](https://www.eprosima.com/index.php/resources-all/scalability/fast-rtps-discovery-mechanisms-analysis)
The performance and scalability of this mechanism has been extensively tested, and we published a [very complete study](https://www.eprosima.com/index.php/resources-all/scalability/fast-rtps-discovery-mechanisms-analysis).

During the latest year we have been improving even more this tool, and in our latest release we added two important features:

Expand All @@ -468,7 +468,7 @@ The flow controller can also be used in situations where you have high bandwidth

## Shared Memory &amp; Zero-Copy - Full support for **ALL** **ROS 2 platforms**

[Fast DDS supports Shared memory &amp; Zero-copy](https://www.eprosima.com/index.php/products-all/tools/eprosima-shared-memory) **in all supported platforms** including windows, while Cyclone DDS has [many limitations](https://cyclonedds.io/docs/cyclonedds/latest/shared_memory.html#limitations) and **no windows support.**
[Fast DDS supports Shared memory &amp; Zero-copy](https://www.eprosima.com/index.php/products-all/tools/eprosima-shared-memory) **in all supported platforms** including windows, while Cyclone DDS has [many limitations](https://cyclonedds.io/docs/cyclonedds/latest/shared_memory.html#limitations) and **no Windows support.**

Another interesting feature of our shared memory implementation is that it is fully integrated with Fast DDS, and **it does not require to run any external daemon** , as in other implementations.

Expand Down Expand Up @@ -512,7 +512,7 @@ Any communications middleware can use 5G as a data link, and ROS 2 is going to w

In order to simplify this process, Ericsson and eProsima released native ROS 2 support for [creating unique network flows using Fast DDS](https://fast-dds.docs.eprosima.com/en/latest/fastdds/use_cases/unique_network_flows/unique_network_flows.html).

TSN is also possible, and it is described by NXP [here](https://github.55860.com/NXP/dds-tsn)
TSN is also possible, and it is described by NXP [here](https://github.55860.com/NXP/dds-tsn).

## Micro-ROS

Expand Down Expand Up @@ -546,9 +546,9 @@ Also our user base is growing every day: around 50K clones per month of our main

## To be released before the end of 2021 - already in development.

- **Dynamic Network interfaces** : Until now when the network interfaces changed, you needed to re-start ROS 2 to make it aware of the changes. With this new feature, Fast DDS will detect the changes and everything will work properly. To be released in december.
- **Dynamic Network interfaces** : Until now when the network interfaces changed, you needed to re-start ROS 2 to make it aware of the changes. With this new feature, Fast DDS will detect the changes and everything will work properly. To be released in December.

- **Python Bindings** : Complete python bindings, to be released in november.
- **Python Bindings** : Complete python bindings, to be released in November.

- [**Visual-ROS**](https://eprosima.com/index.php/products-all/r-d-projects/eu-project-dih2-visual-ros): Visual ROS is already in beta, and we will start doing demos in the next few weeks. You can read more about this tool in our news release [here](https://www.eprosima.com/index.php/company-all/news/175-eprosima-presents-visual-ros)

Expand Down