Skip to content

Latest commit

 

History

History
109 lines (68 loc) · 5.21 KB

README.md

File metadata and controls

109 lines (68 loc) · 5.21 KB

Performances

iRobot ROS2 performance evaluation

For each ROS2 core concept, we developed several tests for evaluating its performances.

iRobot ROS2 Performance Evaluation Framework

For a whole system performance evaluation, we have developed benchmark applications

iRobot ROS2 Benchmark applications

These are the main metrics that we are interested in:

  • Latency
  • Reliability
  • CPU usage
  • Memory usage

Due to our specific application scenario and to the new ROS2 multithread capabilities, we made most of the evaluations running all nodes in a single process. Evaluations have been performed on standard x86_64 laptops as well as on embedded platforms.

If you want to repeat the experiments, eventually with different parameters, follow the Build Instructions.

Motivations

The goal is to develop a set of experiments which are easily reproducible and provide useful insights on the ROS2 performances. This allows to easily repeat them as soon as a new ROS2 distribution is released.

For each ROS2 distribution we aim to:

  • Test all the ROS2 features.
  • Find limits/bugs.
  • Perform regression tests with respect to the previous distribution.

Early results are suggesting us that this is the correct way to go, as we are spotting the strengths and weaknesses of ROS2 and helping the ROS2 community to grow, by signaling and fixing bugs to the ROS2 core implementation.

Creating ROS2 systems

We tested ROS2 on many different systems. In order to do that we implemented tools that allow users to easily create any number of nodes with the same characteristics as well as tools for manually crafting your own graph topology and measure its performances.

Cross-Compilation

This repository also contains some Docker-based tools for cross-compiling ROS2 SDK and single packages for RaspberryPi.

You can find detailed instructions in the cross-compiling directory.

Experiments

Here you find links to the experiments for the most recent ROS2 distribution. Each README file contains a description of the experiment, instructions for reproducing it and the results obtained.

Experiment README
Benchmarking applications README.md
Discovery time README.md
Pub/Sub Latency README.md
Pub/Sub Reliability README.md
Pub/Sub Memory usage README.md
Pub/Sub CPU usage README.md
Client/Service systems README.md
Bouncy-Crystal regression test README.md

External tools an resources

Apex AI ROS2 Evaluation tool

ApexAI provides an alternative valid performance evaluation framework, which allows to test different type of messages. Our implementation is inspired by their work.

Other evaluation tools

DDS Vendors advertised performance

Performances discussions

Papers