A controller -- a software module managing hardware behavior -- is a key component of a typical robot system. While control theory gives safety guarantees for standard controller designs, the practical implementation of controllers in software introduces complexities that are often overlooked. Controllers are often designed in continuous space, while the software is executed in discrete space, undermining some of the theoretical guarantees. Despite extensive research on control theory and control modeling, little attention has been paid to the implementations of controllers and how their theoretical guarantees are ensured in real-world software systems. We investigate 184 real-world controller implementations in open-source robot software. We examine their application context, the implementation characteristics, and the testing methods employed to ensure correctness. We find that the implementations often handle discretization in an ad hoc manner, leading to potential issues with real-time reliability. Challenges such as timing inconsistencies, lack of proper error handling, and inadequate consideration of real-time constraints further complicate matters. Testing practices are superficial, no systematic verification of theoretical guarantees is used, leaving possible inconsistencies between expected and actual behavior. Our findings highlight the need for improved implementation guidelines and rigorous verification techniques to ensure the reliability and safety of robotic controllers in practice.
翻译:控制器——管理硬件行为的软件模块——是典型机器人系统的关键组成部分。尽管控制理论为标准控制器设计提供了安全性保证,但控制器在软件中的实际实现引入了常被忽视的复杂性。控制器通常在连续空间中设计,而软件在离散空间中执行,这削弱了部分理论保证。尽管控制理论和控制建模研究广泛,但控制器实现及其理论保证在真实软件系统中如何确保的问题却鲜有关注。我们调查了开源机器人软件中184个真实控制器实现,考察了其应用场景、实现特征以及用于确保正确性的测试方法。研究发现,这些实现常以临时方式处理离散化问题,可能导致实时可靠性隐患。时序不一致、缺乏适当错误处理、实时约束考虑不足等挑战进一步加剧了问题的复杂性。测试实践流于表面,未采用系统化的理论保证验证方法,导致预期行为与实际行为间可能存在不一致。我们的研究结果强调,需要改进实现指南并采用严格的验证技术,以确保机器人控制器在实际应用中的可靠性与安全性。