Skip to content

ROS Cyclone DDS communcations Test

Hector Cruz edited this page Jun 17, 2024 · 7 revisions

Test Description

The objective of this analysis is to calculate two key metrics:

  1. Latency: The time it takes for a message produced by a sensor driver to reach an analyser node.
  2. Cyclic Time: The time it takes for the driver to produce a new message. This is equivalent to 1/sensor_frequency

Sensor Drivers

  • Ouster
  • Velodyne
  • Flir Cameras

Hardware

  • Processor: Intel i7-11800 (up to 4.6 GHz, Hector's Laptop)
  • CPU Governance: performance

The nodes can either run in different processes or within the same process using a component_container.


Ouster Lidar

Msg Details

  • Topic: /sensor/lidar/top/points
  • Message Payload: 12.8 MiB
  • Message Bandwidth: ~126 MiB/s

Driver -> Analsyser (Different containers)

Both nodes are launched in different component_containers, resulting in different process IDs.

Without Inter-process Communication

[INFO] [1718641672.584598416] [analyser]: Pointcloud delay:       Avg: 13.885 ms, Std: 4.394 ms,  Min: 10.207 ms, Max: 24.437 ms, Samples: 10
[INFO] [1718641672.584714708] [analyser]: Pointcloud cyclic time:         Avg: 97.191 ms, Std: 4.305 ms,  Min: 86.290 ms, Max: 101.741 ms, Samples: 10
[INFO] [1718641673.584711379] [analyser]: Pointcloud delay:       Avg: 10.535 ms, Std: 0.236 ms,  Min: 10.259 ms, Max: 11.112 ms, Samples: 10
[INFO] [1718641673.584766228] [analyser]: Pointcloud cyclic time:         Avg: 100.011 ms, Std: 0.407 ms,  Min: 99.310 ms, Max: 100.725 ms, Samples: 10
[INFO] [1718641674.585194970] [analyser]: Pointcloud delay:       Avg: 10.712 ms, Std: 0.355 ms,  Min: 10.313 ms, Max: 11.509 ms, Samples: 10
[INFO] [1718641674.585246947] [analyser]: Pointcloud cyclic time:         Avg: 100.048 ms, Std: 0.498 ms,  Min: 99.436 ms, Max: 100.875 ms, Samples: 10
[INFO] [1718641675.584868684] [analyser]: Pointcloud delay:       Avg: 10.570 ms, Std: 0.206 ms,  Min: 10.319 ms, Max: 10.943 ms, Samples: 10
[INFO] [1718641675.584922492] [analyser]: Pointcloud cyclic time:         Avg: 99.967 ms, Std: 0.192 ms,  Min: 99.617 ms, Max: 100.201 ms, Samples: 10
[INFO] [1718641676.584855716] [analyser]: Pointcloud delay:       Avg: 10.336 ms, Std: 0.048 ms,  Min: 10.263 ms, Max: 10.409 ms, Samples: 10
[INFO] [1718641676.584910680] [analyser]: Pointcloud cyclic time:         Avg: 99.998 ms, Std: 0.075 ms,  Min: 99.855 ms, Max: 100.141 ms, Samples: 10
[INFO] [1718641677.584789762] [analyser]: Pointcloud delay:       Avg: 10.635 ms, Std: 0.379 ms,  Min: 10.216 ms, Max: 11.453 ms, Samples: 10
[INFO] [1718641677.584843921] [analyser]: Pointcloud cyclic time:         Avg: 99.993 ms, Std: 0.556 ms,  Min: 99.211 ms, Max: 101.234 ms, Samples: 10
[INFO] [1718641678.584784001] [analyser]: Pointcloud delay:       Avg: 10.526 ms, Std: 0.175 ms,  Min: 10.245 ms, Max: 10.853 ms, Samples: 10
[INFO] [1718641678.584852571] [analyser]: Pointcloud cyclic time:         Avg: 99.999 ms, Std: 0.313 ms,  Min: 99.533 ms, Max: 100.486 ms, Samples: 10
[INFO] [1718641679.585164962] [analyser]: Pointcloud delay:       Avg: 10.515 ms, Std: 0.260 ms,  Min: 10.278 ms, Max: 11.134 ms, Samples: 10
[INFO] [1718641679.585232608] [analyser]: Pointcloud cyclic time:         Avg: 100.038 ms, Std: 0.377 ms,  Min: 99.195 ms, Max: 100.668 ms, Samples: 10
[INFO] [1718641680.585309812] [analyser]: Pointcloud delay:       Avg: 10.992 ms, Std: 0.375 ms,  Min: 10.405 ms, Max: 11.868 ms, Samples: 10
[INFO] [1718641680.585363797] [analyser]: Pointcloud cyclic time:         Avg: 100.014 ms, Std: 0.497 ms,  Min: 99.029 ms, Max: 100.881 ms, Samples: 10

With Inter-process Communication (Iceoryx-RouDi)

Around 30-40 % less latency

[INFO] [1718642649.946398164] [analyser]: Pointcloud delay:       Avg: 6.632 ms, Std: 0.182 ms,  Min: 6.456 ms, Max: 7.048 ms, Samples: 10
[INFO] [1718642649.946446467] [analyser]: Pointcloud cyclic time:         Avg: 99.983 ms, Std: 0.285 ms,  Min: 99.505 ms, Max: 100.513 ms, Samples: 10
[INFO] [1718642650.946546690] [analyser]: Pointcloud delay:       Avg: 6.735 ms, Std: 0.459 ms,  Min: 6.422 ms, Max: 8.063 ms, Samples: 10
[INFO] [1718642650.946598346] [analyser]: Pointcloud cyclic time:         Avg: 100.014 ms, Std: 0.682 ms,  Min: 98.659 ms, Max: 101.626 ms, Samples: 10
[INFO] [1718642651.946226308] [analyser]: Pointcloud delay:       Avg: 6.480 ms, Std: 0.138 ms,  Min: 6.342 ms, Max: 6.764 ms, Samples: 10
[INFO] [1718642651.946276856] [analyser]: Pointcloud cyclic time:         Avg: 99.967 ms, Std: 0.173 ms,  Min: 99.682 ms, Max: 100.297 ms, Samples: 10
[INFO] [1718642652.946811211] [analyser]: Pointcloud delay:       Avg: 7.194 ms, Std: 0.355 ms,  Min: 6.773 ms, Max: 8.082 ms, Samples: 10
[INFO] [1718642652.946860797] [analyser]: Pointcloud cyclic time:         Avg: 100.058 ms, Std: 0.580 ms,  Min: 98.962 ms, Max: 100.955 ms, Samples: 10
[INFO] [1718642653.946709464] [analyser]: Pointcloud delay:       Avg: 7.001 ms, Std: 0.145 ms,  Min: 6.783 ms, Max: 7.202 ms, Samples: 10
[INFO] [1718642653.946754575] [analyser]: Pointcloud cyclic time:         Avg: 99.989 ms, Std: 0.253 ms,  Min: 99.627 ms, Max: 100.372 ms, Samples: 10
[INFO] [1718642654.946274570] [analyser]: Pointcloud delay:       Avg: 6.773 ms, Std: 0.191 ms,  Min: 6.472 ms, Max: 7.061 ms, Samples: 10
[INFO] [1718642654.946327537] [analyser]: Pointcloud cyclic time:         Avg: 99.956 ms, Std: 0.193 ms,  Min: 99.520 ms, Max: 100.171 ms, Samples: 10
[INFO] [1718642655.946387229] [analyser]: Pointcloud delay:       Avg: 6.823 ms, Std: 0.232 ms,  Min: 6.632 ms, Max: 7.305 ms, Samples: 10
[INFO] [1718642655.946438291] [analyser]: Pointcloud cyclic time:         Avg: 100.011 ms, Std: 0.356 ms,  Min: 99.403 ms, Max: 100.670 ms, Samples: 10
[INFO] [1718642656.946169424] [analyser]: Pointcloud delay:       Avg: 6.742 ms, Std: 0.251 ms,  Min: 6.434 ms, Max: 7.229 ms, Samples: 10
[INFO] [1718642656.946219768] [analyser]: Pointcloud cyclic time:         Avg: 99.978 ms, Std: 0.277 ms,  Min: 99.669 ms, Max: 100.689 ms, Samples: 10
[INFO] [1718642657.946187212] [analyser]: Pointcloud delay:       Avg: 6.603 ms, Std: 0.099 ms,  Min: 6.517 ms, Max: 6.877 ms, Samples: 10
[INFO] [1718642657.946240076] [analyser]: Pointcloud cyclic time:         Avg: 100.001 ms, Std: 0.136 ms,  Min: 99.723 ms, Max: 100.280 ms, Samples: 10
[INFO] [1718642658.946197654] [analyser]: Pointcloud delay:       Avg: 6.761 ms, Std: 0.174 ms,  Min: 6.517 ms, Max: 7.177 ms, Samples: 10
[INFO] [1718642658.946245889] [analyser]: Pointcloud cyclic time:         Avg: 100.001 ms, Std: 0.274 ms,  Min: 99.487 ms, Max: 100.524 ms, Samples: 10
[INFO] [1718642659.946470658] [analyser]: Pointcloud delay:       Avg: 6.883 ms, Std: 0.111 ms,  Min: 6.679 ms, Max: 7.055 ms, Samples: 10
[INFO] [1718642659.946520039] [analyser]: Pointcloud cyclic time:         Avg: 100.027 ms, Std: 0.160 ms,  Min: 99.816 ms, Max: 100.262 ms, Samples: 10
[INFO] [1718642660.946154211] [analyser]: Pointcloud delay:       Avg: 6.829 ms, Std: 0.053 ms,  Min: 6.751 ms, Max: 6.908 ms, Samples: 10
[INFO] [1718642660.946206545] [analyser]: Pointcloud cyclic time:         Avg: 99.968 ms, Std: 0.096 ms,  Min: 99.827 ms, Max: 100.151 ms, Samples: 10
[INFO] [1718642661.945978492] [analyser]: Pointcloud delay:       Avg: 6.731 ms, Std: 0.132 ms,  Min: 6.525 ms, Max: 6.877 ms, Samples: 10
[INFO] [1718642661.946030487] [analyser]: Pointcloud cyclic time:         Avg: 99.982 ms, Std: 0.067 ms,  Min: 99.890 ms, Max: 100.102 ms, Samples: 10

Driver -> Analsyser (Same component container)

use_intra_process_comms=False TODO

use_intra_process_comms=True TODO

Clone this wiki locally