Giter VIP home page Giter VIP logo

ros2_test's Introduction

ros2_test

About this package

This package provides:

  • ROS 2 nodes for testing ROS 2 performance;
    • CPU usage
    • CPU temperature
    • Memory usage
    • Latency
    • Amount of network communications
  • A notebook for analysing the data and draw figures.

Installation

git clone https://github.com/kaorunishikawa/ros2_test.git path/to/somewhere/in/your/machine/

If you need the previous version:

git clone -b v1.0.0 https://github.com/kaorunishikawa/ros2_test.git path/to/somewhere/in/your/machine/

Usage

Run Performance Test

  • Executor configuration in 1 PC:
. exec_bunch_num_test.sh <NUM>

where <NUM> is number of dummy pub/sub pairs to launch. With some ROS 2 nodes launched, this command can test the load of the nodes assigning the number 0:

ros2 launch <arbitrary launch file>
. exec_bunch_num_test.sh 0

The data is recorded in your ~/Documents/result_(date and time) directory. The path is displayed at the top and the last line of the terminal.

スクリーンショット 2021-03-31 19 04 44

Analyse the Data

This analysis tool uses xarray and other packages. Please configure the environment using

poetry install

or install them manually (list of packages needed is in [tool.poetry.dependencies] section of pyproject.toml).

Open analysis/analysis.ipynb, specify where the data is stored, and run draw_figure(path).

Enhancement

To test multiple machines performance,

  • comment out or configure Publisher nodes or Subscriber nodes accordingly (avoid conflict of node name, etc.) in ros2_test/exec_node.py
  • assign an environment variable ROS_DOMAIN_ID if needed
  • remote launch (using the shell script or launch file) the nodes via shellscript/ros2_performance_test.sh

ros2_test's People

Contributors

kaorunishikawa avatar dependabot[bot] avatar

Watchers

 avatar

ros2_test's Issues

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.