Introduction
Some components of the voraus ecosystem, for example the EtherCAT Master, run deterministic, time-critical control loops (e.g. 1 kHz). The EtherCAT Master has to send a packet in each cycle with as little jitter as possible. A missing packet may for example lead to jerky motion, degraded path accuracy, or, in the worst case, an emergency stop.
However, operating systems are normally optimized for performance, rather than latency. For performance reasons, it is often better to finish the currently running housekeeping task, even if a high priority task is runnable. To be able to run real-time software reliably some tuning is necessary.
For example, Linux can be configured (at build time) to prioritize latency over throughput.
voraus-rt-ipc-eval is a tool that evaluates the real-time capabilities of a system for use with the voraus ecosystem. It runs cyclictest and a network test under artificial system load and records latency data that lets you decide whether the machine is ready to run time-critical voraus components.
Note: voraus-rt-ipc-eval has been inspired by RtEval. Since the components of the voraus ecosystem have different requirements (e.g. network load) we decided to do this separate implementation. If you don't have these requirements and just want to evaluate the general real-time performance of your system, RtEval might be the better choice for that.