skip to main content
10.1145/3468264.3468608acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article
Open Access
Artifacts Available / v1.1

PHYSFRAME: type checking physical frames of reference for robotic systems

Published:18 August 2021Publication History

ABSTRACT

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.

References

  1. 2015. diff_drive_controller is hard-coded into the ’odom’ reference frame #204. https://github.com/ros-controls/ros_controllers/issues/204Google ScholarGoogle Scholar
  2. 2017. TF: Debugging Tools. http://wiki.ros.org/tf/Debugging toolsGoogle ScholarGoogle Scholar
  3. 2019. ORB-SLAM2 ROS node. http://wiki.ros.org/orb_slam2_rosGoogle ScholarGoogle Scholar
  4. 2019. T265 frame questions #772. https://github.com/IntelRealSense/realsense-ros/issues/772Google ScholarGoogle Scholar
  5. 2020. Incorrect frame tree cartographer ros and t265 camera #1599. https://github.com/IntelRealSense/realsense-ros/issues/1599Google ScholarGoogle Scholar
  6. Nurlida Basir, Ewen Denney, and Bernd Fischer. 2010. Deriving Safety Cases for Hierarchical Structure in Model-Based Development. In Proceedings of the 29th International Conference on Computer Safety, Reliability, and Security (SAFECOMP’10). Springer-Verlag, Berlin, Heidelberg. 68–81. isbn:3642156509Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Geoffrey Biggs. 2007. Designing an application-specific programming language for mobile robots. Ph.D. Dissertation. ResearchSpace@ Auckland.Google ScholarGoogle Scholar
  8. Alex Brooks, Tobias Kaupp, Alexei Makarenko, Stefan Williams, and Anders Oreback. 2005. Towards component-based robotics. In 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems. 163–168.Google ScholarGoogle ScholarCross RefCross Ref
  9. Davide Brugali and Patrizia Scandurra. 2009. Component-based robotic engineering (part i)[tutorial]. IEEE Robotics & Automation Magazine, 16, 4 (2009), 84–96.Google ScholarGoogle ScholarCross RefCross Ref
  10. Herman Bruyninckx. 2001. Open robot control software: the OROCOS project. In Proceedings 2001 ICRA. IEEE international conference on robotics and automation (Cat. No. 01CH37164). 3, 2523–2528.Google ScholarGoogle ScholarCross RefCross Ref
  11. Luca Cardelli. 1996. Type systems. ACM Computing Surveys (CSUR), 28, 1 (1996), 263–264.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Kostadin Damevski. 2009. Expressing measurement units in interfaces for scientific component software. In Proceedings of the 2009 Workshop on Component-Based High Performance Computing. 1–8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dawson Engler, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf. 2001. Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code. In Proceedings of the Eighteenth ACM Symposium on Operating Systems Principles (SOSP ’01). Association for Computing Machinery, New York, NY, USA. 57–72. isbn:1581133898 https://doi.org/10.1145/502034.502041 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Tully Foote. 2013. tf: The transform library. In IEEE International Conference on Technologies for Practical Robot Applications (TePRA), 2013 (Open-Source Software workshop). 1–6. issn:2325-0526 https://doi.org/10.1109/TePRA.2013.6556373 Google ScholarGoogle ScholarCross RefCross Ref
  15. Tully Foote and Mike Purvis. 2010. Standard Units of Measure and Coordinate Conventions. https://www.ros.org/reps/rep-0103.htmlGoogle ScholarGoogle Scholar
  16. Open Source Robotics Foundation. [n.d.]. ROS Topics homepage. http://wiki.ros.org/TopicsGoogle ScholarGoogle Scholar
  17. Brian Gerkey, Richard T Vaughan, and Andrew Howard. 2003. The player/stage project: Tools for multi-robot and distributed sensor systems. In Proceedings of the 11th international conference on advanced robotics. 1, 317–323.Google ScholarGoogle Scholar
  18. Irfan Ul Haq, Juan Caballero, and Michael D Ernst. 2015. Ayudante: Identifying undesired variable interactions. In Proceedings of the 13th International Workshop on Dynamic Analysis. 8–13.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Sayali Kate, Michael Chinn, Hongjun Choi, Xiangyu Zhang, and Sebastian Elbaum. 2021. PHYSFRAME: Type Checking Physical Frames of Reference for Robotic Systems. arxiv:2106.11266.Google ScholarGoogle Scholar
  20. Sayali Kate, John-Paul Ore, Xiangyu Zhang, Sebastian Elbaum, and Zhaogui Xu. 2018. Phys: probabilistic physical unit assignment and inconsistency detection. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 563–573.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Andrew Kennedy. 1994. Dimension Types. In Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems (ESOP ’94). Springer-Verlag, Berlin, Heidelberg. 348–362. isbn:3540578803Google ScholarGoogle Scholar
  22. Andrew Kennedy. 2009. Types for Units-of-Measure: Theory and Practice. In Proceedings of the Third Summer School Conference on Central European Functional Programming School (CEFP’09). Springer-Verlag, Berlin, Heidelberg. 268–305. isbn:3642176844Google ScholarGoogle Scholar
  23. Michael Lowry, Thomas Pressburger, and Grigore Rosu. 2001. Certifying Domain-Specific Policies. In Proceedings of the 16th IEEE International Conference on Automated Software Engineering (ASE ’01). IEEE Computer Society, USA. 81.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Michael R. Lowry and Jeffrey Van Baalen. 1997. META-AMPHION: Synthesis of Efficient Domain-Specific Program Synthesis Systems. Automated Software Engg., 4, 2 (1997), April, 199–241. issn:0928-8910 https://doi.org/10.1023/A:1008637201658 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Gergely Magyar, Peter Sinčák, and Zoltán Krizsán. 2015. Comparison study of robotic middleware for robotic applications. In Emergent Trends in Robotics and Intelligent Systems. Springer, 121–128.Google ScholarGoogle Scholar
  26. Daniel Marjamaeki. 2017. Cppcheck - A tool for static C/C++ code analysis. http://cppcheck.sourceforge.net/Google ScholarGoogle Scholar
  27. Wim Meeussen. 2010. Coordinate Frames for Mobile Platforms. https://www.ros.org/reps/rep-0105.htmlGoogle ScholarGoogle Scholar
  28. Thomas Moulard. 2011. Coordinate Frames for Humanoid Robots. https://www.ros.org/reps/rep-0120.htmlGoogle ScholarGoogle Scholar
  29. Raúl Mur-Artal and Juan D. Tardós. 2017. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics, 33, 5 (2017), 1255–1262. https://doi.org/10.1109/TRO.2017.2705103 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. John-Paul Ore, Carrick Detweiler, and Sebastian Elbaum. 2017. Lightweight Detection of Physical Unit Inconsistencies Without Program Annotations. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). ACM, New York, NY, USA. 341–351. isbn:978-1-4503-5076-1 https://doi.org/10.1145/3092703.3092722 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. John-Paul Ore, Carrick Detweiler, and Sebastian Elbaum. 2017. Phriky-Units: A Lightweight, Annotation-Free Physical Unit Inconsistency Detection Tool. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). Association for Computing Machinery, New York, NY, USA. 352–355. isbn:9781450350761 https://doi.org/10.1145/3092703.3098219 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y Ng. 2009. ROS: an open-source Robot Operating System. In ICRA workshop on open source software. 3.2, 5.Google ScholarGoogle Scholar
  33. John C Reynolds. 1974. Towards a theory of type structure. In Programming Symposium. 408–425.Google ScholarGoogle ScholarCross RefCross Ref
  34. Mikael Rittri. 1995. Dimension Inference under Polymorphic Recursion. In Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture (FPCA ’95). Association for Computing Machinery, New York, NY, USA. 147–159. isbn:0897917197 https://doi.org/10.1145/224164.224197 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Clearpath Robotics. 2017. Robots - PR2. http://wiki.ros.org/Robots/PR2Google ScholarGoogle Scholar
  36. Wim Meeussen Tully Foote, Eitan Marder-Eppstein. [n.d.]. Ros tf package homepage. http://wiki.ros.org/tf, http://wiki.ros.org/tf2Google ScholarGoogle Scholar
  37. Hans Utz, Stefan Sablatnog, Stefan Enderle, and Gerhard Kraetzschmar. 2002. Miro-middleware for mobile robot applications. IEEE Transactions on Robotics and Automation, 18, 4 (2002), 493–497.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. PHYSFRAME: type checking physical frames of reference for robotic systems

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader