一句话:提出 PHYSFRAME 类型系统,自动推断机器人程序中变量的参考系类型并检测不一致与约定违反。
机器人系统持续测量自身运动与外部世界,所有测量都相对于某个参考系(坐标系)。复杂系统含大量参考系,数据需频繁换算,开发者极易出错。由于状态变量可关联参考系,参考系可建模为变量类型。本文提出新型类型系统 PHYSFRAME,自动推断变量的参考系类型,检测类型不一致及参考系约定违反。在 180 个公开 ROS 项目上评估,检测到 190 处不一致,其中 154 个真阳性;向开发者报告 52 处,收到 18 个回复,15 处已修复或确认;另发现 45 处常见实践违反。
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.
@inproceedings{paperbot6411,
title = {PHYSFRAME: type checking physical frames of reference for robotic systems},
author = {Sayali Kate and Michael Chinn and Hongjun Choi and Xiangyu Zhang and Sebastian Elbaum},
booktitle = {FSE},
year = {2021},
doi = {10.1145/3468264.3468608}
}