The repository is used to compare the performance of rmw_zenoh, rmw_cyclonedds, rmw_fastdds.
-
Environment Preparation:
- Native Host: Install ROS 2 rolling and Rust
- Docker:
./container/container.sh
-
Clean the environment
rm -rf build install log src
- Download and build the code
./build.sh
- Run the benchmark
# 1st terminal
source install/setup.bash
ros2 run rmw_zenoh_cpp rmw_zenohd
# 2nd terminal
source install/setup.bash
# throughput test
./throughput.sh
# latency test
./latency.sh
We run the tests with different sizes for every RMW implementations. We'll draw four plots: Throughput, Latency(max, mean, min)
- Throughput: running 60 sec and calculate the average of
data_received
field. - latency_mean: running 60 sec and calculate the average of
latency_mean
field. - latency_max: running 60 sec and get the maximum value of
latency_max
field. - latency_min: running 60 sec and get the minimum value of
latency_min
field.