在人工智能和软件工程领域,多主体系统(Multi-Agent System,MAS)是一种新颖的计算范式和软件开发方法。由于主体能够通过与环境的交互实施自主和理性行为,主体间可以通过社会性的交互实现复杂的协同,因此这一技术可以有效地用于自主机器人软件的设计与实现。基于多主体系统的自主机器人软件(AutoRobot)开发框架不同于已有的研究,这种框架将自主机器人软件视为由诸多主体所构成的多主体系统。这些主体(传感器、行为决策、行为执行等)在自主机器人运行过程中扮演不同的角色,具有不同的职责和功能。主体间通过交互实现协同,完成自主机器人软件的设计目标。基于多主体系统的自主机器人软件提供了一个可重用的软件开发包,封装了各主体所具有的基本功能和行为。开发人员可以通过重用这些主体并编写诸如传感数据处理等功能,来产生相应的软件代码,从而开发出面向特定应用和需求的自主机器人软件。基于多主体系统的自主机器人软件通过提供软件运行和管理的基础设施,实现自主机器人软件对机器人操作系统框架上各个计算节点的访问,控制机器人的运行并对自主机器人的物理和计算资源进行自我管理。
由于机器人自身的复杂性,自主机器人软件的开发、运行和维护面临着一系列的挑战,这给该方向的研究与实践带来了诸多机遇。针对自主机器人软件的实现技术,尤其是程序设计问题,虽然通用的程序设计语言在实现方面具有普适性、便于与已有的其他软件进行集成与互操作、易于掌握和入手等优势,但是它们并没有针对自主机器人软件的特点提供专门的程序设计支持,导致自主机器人软件的大量功能需要程序员从零开始编写。因此,提供面向自主机器人的程序设计语言成为当前研究和实践的一项迫切需求和重要挑战。目前这方面的热点是利用面向主体或者基于场景和行为来开展程序设计技术研究。自主机器人软件的研究须特别关注一组关键问题,具体包括机器人行为的并发性、协调性、安全性和可信性等问题,自主机器人行为的效能问题,行为决策的理性以及适应性问题,实现自主机器人自我管理的机制和算法等。自主机器人的运行环境具有不可预知和动态变化的特点,其行为具有自主性,这意味着开发人员无法事先设计出各种可能的场景进行测试,也很难判断何种行为决策及其实施才是恰当和理性的。此外,自主机器人软件的安全性等方面的要求意味着需要寻求面向机器人物理行为和逻辑行为的形式化验证技术, 如模型检验和定理证明等。