03-04-2025

Real-time Linux voor industriële robotica – een systematische validatieaanpak

Real-time Linux voor industriële robotica – een systematische validatieaanpak

Real-time Linux voor industriële robotica – een systematische validatieaanpak

ROS2 en real-time Linux bieden potentieel voor een breed scala aan geavanceerde industriële automatiseringsoplossingen. Maar is real-time Linux een haalbare oplossing? Onderzoek is uitgevoerd naar de implementatie van real-time Linux voor industriële robotica, met speciale aandacht voor de validatie van de PREEMPT_RT Linux-kernel patch en de integratie met het ROS2-framework.

ROS2 en realtime Linux openen de deur naar diverse geavanceerde automatiseringsoplossingen binnen de industrie. Maar in hoeverre is realtime Linux daadwerkelijk een haalbare optie? Dit onderzoek richtte zich op de implementatie van realtime Linux in industriële robotica, met specifieke focus op de validatie van de PREEMPT_RT Linux-kernelpatch en de integratie binnen het ROS2-framework.

Hiervoor werd een gestructureerd validatieproces in drie fasen toegepast:

🔹Hardware-niveau testen
Een 1 kHz GPIO pin-toggle test werd uitgevoerd op meerdere platforms (Raspberry Pi 4, Intel NUC en ROScube, draaiend op Ubuntu22.04 LTS). De tests vergeleken een standaard Linux-kernel met de PREEMPT_RT(5.15.143-rt73) kernel. De resultaten tonen aan dat PREEMPT_RT detiming consistentie aanzienlijk verbetert, vooral onder volledige systeembelasting, waarbij jitter aanzienlijk werd verminderd.

🔹Systeemvalidatie (zie Figuur: Systeemvalidatie – Cyclictest resultaten)
Cyclictest-benchmarks werden uitgevoerd met intervallen van 200 microseconden over één miljoen iteraties op alle testplatforms. De bevindingen bevestigen dat PREEMPT_RT betere deterministische eigenschappen biedt, met name in maximale latentie. Een interessante observatie was dat beide kernels beter presteerden onder volledige CPU-belasting, waarschijnlijk omdat energiebesparingsfuncties bij hoge belasting worden uitgeschakeld op Intel-gebaseerde architecturen.

🔹ROS2-integratie & executor-analyse
Een diepgaande analyse van ROS2-executorstoonde aan dat de standaard executor niet-deterministisch gedrag vertoont als gevolg van afhankelijkheden in de aanmaakvolgorde. De experimentele Events Executor daarentegen biedt FIFO-garanties. Verschillende Linux-planningsbeleid(SCHED_DEADLINE, SCHED_FIFO, SCHED_RR) werden geëvalueerd, elk met unieke kenmerken voor berichtverwerking.

Docker-gebaseerde containerisatie tests onthulden een complexe interactie tussen kernel mogelijkheden en container configuraties. Hoewel container overhead de real-time prestaties beïnvloedt, blijft het waarborgen van systeemstabiliteit onder volledige belasting een cruciale overweging voor container-gebaseerde implementaties.

Best practices voor Linux & ROS2-implementatie
Belangrijke onderzoeksbevindingen hebben geleid tot essentiële best practices voor real-time implementaties:

🔹 CPU-controle & scheduling: Gebruik SCHED_FIFO voor real-timeprocessen, met chrt voor RT-prioriteiten en taskset voor CPU-pinning.

🔹Geheugenbeheer: Implementeer mlockall() voor geheugenvergrendeling enpre-allocate resources om dynamische geheugenallocatie in real-time codepadente vermijden.

🔹Synchronisatie: Vermijd std::mutex en gebruik in plaats daarvan priority inheritance mutexes. Waar mogelijk wordt lockless programming aanbevolen, hoewel dit aanzienlijke aanpassingen aan bestaande ROS2-nodesvereist.

🔹Logging & I/O: Vermijd directe logging in real-time secties. Gebruik in plaats daarvan asynchrone logging via lockless datacollecties en offload I/O-bewerkingen naar niet-real-time threads om problemen met prioriteitsinversie te voorkomen.

Het onderzoek is uitgevoerd door Mechatronics and Robotics onderzoeksgroep van Saxion in samenwerking met TValley-partners Viro, RIWO en Voortman het onderzoek is onderdeel van het TFF ROBBIN-project.

Contact

Privacy & Terms