Abstract
Simulation is crucial in real-world robotics, offering safe, scalable, and efficient environments for developing applications, ranging from humanoid robots to autonomous vehicles and drones. While the Robot Operating System (ROS) has been widely adopted as the backbone of these robotic applications in both academia and industry, its asynchronous, multiprocess design complicates reproducibility, especially across varying hardware platforms. Deterministic callback execution cannot be guaranteed when computation times and communication delays vary. This lack of reproducibility complicates scientific benchmarking and continuous integration, where consistent results are essential. To address this, we present a methodology to create deterministic simulations using ROS 2 nodes. Our ROS Simulation Library for C++ (RSLCPP) implements this approach, enabling existing nodes to be combined into a simulation routine that yields reproducible results without requiring any code changes. We demonstrate that our approach yields identical results across various CPUs and architectures when testing both a synthetic benchmark and a real-world robotics system. RSLCPP is open-sourced at this https URL.
Abstract (translated)
仿真在现实世界的机器人技术中至关重要,为从人形机器人到自主车辆和无人机的各种应用提供了安全、可扩展且高效的开发环境。虽然机器人操作系统(ROS)已被广泛采用作为学术界和工业界这些机器人应用程序的支柱,但其异步多进程设计使得跨不同硬件平台时难以保证实验结果的一致性。由于计算时间和通信延迟的变化会导致回调执行不可预测,这尤其增加了复杂性。这种一致性问题也给科学基准测试和持续集成带来了挑战,在这些场景中,一致的结果至关重要。 为了解决这一问题,我们提出了一种利用ROS 2节点创建确定性仿真的方法学。我们的C++ ROS仿真库(RSLCPP)实现了这种方法,并使现有的节点可以被组合成一个生成可重复结果的仿真流程,而无需进行任何代码更改。我们展示了当测试合成基准和实际机器人系统时,该方法能在各种CPU和架构上产生一致的结果。 RSLCPP在以下链接开源:[此URL](请将"[此URL]"替换为实际网址)。
URL
https://arxiv.org/abs/2601.07052