TY - JOUR
T1 - Koord
T2 - A language for programming and verifying distributed robotics application
AU - Ghosh, Ritwika
AU - Hsieh, Chiao
AU - Misailovic, Sasa
AU - Mitra, Sayan
N1 - The authors were supported in part by research grants from the National Science Foundation under the Division of Computer and Network Systems (CNS) (award number 1629949 and 1544901) and Computing and Communication Foundations (CCF) (award number 1846354).
PY - 2020/11/13
Y1 - 2020/11/13
N2 - 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.
AB - 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.
KW - Distributed Robotics
KW - Programming Language for Robotics
UR - http://www.scopus.com/inward/record.url?scp=85097579503&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85097579503&partnerID=8YFLogxK
U2 - 10.1145/3428300
DO - 10.1145/3428300
M3 - Article
AN - SCOPUS:85097579503
SN - 2475-1421
VL - 4
JO - Proceedings of the ACM on Programming Languages
JF - Proceedings of the ACM on Programming Languages
IS - OOPSLA
M1 - 232
ER -