Git Product home page Git Product logo

ros2-performance's Introduction

Performances

iRobot ROS2 performance evaluation framework

ROS2 Performance Framework

We developed a framework that allows to easily create arbitrary ROS2 systems and then measures their performance. With this framework you can define your system at runtime using json files or with command line options.

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. However, our frameworks also support having multiple processes running at the same time.

The goal is to develop a set of experiments which are easily reproducible and provide useful insights on the ROS2 performances. Moreover, it is possible to create proxy applications that mimic a real, complex, system and to measure what's the overhead of ROS2 communication in such a context.

We can easily repeat our tests with different ROS2 distributions or middlewares. For each ROS2 distribution we aim to:

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. Running our application also allowed to find regressions with respect to the previous releases.

Proposals

Proposals

This directory contains the design proposals that we made to improve the ROS2 core and its performances.

Cross-Compilation

Cross-Compilation

This repository also contains a Docker-based cross-compilation framework for cross-compiling the whole ROS2 SDK or single packages for the RaspberryPi. This framework was designed to be easily extended to new architectures.

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

External tools and 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

ros2-performance's People

Contributors

alsora avatar eliasdc avatar dgoel avatar betab0t avatar raghaprasad avatar divya-aggarwal-apex avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.