Problem and Motivation

Modern industrial and healthcare environments are increasingly adopting mission-critical robotic systems such as robotic arms, AGVs, automated inspection units and surgical robots that exchange control commands and sensor data every few milliseconds. These critical systems require predictable throughput, ultra-low latency, and highly stable wireless links. Even brief jitter or delay can disrupt the control loop and lead to unsafe or unstable behaviour.

While network slicing provides isolation and QoS differentiation, it does not control how PRBs are assigned to individual UEs inside the gNB. The final decision on resource allocation still depends on the RAN scheduler’s generic algorithms, which cannot guarantee deterministic, per-UE behaviour. As a result, even devices assigned to a high-priority slice may still experience jitter or throughput variation when competing for resources with other devices.

This reveals a gap for robotic systems that require strict, predictable performance. These time-sensitive systems need fine-grained, real-time control at the RAN level to maintain stable operation. To address this limitation, we built a custom xApp on the Near-RT RIC that allocates PRBs to the mission-critical UEs. This enables fine-grained, per-UE, real-time prioritisation of radio resources.

System Design

RAN: srsRAN Split 8 + USRP x310 + OctoClock-G CDA-2990

Core: Open5GS

RIC: OSC Near-RT RIC + PRB Allocation xApp

UE 1 (Critical): Jetson Nano + Robot + Quectel RMU500-EK + SysmoISIM

UE 2 (Non-critical): Pixel 8 pro + SysmoISIM

xApp system design

UDP Interface: Server on Robot + Client on Workstation

xApp system design

Implementation

We built a fully functional 5G Standalone (SA) testbed using the srsRAN stack configured in Split 8 architecture, running entirely on a local server. This server also hosted a UDP client and was connected to a wireless controller, which generated motion commands serialized as JSON.

For the radio setup, we used a USRP x310 synchronized with an OctoClock-G CDA-2990. The core network was powered by Open5GS, providing full control and user plane functionality. As the UE, we used a Quectel RMU500-EK 5G modem with a programmable sysmoISIM, achieving successful registration and full internet connectivity over our private 5G network.

The modem was then mounted on a Jetson Nano–based mini robot. A UDP server on the Jetson received JSON-encoded motion files over the 5G link. These commands, sent by the UDP client on the server, were decoded and the robot executed the corresponding motion, demonstrating low-latency, real-time control over 5G using only open-source components and off-the-shelf hardware.


Results

Our xApp successfully delivered the PRB allocation commands to the gNB via the E2SM-RC interface, and the scheduler applied them immediately. This enabled real-time prioritisation of the critical robot over the non- critical UE.

UE-1 (Critical robot)

  • Higher and more stable throughput
  • Noticeably smoother motion
  • Significant reduction in jitter and micro-freezes

UE-2 (Non-critical)

  • Controlled throughput reduction
  • Connection remained fully stable

These observations confirm that PRB reallocation was applied correctly and that RIC-driven co

Further Work

Intent-based operation:
Automating PRB adjustments using high-level intents (e.g. “prioritise robot movements”) instead of manually triggering the xApp.

Multi-robot coordination:
Scaling the setup to multiple critical UEs and evaluating how RAN control behaves when several UEs require priority at the same time.

PRB control + network slicing:
Combining fine-grained PRB allocation with slice-level QoS to achieve fully deterministic end-to-end behaviour.