From AgentSpeak to C for Safety Considerations in Unmanned Aerial Vehicles

Unmanned aerial vehicles (UAV) are becoming increasingly popular for both recreational and industrial applications, leading to growing concerns about safety. Autonomous systems, such as UAVs, are typically hybrid systems consisting of a low-level continuous control part and a high-level discrete decision making part. In this paper, we discuss using the agent programming language AgentSpeak to model the high-level decision making. We present a translation from AgentSpeak to C that bridges the gap between high-level decision making and low-level control code for safety-critical systems. This allows code to be written in a more natural high-level language, thereby reducing its overall complexity and making it easier to maintain, while still conforming to safety guidelines. As an exemplar, we present the code for a UAV autopilot. The generated code is evaluated on a simulator and a Parrot AR.Drone, demonstrating the flexibility and expressiveness of AgentSpeak as a modeling language for UAVs.

[1]  Michael Fisher,et al.  Verifying autonomous systems , 2013, CACM.

[2]  Daniel Cremers,et al.  Scale-aware navigation of a low-cost quadrocopter with a monocular camera , 2014, Robotics Auton. Syst..

[3]  Reinhard Wilhelm,et al.  An abstract interpretation-based timing validation of hard real-time avionics software , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[4]  Rafael Heitor Bordini,et al.  UAVAS : AgentSpeak Agents for Unmanned Aerial Vehicles , 2011 .

[5]  Lars-Åke Fredlund,et al.  eJason: An Implementation of Jason in Erlang , 2012, ProMAS.

[6]  Giancarlo Fortino,et al.  Translation of statechart agents into a BDI framework for MAS engineering , 2015, Eng. Appl. Artif. Intell..

[7]  Mehdi Dastani,et al.  Agent Programming Languages Requirements for Programming Autonomous Robots , 2012, ProMAS.

[8]  Anand S. Rao,et al.  Modeling Rational Agents within a BDI-Architecture , 1997, KR.

[9]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[10]  Robert C. Nelson,et al.  Flight Stability and Automatic Control , 1989 .

[11]  Daniel Kroening,et al.  AgentSpeakTranslator: Prototype Version for TAROS 2015 , 2015 .

[12]  L. M. Sherer,et al.  RADIO TECHNICAL COMMISSION FOR AERONAUTICS , 1947 .

[13]  Frank S. de Boer,et al.  Prototyping 3APL in the Maude Term Rewriting Language , 2006, CLIMA.

[14]  Gabor Karsai,et al.  Semantic Translation of Simulink/Stateflow Models to Hybrid Automata Using Graph Transformations , 2004, GT-VMT@ETAPS.

[15]  David Fleet,et al.  Unmanned Aircraft Systems (UAS) at Airports: A Primer , 2015 .

[16]  Ofer Strichman,et al.  Translation Validation: From Simulink to C , 2009, CAV.

[17]  慧 岡田,et al.  ROS(ロボット・オペレーティング・システム) , 2012 .

[18]  Rafael Heitor Bordini,et al.  Verifying Multi-agent Programs by Model Checking , 2006, Autonomous Agents and Multi-Agent Systems.

[19]  Daniel Kroening,et al.  modified tum_ardrone: Prototype Version for TAROS 2015 , 2015 .

[20]  Michael Wooldridge,et al.  Programming Multi-Agent Systems in AgentSpeak using Jason (Wiley Series in Agent Technology) , 2007 .

[21]  Michael Fisher,et al.  Practical verification of decision-making in agent-based autonomous systems , 2013, Automated Software Engineering.

[22]  Yoav Shoham,et al.  Agent-Oriented Programming , 1992, Artif. Intell..

[23]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[24]  Manuela Veloso,et al.  Behavior Programming Language and Automated Code Generation for Agent Behavior Control , 2004 .

[25]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[26]  Anand S. Rao,et al.  BDI Agents: From Theory to Practice , 1995, ICMAS.

[27]  Prahladavaradan Sampath,et al.  Translation validation for stateflow to C , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[28]  David Harel,et al.  Modeling Reactive Systems With Statecharts : The Statemate Approach , 1998 .

[29]  Gerard J. Holzmann,et al.  Implementing statecharts in PROMELA/SPIN , 1998, Proceedings. 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques.

[30]  Mats Per Erik Heimdahl,et al.  Partial Translation Verification for Untrusted Code-Generators , 2008, ICFEM.

[31]  M. Wooldridge,et al.  On the Formal Semantics of Speech-Act Based Communication in an Agent-Oriented Programming Language , 2007, J. Artif. Intell. Res..

[32]  A. S. Roa,et al.  AgentSpeak(L): BDI agents speak out in a logical computable language , 1996 .

[33]  Doan Thu Trang,et al.  Verifying heterogeneous multi-agent programs , 2014, AAMAS.

[34]  Rafael H. Bordini,et al.  Semantics for the Jason Variant of AgentSpeak (Plan Failure and some Internal Actions) , 2010, ECAI.

[35]  Stavros Tripakis,et al.  Defining and translating a "safe" subset of simulink/stateflow into lustre , 2004, EMSOFT '04.

[36]  João Leite,et al.  A Survey of Programming Languages and Platforms for Multi-Agent Systems , 2006, Informatica.

[37]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[38]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[39]  A. Puri A Survey of Unmanned Aerial Vehicles ( UAV ) for Traffic Surveillance , 2005 .