计算机科学 ›› 2015, Vol. 42 ›› Issue (3): 13-18.doi: 10.11896/j.issn.1002-137X.2015.03.003

• 目次 • 上一篇    下一篇

RPL:一种基于反应式Agent的机器人编程语言

田昌海,杨 硕,陈 寅,毛新军   

  1. 国防科技大学计算机学院 长沙410073,国防科技大学计算机学院 长沙410073,国防科技大学计算机学院 长沙410073,国防科技大学计算机学院 长沙410073
  • 出版日期:2018-11-14 发布日期:2018-11-14
  • 基金资助:
    本文受国家自然科学基金(61379051)资助

RPL:A Robot Programming Language Based on Reactive Agent

TIAN Chang-hai, YANG Shuo, CHEN Yin and MAO Xin-jun   

  • Online:2018-11-14 Published:2018-11-14

摘要: 开放环境下的机器人具有环境敏感性、行为自主性和并发性、反应实时性等特点,这对支撑这类机器人的控制软件及其编程语言提出了新的要求,包括支持对环境进行显式表示,支持自主和并发的行为,需要对行为间在时间、空间、物理上的关系进行规约等等。面向Agent的编程语言将软件系统的基本执行单元视为自主的软件Agent,它为机器人控制软件的构造提供了新的方法和思路。针对开放环境下机器人特点对其编程语言的要求,提出了基于反应式Agent的编程模型RECA和编程语言RPL。RECA将单个机器人的软件系统视为一个反应式Agent,它包括SensorEvent、EventRule和ScenarioBehaviour 3个组成部分,其中SensorEvent是对机器人所处环境信息变化的一种封装;ScenarioBehaviour是对机器人的不同行为进行的规约;EventRule定义了机器人环境输入到行为输出的动态绑定关系。RPL提供了一系列的机制来支持机器人控制软件的编程,包括事件机制、多线程机制、优先级描述、行为动态绑定。最后介绍了RPL程序开发和运行支撑环境的技术框架,并基于NAO机器人分析了机器人作为老人生活助理的案例,验证了该编程模型、语言和运行支撑环境的有效性。

关键词: 机器人,控制软件,面向Agent编程

Abstract: Robots situated in open environment are expected to be context-aware and autonomous,to support concurrent behaviours,and to react to external stimuli in a timely manner.To program such robots,a robot programming language is required to explicitly represent environmental factors,support decision-making and concurrency,specify temporal,special and physical relations among robot behaviours,and prioritize concurrent robot behaviours to avoid collision.Agent-oriented programming (AOP) provides a new solution to robot programming by taking software units as autonomous agents.Based on the requirements for robot programminges language,agent-oriented programming model—RECA and programming language—RPL based on reactive agent were proposed.RECA programming model which takes robot software as a reactive agent consists of three elements.SensorEvent shows environmental changes;ScenarioBehaviour are the different behaviour specifications for robots,and EventRule defines the dynamic mapping relations from environmental inputs to behavioral outputs.RPL was designed to meet the needs of robot programming,by providing various mechanisms supporting event-based programming,multi-thread programming,prioritization of robot behaviours,and dynamic binding of robot behaviours.We designed and implemented a programming and runtime environment for the RPL,and demonstrated the expressiveness of RPL and the effectiveness of its runtime environment through a case study of elder assistant robot.

Key words: Robots,Control software,Agent-oriented programming

[1] Ziafati P,Dastani M,Meyer J J,et al.Agent Programming Languages Requirements for Programming Autonomous Robots[M]∥Programming Multi-Agent Systems.Springer Berlin Heidelberg,2013:35-53
[2] 戴齐,姚先启.机器人程序设计语言[J].机器人,1997,19(5):390-400
[3] Jennings N R,Sycara K,Wooldridge M.A roadmap of agent research and development[J].Autonomous agents and multi-agent systems,1998,1(1):7-38
[4] Le T G,Fedosov D,Hermant O,et al.Programming Robotswith Events[M]∥Embedded Systems:Design,Analysis and Verification.Springer Berlin Heidelberg,2013:14-25
[5] Auyeung T.Robot programming in “C”.2006-02-15[2014-07-01].http://wild-puppy.drtak.org/teaches/ARC/cisp299_bot/b-ook/book.pdf
[6] Kang S C,Chang W T,Gu K Y,et al.Robot Development Using Microsoft Robotics Developer Studio[M].CRC Press,2011
[7] Preston S.The definitive guide to building Java robots[M].Apress,2006
[8] Jayaram K R,Eugster P.Context-oriented programming with Event-Java[C]∥International Workshop on Context-Oriented Programming.ACM,2009:9
[9] Baillie J C.Urbi:Towards a universal robotic low-level programming language[C]∥Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’05).2005:820-825
[10] Chinello F,Scheggi S,Morbidi F,et al.Kuka control toolbox[J].Robotics & Automation Magazine,IEEE,2011,18(4):69-79
[11] Logic Design Inc.Robologix.2014-06-28[2014-07-01].http://www.robologix.com/programming_robologix.php
[12] Cohen N H,Kalleberg K T.EventScript:an event-processing language based on regular expressions with actions[J].ACM Sigplan Notices,2008,43(7):111-120
[13] Holzer A,Ziarek L,Jayaram K R,et al.Putting events in context:aspects for event-based distributed programming[C]∥Proceedings of the tenth international conference on Aspect-oriented software development.ACM,2011:241-252
[14] 张连新,高洪明,张广军,等.混合式弧焊机器人编程语言[J].焊接学报,2006,27(7):105-108
[15] 毛新军.面向 Agent 软件工程:现状,挑战与展望[J].计算机科学,2011,38(1):1-7
[16] Aldebaran Robotics.Nao software documentation.[2014-07-02].https://community.aldebaran.com/doc/

No related articles found!
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!