skip to main content
research-article
Open Access

Koord: a language for programming and verifying distributed robotics application

Published:13 November 2020Publication History
Skip Abstract Section

Abstract

A robot’s code needs to sense the environment, control the hardware, and communicate with other robots. Current programming languages do not provide suitable abstractions that are independent of hardware platforms. Currently, developing robot applications requires detailed knowledge of signal processing, control, path planning, network protocols, and various platform-specific details. Further, porting applications across hardware platforms remains tedious. We present Koord—a domain specific language for distributed robotics—which abstracts platform-specific functions for sensing, communication, and low-level control. Koord makes the platform-independent control and coordination code portable and modularly verifiable. Koord raises the level of abstraction in programming by providing distributed shared memory for coordination and port interfaces for sensing and control. We have developed the formal executable semantics of Koord in the K framework. With this symbolic execution engine, we can identify assumptions (proof obligations) needed for gaining high assurance from Koord applications. We illustrate the power of Koord through three applications: formation flight, distributed delivery, and distributed mapping. We also use the three applications to demonstrate how platform-independent proof obligations can be discharged using the Koord Prover while platform-specific proof obligations can be checked by verifying the obligations using physics-based models and hybrid verification tools.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

We present Koord-a domain specific language for distributed robotics—which abstracts platform-specific functions for sensing, communication, and low-level control. Koord makes the platform-independent control and coordination code portable and modularly verifiable. Koord raises the level of abstraction in programming by providing distributed shared memory for coordination and port interfaces for sensing and control. We have developed the formal executable semantics of Koord in the K framework. We illustrate the power of Koord through three applications: formation flight, distributed delivery, and distributed mapping. We also use the three applications to demonstrate how platform-independent proof obligations can be discharged using the Koord Prover while platform-specific proof obligations can be checked by verifying the obligations using physics-based models and hybrid verification tools.

