A robotic system continuously measures its own motions and the external world during operation. Such measurements are with respect to some frame of reference, i.e., a coordinate system. A nontrivial robotic system has a large number of different frames and data have to be translated back-and-forth from a frame to another. The onus is on the developers to get such translation right. However, this is very challenging and error-prone, evidenced by the large number of questions and issues related to frame uses on developers' forum. Since any state variable can be associated with some frame, reference frames can be naturally modeled as variable types. We hence develop a novel type system that can automatically infer variables' frame types and in turn detect any type inconsistencies and violations of frame conventions. The evaluation on a set of 180 publicly available ROS projects shows that our system can detect 190 inconsistencies with 154 true positives. We reported 52 to developers and received 18 responses so far, with 15 fixed/acknowledged. Our technique also finds 45 violations of common practices.
翻译:机器人系统在运行期间不断测量自己的动作和外部世界。这种测量是针对某些参照框架,即坐标系统。非三重机器人系统有大量不同的框架,数据必须从一个框架向另一个框架回溯翻译。开发者有责任获得这种翻译的权利。然而,这是极具挑战性和易出错的,这体现在与开发者论坛框架使用有关的大量问题和问题。由于任何州变量都可以与某个框架相联系,因此,参照框架可以自然地建为可变类型。因此,我们开发了一个新型系统,可以自动推断变量的框架类型,从而检测任何类型的不一致和违反框架公约的情况。对一套180个公开的ROS项目进行的评估表明,我们的系统可以检测出与154个真实正数的190个不一致之处。我们向开发者报告了52个问题和迄今已收到18个答复,其中15个是固定/承认的。我们的技术还发现45个违反共同做法的情况。