References

  1. Sarita V. Adve and Kourosh Gharachorloo. 1996. Shared Memory Consistency Models: A Tutorial. Computer 29, 12 (Dec. 1996 ), 66-76. https://doi.org/10.1109/2.546611 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Rajeev Alur and David L. Dill. 1994. A Theory of Timed Automata. Theor. Comput. Sci. 126, 2 (April 1994 ), 183-235. https://doi.org/10.1016/ 0304-3975 ( 94 ) 90010-8 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Hagit Attiya and Jennifer Welch. 2004. Distributed Computing: Fundamentals, Simulations and Advanced Topics. John Wiley & Sons, Inc., USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Stanley Bak and Parasara Sridhar Duggirala. 2017. HyLAA: A Tool for Computing Simulation-Equivalent Reachability for Linear Systems. In Proceedings of the 20th International Conference on Hybrid Systems: Computation and Control (Pittsburgh, Pennsylvania, USA) ( HSCC '17). Association for Computing Machinery, New York, NY, USA, 173-178. https://doi.org/10.1145/3049797.3049808 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Timo Blender, Thiemo Buchner, Benjamin Fernandez, Benno Pichlmaier, and Christian Schlegel. 2016. Managing a Mobile Agricultural Robot Swarm for a seeding task. In 42nd Annual Conference of the IEEE Industrial Electronics Society (Florence, Italy) (IECON '16). IEEE, New York, NY, USA, 6879-6886. https://doi.org/10.1109/IECON. 2016.7793638 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Brandon Bohrer, Yong Kiam Tan, Stefan Mitsch, Magnus O. Myreen, and André Platzer. 2018. VeriPhy: Verified Controller Executables from Verified Cyber-physical System Models. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (Philadelphia, PA, USA) ( PLDI '18). ACM, New York, NY, USA, 617-630. https://doi.org/10.1145/3192366.3192406 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Miguel Campusano and Johan Fabry. 2017. Live Robot Programming: The Language, its Implementation, and Robot API Independence. Science of Computer Programming 133 ( Jan. 2017 ), 1-19. https://doi.org/10.1016/j.scico. 2016. 06.002 Google ScholarGoogle ScholarCross RefCross Ref
  8. Xin Chen, Erika Ábrahám, and Sriram Sankaranarayanan. 2013. Flow*: An analyzer for non-linear hybrid systems. In Proceedings of the 25th International Conference on Computer Aided Verification (CAV '13), Natasha Sharygina and Helmut Veith (Eds.). Springer-Verlag, Berlin, Heidelberg, 258-263. https://doi.org/10.1007/978-3-642-39799-8_18 Google ScholarGoogle ScholarCross RefCross Ref
  9. Shun Yan Cheung and Vaidy S. Sunderam. 1995. Performance of Barrier Synchronization Methods in a Multiaccess Network. 6, 8 ( 1995 ), 890-895. https://doi.org/10.1109/71.406967 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: Amazon's Highly Available Key-value Store. In Proceedings of Twenty-first ACM SIGOPS Symposium on Operating Systems Principles (Stevenson, Washington, USA) ( SOSP '07). ACM, New York, NY, USA, 205-220. https://doi.org/10.1145/1294261.1294281 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Ankush Desai, Vivek Gupta, Ethan Jackson, Shaz Qadeer, Sriram Rajamani, and Damien Zuferey. 2013. P: Safe Asynchronous Event-Driven Programming. SIGPLAN Not. 48, 6 ( June 2013 ), 321-332. https://doi.org/10.1145/2499370.2462184 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ankush Desai, Indranil Saha, Jianqiao Yang, Shaz Qadeer, and Sanjit A. Seshia. 2017. DRONA: A Framework for Safe Distributed Mobile Robotics. In Proceedings of the 8th International Conference on Cyber-Physical Systems (Pittsburgh, Pennsylvania, USA) ( ICCPS '17). Association for Computing Machinery, New York, NY, USA, 239-248. https://doi.org/10. 1145/3055004.3055022 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Isil Dillig, Thomas Dillig, Alex Aiken, and Mooly Sagiv. 2011. Precise and Compact Modular Procedure Summaries for Heap Manipulating Programs. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (San Jose, California, USA) ( PLDI '11). Association for Computing Machinery, New York, NY, USA, 567-577. https://doi.org/10.1145/1993498.1993565 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cezara Drăgoi, Thomas A. Henzinger, and Damien Zuferey. 2016. PSync: A Partially Synchronous Language for Faulttolerant Distributed Algorithms. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (St. Petersburg, FL, USA) ( POPL '16). Association for Computing Machinery, New York, NY, USA, 400-415. https://doi.org/10.1145/2837614.2837650 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Parasara Sridhar Duggirala, Sayan Mitra, and Mahesh Viswanathan. 2013. Verification of Annotated Models from Executions. In Proceedings of the Eleventh ACM International Conference on Embedded Software (Montreal, Quebec, Canada) ( EMSOFT '13). IEEE, New York, NY, USA, Article 26, 10 pages. https://doi.org/10.1109/EMSOFT. 2013.6658604 Google ScholarGoogle ScholarCross RefCross Ref
  16. Chuchu Fan, Bolun Qi, and Sayan Mitra. 2018. Data-Driven Formal Reasoning and Their Applications in Safety Analysis of Vehicle Autonomy Features. IEEE Design & Test 35, 3 ( 2018 ), 31-38. https://doi.org/10.1109/MDAT. 2018.2799804 Google ScholarGoogle ScholarCross RefCross Ref
  17. Chuchu Fan, Bolun Qi, Sayan Mitra, and Mahesh Viswanathan. 2017. DryVR: Data-driven Verification and Compositional Reasoning for Automotive Systems. In Proceedings of the 29th International Conference on Computer Aided Verification (Heidelberg, Germany) ( CAV '17). Springer, Cham, Switzerland, 441-461. https://doi.org/10.1007/978-3-319-63387-9_22 Google ScholarGoogle ScholarCross RefCross Ref
  18. Goran Frehse, Colas Le Guernic, Alexandre Donzé, Scott Cotton, Rajarshi Ray, Olivier Lebeltel, Rodolfo Ripado, Antoine Girard, Thao Dang, and Oded Maler. 2011. SpaceEx: Scalable Verification of Hybrid Systems. In Proceedings of the 23rd International Conference on Computer Aided Verification (Snowbird, UT, USA) ( CAV '11). Springer, Berlin, Heidelberg, 379-395. https://doi.org/10.1007/978-3-642-22110-1_30 Google ScholarGoogle ScholarCross RefCross Ref
  19. David Gauthier, Paul Freedman, Gregory Carayannis, and Alfred Malowany. 1987. Interprocess communication for distributed robotics. IEEE Journal on Robotics and Automation 3, 6 ( 1987 ), 493-504. https://doi.org/10.1109/JRA. 1987.1087141 Google ScholarGoogle ScholarCross RefCross Ref
  20. Mario Gerla, Eun-Kyu Lee, Giovanni Pau, and Uichin Lee. 2014. Internet of Vehicles: From Intelligent Grid to Autonomous Cars and Vehicular Clouds. In Proceedings of 2014 IEEE world forum on internet of things (Seoul, Korea) ( WF-IoT'14). IEEE, New York, NY, USA, 241-246. https://doi.org/10.1109/WF-IoT. 2014.6803166 Google ScholarGoogle ScholarCross RefCross Ref
  21. Ritwika Ghosh. 2020. Separation of Distributed Coordination and Control for Programming Reliable Robotics. Ph.D. Dissertation. University of Illinois at Urbana-Champaign, Urbana-Champaign, IL, USA. Advisor(s) Sayan Mitra. http://hdl.handle. net/ 2142/108501Google ScholarGoogle Scholar
  22. Ritwika Ghosh, Joao P. Jansch-Porto, Chiao Hsieh, Amelia Gosse, Minghao Jiang, Hebron Taylor, Peter Du, Sayan Mitra, and Geir Dullerud. 2020. CyPhyHouse: A Programming, Simulation, and Deployment Toolchain for Heterogeneous Distributed Coordination. In Proceedings of 2020 IEEE International Conference on Robotics and Automation (Paris,France) ( ICRA '20). IEEE, New York, NY, USA, 6654-6660. https://doi.org/10.1109/ICRA40945. 2020.9196513 Google ScholarGoogle ScholarCross RefCross Ref
  23. Ritwika Ghosh, Sasa Misailovic, and Sayan Mitra. 2018. Language Semantics Driven Design and Formal Analysis for Distributed Cyber-Physical Systems: [Extended Abstract]. In Proceedings of the 2018 Workshop on Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating Algorithms for Distributed Systems (Egham, United Kingdom) (ApPLIED '18). ACM, New York, NY, USA, 41-44. https://doi.org/10.1145/3231104.3231958 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sukumar Ghosh. 2014. Distributed Systems: An Algorithmic Approach (2 ed.). Chapman and Hall/CRC.Google ScholarGoogle ScholarCross RefCross Ref
  25. Lars Grüne and Jürgen Pannek. 2017. Nonlinear model predictive control: Theory and Algorithms (2 ed.). Springer International Publishing. 45-69 pages. https://doi.org/10.1007/978-3-319-46024-6 Google ScholarGoogle ScholarCross RefCross Ref
  26. Ge Guo and Wei Yue. 2012. Autonomous Platoon Control Allowing Range-Limited Sensors. IEEE Transactions on vehicular technology 61, 7 (Sept. 2012 ), 2901-2912. https://doi.org/10.1109/TVT. 2012.2203362 Google ScholarGoogle ScholarCross RefCross Ref
  27. Debra Hensgen, Raphael Finkel, and Udi Manber. 1988. Two Algorithms for Barrier Synchronization. Int. J. Parallel Program. 17, 1 (Feb. 1988 ), 1-17. https://doi.org/10.1007/BF01379320 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Thomas A. Henzinger, Peter W. Kopke, Anuj Puri, and Pravin Varaiya. 1995. What's decidable about hybrid automata?. In Proceedings of the twenty-seventh annual ACM symposium on Theory of computing (Las Vegas, Nevada, USA) ( STOC '95). Association for Computing Machinery, New York, NY, USA, 373-382. https://doi.org/10.1145/225058.225162 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. S. Karaman, A. Anders, M. Boulet, J. Connor, K. Gregson, W. Guerra, O. Guldner, M. Mohamoud, B. Plancher, R. Shin, and J. Vivilecchia. 2017. Project-based, collaborative, algorithmic robotics for high school students: Programming self-driving race cars at MIT. In Proceedings of 2017 IEEE Integrated STEM Education Conference (ISEC '17). IEEE, New York, NY, USA, 195-203. https://doi.org/10.1109/ISECon. 2017.7910242 Google ScholarGoogle ScholarCross RefCross Ref
  30. Michal Kvasnica, Pascal Grieder, Mato Baotić, and Manfred Morari. 2004. Multi-parametric toolbox (MPT). In Proceedings of the 7th International Workshop on Hybrid Systems: Computation and Control. Springer, Berlin, Heidelberg, 448-462. https://doi.org/10.1007/978-3-540-24743-2_30 Google ScholarGoogle ScholarCross RefCross Ref
  31. Avinash Lakshman and Prashant Malik. 2010. Cassandra: A Decentralized Structured Storage System. SIGOPS Oper. Syst. Rev. 44, 2 (April 2010 ), 35-40. https://doi.org/10.1145/1773912.1773922 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Steven M LaValle. 1998. Rapidly-exploring random trees: A new tool for path planning. Technical Report. Ames, IA, USA. http://msl.cs.illinois.edu/~lavalle/papers/Lav98c.pdfGoogle ScholarGoogle Scholar
  33. Nancy A. Lynch. 1996. Distributed Algorithms. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Johannes Meyer, Alexander Sendobry, Stefan Kohlbrecher, Uwe Klingauf, and Oskar von Stryk. 2012. Comprehensive Simulation of Quadrotor UAVs Using ROS and Gazebo. In Proceedings of the third International Conference on Simulation, Modeling, and Programming for Autonomous Robots (Tsukuba, Japan) ( SIMPAR '12), Itsuki Noda, Noriaki Ando, Davide Brugali, and James J. Kufner (Eds.). Springer, Berlin, Heidelberg, 400-411. https://doi.org/10.1007/978-3-642-34327-8_36 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Aleksandar Milicevic, Damien Zuferey, and Martin Rinard. 2015. The REACT language for robotics. https://github.com/ aleksandarmilicevic/react-langGoogle ScholarGoogle Scholar
  36. Pieter J Mosterman, David Escobar Sanabria, Enes Bilgin, Kun Zhang, and Justyna Zander. 2014. A Heterogeneous Fleet of Vehicles for Automated Humanitarian Missions. Computing in Science & Engineering 16, 3 ( June 2014 ), 90-95. https://doi.org/10.1109/ MCSE. 2014.58 Google ScholarGoogle ScholarCross RefCross Ref
  37. Adithyavairavan Murali, Tao Chen, Kalyan Vasudev Alwala, Dhiraj Gandhi, Lerrel Pinto, Saurabh Gupta, and Abhinav Gupta. 2019. PyRobot: An Open-source Robotics Framework for Research and Benchmarking. ( 2019 ). arXiv:arXiv: 1906.08236Google ScholarGoogle Scholar
  38. Bill Nitzberg and Virginia Lo. 1991. Distributed Shared Memory: A Survey of Issues and Algorithms. Computer 24, 8 (Aug. 1991 ), 52-60. https://doi.org/10.1109/2.84877 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Arne Nordmann, Nico Hochgeschwender, and Sebastian Wrede. 2014. A Survey on Domain-Specific Languages in Robotics. In Proceedings of the 4th International Conference on Simulation, Modeling, and Programming for Autonomous Robot (Bergamo, Italy) ( SIMPAR '14). Springer International Publishing, Cham, 195-206. https://doi.org/10.1007/978-3-319-11900-7_17 Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. D. Pickem, P. Glotfelter, L. Wang, M. Mote, A. Ames, E. Feron, and M. Egerstedt. 2017. The Robotarium: A remotely accessible swarm robotics research testbed. In Proceedings of 2017 IEEE International Conference on Robotics and Automation (Singapore) (ICRA '17). IEEE, New York, NY, USA, 1699-1706. https://doi.org/10.1109/ICRA. 2017.7989200 Google ScholarGoogle ScholarCross RefCross Ref
  41. C. Pinciroli and G. Beltrame. 2016. Buzz: An Extensible Programming Language for Heterogeneous Swarm Robotics. In Proceedings of 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (Daejeon, Korea) (IROS '16). IEEE, New York, NY, USA, 3794-3800. https://doi.org/10.1109/IROS. 2016.7759558 Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. J Norberto Pires and JMG Sá Da Costa. 2000. Object-oriented and distributed approach for programming robotic manufacturing cells. Robotics and Computer-Integrated Manufacturing 16, 1 ( 2000 ), 29-42. https://doi.org/10.1016/S0736-5845 ( 99 ) 00039-3 Google ScholarGoogle ScholarCross RefCross Ref
  43. André Platzer. 2018. Logical Foundations of Cyber-Physical Systems (1 ed.). Springer International Publishing. https: //doi.org/10.1007/978-3-319-63588-0 Google ScholarGoogle ScholarCross RefCross Ref
  44. Jelica Protic, Milo Tomasevic, and Veljko Milutinovic. 1997. Distributed Shared Memory: Concepts and Systems. IEEE Computer Society Press.Google ScholarGoogle Scholar
  45. Morgan Quigley, Ken Conley, Brian P. Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y. Ng. 2009. ROS: an open-source Robot Operating System. In Proc. of the IEEE Intl. Conf. on Robotics and Automation (ICRA) Workshop on Open Source Robotics (Kobe, Japan). IEEE. http://www.willowgarage.com/sites/default/files/icraoss09-ROS.pdfGoogle ScholarGoogle Scholar
  46. Redmond R Shamshiri, Cornelia Weltzien, Ibrahim A Hameed, Ian J Yule, Tony E Grift, Siva K Balasundram, Lenka Pitonakova, Desa Ahmad, and Girish Chowdhary. 2018. Research and development in agricultural robotics: A perspective of digital farming. International Journal of Agricultural and Biology Engineering 11, 4 ( 2018 ). https://doi.org/10.25165/j.ijabe. 20181104.4278 Google ScholarGoogle ScholarCross RefCross Ref
  47. Grigore Rosu and Traian Florin Serbanuta. 2014. K Overview and SIMPLE Case Study. Electronic Notes in Theoretical Computer Science 304 ( June 2014 ), 3-56. https://doi.org/10.1016/j.entcs. 2014. 05.002 Google ScholarGoogle ScholarCross RefCross Ref
  48. Giovanni Russo and Jean-Jacques E Slotine. 2011. Symmetries, stability, and control in nonlinear systems and networks. Physical Review E 84, 4 (Oct 2011 ), 041929. https://doi.org/10.1103/PhysRevE.84.041929 Google ScholarGoogle ScholarCross RefCross Ref
  49. Hussein Sibai, Navid Mokhlesi, Chuchu Fan, and Sayan Mitra. 2020. Multi-Agent Safety Verification using Symmetry Transformations. In Proceedings of the 26th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (Dublin, Ireland) ( TACAS '20). Springer International Publishing, Cham, 173-190.Google ScholarGoogle ScholarCross RefCross Ref
  50. David St-Onge, Vivek Shankar Varadharajan, Guannan Li, Ivan Svogor, and Giovanni Beltrame. 2017. ROS and Buzz: consensus-based behaviors for heterogeneous teams. ( 2017 ). arXiv:arXiv:1710.08843Google ScholarGoogle Scholar
  51. Sebastian Thrun. 2003. Robotic Mapping: A Survey. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1-35.Google ScholarGoogle Scholar
  52. Brian C Williams, Michel D Ingham, Seung H Chung, and Paul H Elliott. 2003. Model-Based Programming of Intelligent Embedded Systems and Robotic Space Explorers. Proc. IEEE 91, 1 (Jan. 2003 ), 212-237. https://doi.org/10.1109/JPROC. 2002.805828 Google ScholarGoogle ScholarCross RefCross Ref
  53. Greta Yorsh, Eran Yahav, and Satish Chandra. 2008. Generating Precise and Concise Procedure Summaries. In Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Francisco, California, USA) ( POPL '08). Association for Computing Machinery, New York, NY, USA, 221-234. https://doi.org/10.1145/1328438. 1328467 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Koord: a language for programming and verifying distributed robotics application

          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

          Full Access

          • Published in

            cover image Proceedings of the ACM on Programming Languages
            Proceedings of the ACM on Programming Languages  Volume 4, Issue OOPSLA
            November 2020
            3108 pages
            EISSN:2475-1421
            DOI:10.1145/3436718
            Issue’s Table of Contents

            Copyright © 2020 Owner/Author

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 13 November 2020
            Published in pacmpl Volume 4, Issue OOPSLA

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!