信息处理设备、信息处理方法、计算机程序和程序制造方法与流程

文档序号:19158831发布日期:2019-11-16 01:07阅读:313来源:国知局
信息处理设备、信息处理方法、计算机程序和程序制造方法与流程

本说明书中公开的技术涉及用于程序开发或支持程序开发的信息处理设备和信息处理方法、计算机程序以及程序制造方法。



背景技术:

近年来机器人技术的发展已经很显著,并且广泛延伸到各个工业领域中的工作场地中。例如,机器人包括多个连杆以及连接连杆的关节,并且通过使用用于关节驱动的致动器(诸如,电机)驱动每个关节进行操作。

称为自主类型或自适应控制类型的机器人在不等待来自操作员或主装置的指示的情况下执行自主或自适应地行为控制。具体地,机器人的外部环境或内部状态被持续验证(或者评估或监测),并且连续激活其中外部环境或内部状态的识别结果符合预定的暂时条件的操作,使得实现适用于当前情形的行为(例如,参见专利文献1)。

引用列表

专利文献

专利文献1:日本专利申请公开第2003-334785号



技术实现要素:

本发明待解决的问题

本说明书中公开的技术的目标是提供用于程序开发或支持程序开发的信息处理设备和信息处理方法、计算机程序以及程序制造方法。

问题的解决方案

考虑到上述问题制成了本说明书中公开的技术,并且其第一方面是处理描述为使得自适应控制装置根据环境执行操作的程序的信息处理设备,该信息处理设备包括:

保存单元,其保存定义要调用的操作的顺序的行为验证方案;以及

评估单元,其将该程序依次调用的操作与行为验证方案进行比较,以执行该程序的评估或验证。

信息处理设备还可以包括程序执行控制单元,该程序执行控制单元根据从外部输入的环境信息来控制程序的驱动。在这种情况下,评估单元将通过根据环境信息由程序执行控制单元驱动的程序依次调用的操作与在行为验证方案中定义的操作的顺序进行比较,使得可以在不使用自适应控制装置的模拟器或实际机器的情况下单独评估或验证该程序。

可替换地,评估单元将通过由自适应控制装置的模拟器驱动的程序依次调用的操作与在行为验证方案中定义的操作的顺序进行比较,从而可以在模拟器上评估或验证该程序。

可替换地,评估单元将通过由在自适应控制装置上实际驱动的程序依次调用的操作与在行为验证方案中定义的操作的顺序进行比较,使得可以在实际机器上评估或验证该程序。

此外,在本说明书中公开的技术的第二方面是用于处理描述为使得自适应控制装置根据环境执行操作的程序的信息处理方法,该信息处理方法包括:

读取定义要调用的操作的顺序的行为验证方案的步骤;以及

将该程序依次调用的操作与行为验证方案进行比较以执行该程序的评估或验证的评估步骤。

此外,在本说明书中公开的技术的第三方面是以计算机可读格式描述的计算机程序,以便用作:

保存单元,保存定义要调用的操作的顺序的行为验证方案;以及

评估单元,将描述为使得自适应控制装置根据环境执行操作的该程序依次调用的操作与行为验证方案进行比较以执行该程序的评估或验证。

根据第三方面的计算机程序定义以计算机可读格式描述的计算机程序,以便在计算机上实现预定的处理。换言之,通过根据本申请的权利要求将计算机程序安装到计算机中,在计算机上表现出协作行为,并且可以获得与根据第一方面的设备相似的效果。

此外,在本说明书中公开的技术的第四方面是用于制造其中自适应控制装置根据环境控制操作的控制程序的程序制造方法,该程序制造方法包括:

为控制程序设定定义要调用的操作的顺序的行为验证方案的行为方案设定步骤;以及

为控制程序设定用于将由程序依次调用的操作与行为验证方案进行比较以执行该程序的评估或验证的条件的验证条件设定步骤。

本发明的效果

根据本说明书中公开的技术,可以提供用于程序开发或支持程序开发的信息处理设备和信息处理方法、计算机程序以及程序制造方法。

应注意,本说明书中描述的效果仅是实例,并且本发明的效果不局限于此。此外,除了上述效果之外,本发明还可以具有额外效果。

本说明书中公开的技术的其他目标、特征和优势将从基于随后描述的实施方式和附图的详细说明变得清晰可见。

附图说明

[图1]图1是示意性地示出了控制程序的开发环境的实例的示图。

[图2]图2是示出了经由网络的控制程序的分布式开发环境的示图。

[图3]图3是示出了用于开发机器人的控制程序的开发环境的示图。

[图4]图4是示出了用于开发自主运载工具的控制程序的开发环境的示图。

[图5]图5是示出了用于开发无人驾驶飞机(无人机)的控制程序的开发环境的示图。

[图6]图6是示出了安装在自主操作装置100的实际机器上的硬件和软件架构的配置的实例的示图。

[图7]图7是示意性地示出了应用程序的配置实例的示图。

[图8]图8是示出了单操作模式中的软件模块的配置实例的示图。

[图9]图9是示出了模拟模式中的软件模块的配置实例的示图。

[图10]图10是示出了实际机器操作模式中的软件模块的配置实例的示图。

[图11]图11是示出了用于评估和验证行为计划的处理程序的流程图。

[图12]图12是示出了行为计划的开发工作流的实例的示图。

[图13]图13是示意性地示出了应用于创建行为验证方案的gui工具的配置实例的示图。

[图14]图14是示出了根据行为计划的评估和验证方法的应用例的系统配置的示图。

具体实施方式

在下文中,将参考附图详细描述本说明书中公开的技术的实施方式。

图1示意性地示出了控制程序的开发环境的实例。在该开发环境下,布置了要开发的自主操作装置(实际机器)100以及在自主操作装置100中创建控制程序的开发装置200。

在此,自主操作装置100是通过自主或自适应控制来控制其自身的行为的装置,并且包括各种形式,诸如,机器人、无人驾驶飞机和自主驾驶汽车。

自主操作装置100包括大体上控制整个系统100的操作的主体单元110、以及多个模块单元120-1、120-2...。尽管为简便起见在图1中仅示出了三个模块单元,但是还假设了包括四个或更多个模块单元的自主操作装置、以及仅包括两个或更少模块单元的自主操作装置。

一个模块单元120包括致动器121、传感器124、处理器122、存储器123和通信调制解调器125。应注意,尽管为简便起见未示出,但是模块单元120中的单元121至125通过内部总线互连。

例如,致动器121是用于旋转驱动关节的电机或者用于扬声器的驱动器。传感器124是检测致动器的输出状态等(诸如关节旋转角度、角速度或扬声器的音量的传感器、检测外力或其他外部环境的)的传感器。

处理器122控制包括致动器121的驱动控制(电机控制器)的模块中的操作以及来自传感器124的检测信号的识别处理。处理器122使用存储器123来存储致动器的控制信息、传感器的检测值等。

通信调制解调器125是用于执行模块单元120与主体单元110之间或者模块单元120与另一模块单元之间的互相通信的硬件,并且可以是无线调制解调器或有线调制解调器。例如,处理器123从主体单元110接收致动器121的驱动等的命令信号,并且经由通信调制解调器125将传感器124的检测数据发送到主体单元110。此外,模块单元120还可以经由通信调制解调器125与诸如开发装置200的外部装置进行通信。

主体单元110包括处理器111、存储器112、通信调制解调器113、电池114、通用串行总线(usb)端口115和全球定位系统(gps)116。应注意,主体单元110中的单元111至116通过内部总线互连,但为简便起见未示出。

处理器111根据存储在存储器112中的程序集中控制整个自主操作装置100的操作。此外,电池114是自主操作装置100的驱动电源,并且将电力供应至主体单元110和每个模块单元120。

通信调制解调器113是用于执行主体单元120与每个模块单元120之间的互相通信的硬件,并且可以是无线调制解调器或有线调制解调器。例如,处理器111将致动器121的驱动等的命令信号发送至每个模块单元120,并且基于每个模块单元120中的传感器122的检测值经由通信调制解调器113接收识别结果。此外,主体单元110还可以经由通信调制解调器113与诸如开发装置200等外部装置通信。

usb端口115用于使用usb总线(线缆)将外部装置连接至主体单元110。在本实施方式中,假设开发装置200使用usb端口115连接至主体单元110。例如,在开发装置200上创建的控制程序可以经由usb端口115安装在自主操作装置100上。应注意,usb是用于将外部装置连接至自主操作装置100的接口标准的实例,并且可以被配置为根据另一个接口标准连接外部装置。

应注意,尽管未示出,但是存在连接主体单元110和诸如每个模块单元等硬件的数据总线和控制总线。

例如,开发装置200由个人计算机构成,并且包括计算机主体单元210、诸如液晶面板等显示器220、以及包括鼠标、键盘等的用户界面(ui)单元230。此外,计算机主体单元210包括处理器211、图形处理单元(gpu)212、存储器213、usb端口214和通信调制解调器215。然而,还可以考虑在处理器211中包括gpu212的功能的配置实例。此外,计算机主体单元210包括除了所示的那些之外的硬件部件,并且这些单元由总线互连。

在开发装置200上运行操作系统(os)。处理器211可以将期望的应用程序装载到存储器212中并且在由os提供的执行环境下执行应用程序。

在本实施方式中,用于创建用于自主操作装置100的控制程序的开发工具程序假设作为一个应用程序。开发工具程序在开发装置200的存储器213上与需要执行该程序的数据一起被开发。

开发工具程序在显示器220的屏幕上表现出用于程序开发的图形用户界面(gui)。该程序开发者可以在检查gui屏幕的内容的同时经由用户界面230输入数据和程序。此外,开发工具程序包括与创建的控制程序相关的编制器、调试器、模拟、使用3d图形动画来检查控制程序的操作的功能等,并且开发者可以在gui屏幕上发布关于这些功能的执行的指令。

使用开发工具程序创建的控制程序包括在自主操作装置100的实际机器上的主体单元110的处理器111上执行的控制程序和诸如由该控制程序使用的参数等数据、以及用于控制每个模块单元120的处理器122中的致动器121的驱动的控制程序和诸如由该控制程序使用的参数的数据。由控制程序使用的参数包括诸如作为致动器的电机的控制参数,诸如p(比例控制)、i(积分控制)和d(导数控制)等数据。在本说明书中,程序部分和数据可以共同称为“控制程序”。

使用开发工具程序创建的控制程序被存储在存储器213中。此外,存储器213上的控制程序可以经由usb端口214传送至自主操作装置100。可替换地,存储器213上的控制程序可以经由通信调制解调器215传送至自主操作装置100中的模块单元120。

此外,对于使用开发工具程序在开发装置200上创建的控制程序,可以使用开发工具程序或使用3d图形动画的数据(在下文中,用于开发工具的程序以及数据还被共同成为“开发工具程序”)执行控制数据和程序的操作验证和校正。通常,这种类型的开发工具程序包括根据控制程序产生自主操作装置100的实际机器操作的3d图形动画的功能,并且开发者可以对开发者自己开发的控制程序的操作执行验证,并且同时使用在显示器220上显示的3d图形动画对数据和程序执行校正。

在本实施方式中,假设开发工具程序包括称为物理引擎的功能。物理引擎是具有基于真实的自主操作装置100的操作的物理定律来操作物理现象的功能的计算机程序,并且考虑自主操作装置100的物理特性以及真实的外部环境,以产生与真实相似的操作并且在显示器220上显示该结果。相对于自主操作装置100的实际机器,在3d图形动画空间中使用物理引擎而不是实际机器的电机操作的虚拟自主操作装置100还被称为虚拟计算机(计算机程序和包括用于3d图形动画的数据的数据)。

例如,如果自主操作装置100是机器人,在考虑到机器人臂和关节的每个连杆的重量和力矩以及用于驱动关节的致动器的特性的情况下,物理引擎基于通过仿造机器人创建的虚拟机的控制程序的操作中的物理定律计算虚拟物理环境与在开发工具程序上表示的虚拟机之间的物理行为(与地面接地、与障碍物碰撞等),从而计算仿佛机器人的致动器实际上正在驱动一样的整个虚拟机的运动,并且使得显示器220通过虚拟机显示再现机器人的真实操作的3d图形动画。

虚拟机是被配置为在包括物理引擎和3d图形动画的开发工具程序上操作的控制程序和数据,并且被存储在存储器213中。优选地,控制程序和数据在实际机器的每个模块的处理器上操作的单元中被模块化。为了使虚拟机像在3d图形空间上的实际机器一样操作,虚拟机的控制程序实现与实际机器的处理器(例如,电机控制器)122的操作相对应的功能作为程序的一部分。此外,对该虚拟机的控制程序进行编程,以通过使用应用编程接口(api)或功能通过使用3d图形动画来调用物理引擎功能,该物理引擎功能再现与实际机器的每个模块单元120的致动器121(例如,电机)相对应的操作。此外,在物理引擎中的物理计算中使用的数据(用于致动器的控制参数集、连杆的重量、惯量等)与控制程序一起被存储在存储器213中,与控制程序的执行一起从存储器213读取,并且在控制程序中使用。

此外,与在实际机器中操作的基本os(即自主操作装置100侧)提供的api或功能相同的api或功能被用作用于向程序模块发出用于实现物理引擎的指令的api或功能,以便开发工具程序创建的程序可以在实际机器上的os上进行操作。此外,由于通过物理引擎功能可以再真实际的物理现象,所以使用开发工具程序开发的程序经由usb端口214等直接上传到自主操作装置100并执行,使得由开发工具程序检查的操作也可以在实际机器上实现。

此外,自主操作装置100的控制程序还可以通过使用开发工具程序将其分为模块单元进行开发。另外,在这种情况下,控制程序可以以模块单元上载到自主操作装置100。例如,仅负责开发模块单元120-1的硬件和控制程序的开发者可以经由通信调制解调器215将他的/她的开发装置200连接至自主操作装置100的对应的模块单元120-1以将创建的程序或数据上传到模块单元120-1中的存储器124。

通过在多个开发者或多个开发商之间共享模块单元的硬件和程序的开发,可以在分布式开发环境中提高整个自主操作装置100的开发。

图2示出了经由网络的控制程序的分布式开发环境。在图2中所示的分布式开发环境中,将每个模块的开发委托给单独的开发者或者开发商。然而,除了作为图1中所示的自主操作装置100的硬件部件的模块单元之外,图2中的模块还可以指示自主操作装置100的控制软件的模块。

对开发自主操作装置100的主体单元或模块单元中的控制程序负责的每个程序开发者使用模块开发计算机创建他/她负责的主体单元或模块单元的控制程序。例如,上述开发工具程序在模块开发计算机上运行。每个模块开发计算机连接至网络。然后,每个程序开发者可以在云服务器上的共享存储器中提供自主开发的控制程序等,拥有专用存储器(换言之,主体单元开发者存储器、模块单元开发者存储器)或者设置在专用服务器中的存储器。此外,控制程序等可以由管理者、开发者、客户或在诸如服务器等存储器中具有账户的用户共享。

负责或控制自主操作装置100的整个实际机器的控制程序开发的开发者经由网络接收用于主体单元和每个模块单元的控制程序的规定。具体地,由整个实际机器的开发者使用的实际的机器程序开发计算机通过与云服务器上的共享存储器或开发者存储器、专用服务器、或每个开发者的模块开发计算机直接通信来接收每个控制程序。然而,接收控制程序的规定的网络可以被配置为是有线的或无线的。

由整个实际机器的开发者使用的实际的机器程序开发计算机对应于图1中所示的开发装置200,并且包括能够使用开发工具程序上的物理引擎执行运行且通过3d图形动画显示对应于实际机器的虚拟机的运行的功能。因此,实际的机器程序开发计算机可以使用开发工具程序的物理引擎功能通过虚拟机的3d图形动画来显示检查和验证主体单元110和所有模块单元120的控制程序的运行。

此外,每个控制程序可以在实际的机器程序开发计算机上执行开发的控制程序的同时进行校正。因此,整个实际机器的开发者和负责每个模块单元的开发者还有效共同开发整个实际机器的控制程序。此外,可以再次将在实际的机器程序开发计算机上校正的控制程序提供给负责模块单元的开发者以完成最终的程序产品。例如,可以通过管理模块单元中的控制程序(诸如,将专用于主体单元和每个模块单元布置在云服务器上)来平稳提高共同开发。

已经在由整个实际机器的开发者使用的实际的机器程序开发计算机上检查和验证(换言之,完成)运行的控制程序可以直接经由usb端口214从开发装置200上传到实际机器的自主操作装置100。可替换地,用于整个实际机器或每个模块单元的控制程序可以经由有线或无线网络上传到实际机器。

此外,还假设了将控制程序从专用服务器上传到实际机器的形式。例如,实际机器的用户可以经由他/她的用户终端的用户界面(键盘、鼠标、触摸板等)使用他/她的账户登录专用服务器的控制程序,并且还选择要下载或上传到实际机器的控制程序以执行下载或上传。

图3示出了在开发步行机器人作为自主操作装置100的具体实例的情况下的控制程序的开发环境。尽管使用图3中的单个开发装置执行程序开发,但当然可以使用如图2所示的经由网络的分布式开发环境。

步行机器人100具有主体单元110和对应于头部和左腿和右腿的模块单元120。尽管未示出,但是存在连接主体单元110和诸如每个模块单元120(诸如,头部和左腿和右腿)之类的硬件的数据总线和控制总线。

应注意,步行机器人100还具有诸如上肢的模块单元(未示出)。此外,可以考虑实际机器配置的修改,其中,诸如至少一些模块单元中的处理器和存储器的功能与主体单元集成并且由主体单元的处理器控制。

主体单元110包括处理器111、存储器112、无线或有线通信调制解调器113、电池114、usb端口115和gps116。

左腿和右腿模块单元120-2和120-3包括用于驱动诸如髋关节、膝关节或脚关节等关节(或行走)的电机121作为致动器,并且包括控制电机的驱动的电机控制器122作为处理器。此外,左腿和右腿模块单元120-2和120-3包括检测在电机的输出侧上产生的外部力的转矩传感器作为传感器124、检测电机的输出侧上的旋转角的编码器、鞋底部分中的地面传感器等。此外,头部的模块单元120-1包括用于头部旋转的电机121作为致动器、以及用于使周围环境成像的图像传感器124作为传感器。

如与图1相似,可以使用在开发装置200上运行的开发工具程序创建以上描述的机器人100的主体单元和每个模块单元的控制程序,并且进一步地,可以使用在开发工具程序上运行的物理引擎的运行通过虚拟机的3d图形动画的显示器来检查和验证该运行。

此外,使用开发装置200创建的控制程序,或者用于在如图2所示的开发环境(或者其他开发环境)中开发的整个实际机器的控制程序,或者用于每个模块单元的控制程序,通过有线或无线通信经由主体单元110的usb端口115或每个模块单元120的通信调制解调器125上传到主体单元110的存储器112或每个模块单元120的存储器123。然后,在激活机器人100等时适当运行上传的程序。

图4示出了在开发自主运载工具作为自主操作装置100的另一具体实例的情况下的控制程序的开发环境。自主运载工具100是引入自主驾驶技术的汽车(或者用于工作或运输的无人驾驶车辆等),但是除了完全自动驾驶车辆之外,还包括在自动驾驶模式和手动驾驶模式可以切换的汽车中在自动驾驶模式中行进的车辆。尽管使用图4中的单个开发装置执行程序开发,但当然可以使用如图2所示的经由网络的分布式开发环境。

图4中所示的自主运载工具100具有主控单元110、传输控制模块单元120-2作为模块单元、以及室内空气调节控制模块单元120-1。尽管未示出,但是存在连接主控单元110和诸如每个模块单元120等硬件的数据总线和控制总线(can总线等)。此外,自主运载工具100包括除了传输控制模块单元120-2和室内空气调节控制模块单元120-1之外的许多模块单元(未示出),为了简化描述起见省略了它们。

主控单元110包括电子控制单元(ecu)111作为处理器、存储器112、通信调制解调器113、ecu接口115、gps116和电池114。通信调制解调器113被假定为无线保真(wi-fi)、长期演进(lte)、近场通信等。此外,ecu接口115被假定为连接控制器局域网(can)总线(未示出)的接口,并且使用诸如以太网(注册商标)的通信标准连接至开发装置200。

室内空气调节模块120-1包括空调121作为致动器、空气调节控制ecu122作为处理器、存储器123、作为传感器的室内温度传感器124、以及蓝牙(注册商标)通信等的通信调制解调器125。例如,假设通过蓝牙(注册商标)通信连接至诸如由乘客携带的智能电话(未示出)等信息终端来控制空调。

传输控制模块单元120-2包括驱动轮电机121作为致动器、传输控制ecu122作为处理器、存储器123、速度加速传感器124作为传感器、转向角传感器等。

应注意,在图4中所示的配置实例中,尽管ecu被布置在主控单元110和每个模块单元120中,但是主控单元110中的ecu111可以集中管理所有模块单元。

如与图1相似,可以使用在开发装置200上运行的开发工具程序创建自主运载工具100的主控单元110的控制程序、室内空气调节控制模块单元120-1和传输控制模块单元120-2,并且进一步地,可以使用在开发工具程序上运行的物理引擎的功能通过虚拟机的3d图形动画的显示器来检查和验证该运行。

此外,使用开发装置200创建的控制程序,或者用于在如图2所示的开发环境(或者其他开发环境)中开发的整个实际机器的控制程序,或者用于每个模块单元的控制程序经由主控单元110的ecu接口115或者每个模块单元120的通信调制解调器(未示出)通过有线或无线通信上传到主控单元110的存储器112或每个模块单元120的存储器123。然后,在激活自主运载工具100等时适当运行上传的程序。

图5示出了在开发无人驾驶飞机(无人机)作为自主操作装置100的另一具体实例的情况下的控制程序的开发环境。尽管使用图5中的单个开发装置执行程序开发,但是当然可以使用如图2所示的经由网络的分布式开发环境。

图5中所示的无人驾驶飞机100具有主控单元110、相机控制模块单元120-1作为模块单元、以及螺旋桨控制模块单元120-2。尽管未示出,但是存在连接主控单元110和诸如每个模块单元120等硬件的数据总线和控制总线。此外,在无线飞行器100中,可以集成除了相机控制模块单元120-1和螺旋桨控制模块单元120-2之外的模块单元。

主控单元110包括处理器111、存储器112、通信调制解调器113、usb端口115、gps116和电池114。通信调制解调器113被假定为wi-fi、lte、近场通信等的无线调制解调器,并且与通过操作员操作的远程控制器(未示出)进行通信。此外,使用usb端口115与开发装置200连接,并且上传开发的控制程序。

相机控制模块单元120-1包括相机单元(包括图像传感器)124作为传感器、相机单元旋转电机121作为致动器、电机控制器122作为处理器、存储器123、以及通信调制解调器125。例如,相机单元旋转电机可以在水平方向上的360度的范围内是可旋转的,并且还可以能够倾斜旋转。此外,通信调制解调器125被假定为wi-fi、lte、近场通信等的无线调制解调器,并且根据来自由操作员操作的远程控制器或智能电话的命令执行相机单元124的旋转或拍摄。

例如,螺旋桨控制模块单元120-2包括三个螺旋桨(包括旋转电机)121作为致动器、执行螺旋桨121的旋转电机的控制等的处理器122、存储器123、以及螺旋桨旋转检测传感器124作为传感器。

如与图1相似,可以使用在开发装置200上运行的开发工具程序创建以上描述的无人驾驶飞机100的主控单元110、相机控制模块单元120-1和螺旋桨控制模块单元120-2的控制程序,并且进一步地,可以使用在开发工具程序上运行的物理引擎的功能通过虚拟机的3d图形动画的显示器来检查和验证该运行。

此外,使用开发装置200创建的控制程序,或者用于在如图2所示的开发环境(或者其他开发环境)中开发的整个实际机器的控制程序,或者用于每个模块单元的控制程序经由主控单元110或者每个模块单元120的通信调制解调器通过有线或无线通信上传到主控单元110的存储器112或每个模块单元120的存储器123。然后,在激活无人驾驶飞机100等时适当运行上传的程序。

图6是示出了安装在自主操作装置100的实际机器上的硬件和软件架构的配置的实例。

如图1等所示,在实际机器中,主体单元(或主控单元)的多个硬件模块(hw1、hw2...)、多个模块单元等被集成在壳体中。此外,可能存在通过将硬件模块分布和布置在两个以上壳体中进行配置的实际机器。

os直接控制这些硬件模块(hw1、hw2...)。此外,存在上传到模块单元中的存储器而不是os的控制程序直接控制硬件模块的情况(具体地,处理器执行控制程序并且控制致动器的驱动)。

如图1等所示,在通过主体单元110和多个模块单元120配置硬件结构的自主操作装置100中,控制整个系统100的主os在主体单元110(的处理器111)中运行,以控制在每个模块单元120中直接或间接执行的控制程序。

图6示出了除了主os之外的多个os(例如,os1、os2...)运行,并且每个os提供应用程序的执行环境的实例。在图6中,例如,在期望在主os的管理下由os1驱动硬件模块的情况下,理想的模块单元的控制程序可以通过与主os通信的os1间接控制。此外,可以使用诸如远程过程调用(rpc)等技术来实现os1与主os之间的通信。

图6还示出了使用虚拟化技术建造的架构。换言之,多个不同的操作系统(例如,os1、os2...)在虚拟化os上运行。可以将在不同的os的假设上开发的应用程序(例如,为os1开发的ap1和为os2开发的ap2)结合在同一台实际机器上。

例如,当在自主运载工具中开发的应用程序大致分为要求高可靠性诸如驱动系统控制(dsu等)的应用程序以及具有高通用性诸如与用户的服务相关的信息娱乐的应用程序(音频设备、空调等)这两种类型时,前者ap1被开发为假设os1更可靠,并且后者ap2被开发为假设os2具有更高的通用性,且可以被许多开发者开发。由于在假设不同os的情况下开发的驱动系统控制应用程序ap1和信息娱乐应用程序ap2可以通过虚拟化os的介入而容易地控制对应于它们中的每一个的硬件,所以可以将应用程序混合在同一个自主运载工具上。

应用程序开发者可以使用由系统(例如,中件)提供的api开发应用程序。例如,可以考虑使用诸如“地图显示器”、“切换到语音对话模式”、“识别周围的人”的功能作为api。

此外,应用程序开发者可以开发包括使用系统调用指示os的程序的应用程序。在此提到的系统调用是用于利用与系统控制相关的功能的接口。系统调用的实例可包括:改变模块单元中的处理器(例如,电机控制器)的参数、设定通信调制解调器中的网络地址。

图7示意性地示出了应用程序的配置实例。例如,应用程序在图1中的开发装置200上(换言之,使用开发工具程序)被开发。如附图所示,尽管通过多个部件配置应用程序,但是所有部件可以集成和配置到一个文件中,但是每个部件可以配置为单独的文件。此外,这些文件被存储在图2中的云服务器上的共享存储器、专用于每个用户的存储器(换言之,主体单元开发者存储器、模块单元开发者存储器、设置在专用服务器中的存储器等中,并且可以能够由管理员、开发者、消费者或者具有诸如服务器等存储器的访问权的用户共享。

该应用程序包括一个或多个定义操作、一个或多个行为计划、以及一个或多个行为验证方案。定义操作和行为计划都是自主操作装置100的操作控制程序。

定义操作包括在指令中发布给由硬件中的电机等代表的致动器的控制器的目标值,并且还被称为“运动”。存在一个定义操作仅包括在某个时间点以指令形式发布给控制器的目标值、或在某区间中以时间序列形式发布给控制器的指令中的一系列目标值的情况。此外,所定义的操作还是用于指示控制器设定基本参数的程序和数据。参数的实例包括p(比例控制)、i(积分控制)和d(导数控制)。此外,在定义操作中,可以将可以根据要控制的致动器(诸如,电机)的特征在控制器(处理器)中设定的参数设定为基本参数。

行为计划包括调用一个或多个定义操作的功能的程序和数据。诸如机器人等自主操作装置100通过根据行为计划执行一个或多个定义操作来实现一个“行为”。

此外,该行为计划是通过确定每个情形要激活的定义操作描述自主操作装置100的一系列操作的程序和数据。例如,可以叙述一个行为计划,该行为计划以树状结构的形式描述用于选择定义的操作的条件分支。因为行为计划根据识别结果来控制自主操作装置100,所以行为计划可以基于环境(情形)识别定位在行为控制程序中。在这个意义上,行为计划还对应于广义上的人工智能(ai)的一部分功能。

行为验证方案是实现关于是否在预定条件下执行行为计划中的预定的定义操作的验证(或者评估或监测)的程序。预定条件是相对于环境数据定义的,诸如,存储在每个模块单元中的存储器中的数据(内部状态)以及由每个模块单元中的传感器检测到的数据(外部环境)。当在某个行为计划中出现预定条件利用自主操作装置100时,行为验证方案可以检测到正如所料的定义操作没有激活作为异常。

该应用程序还可以包括用于利用os或中件的功能的程序和数据。此外,应用程序还可以包括用于使得行为计划或定义操作的程序和数据通过实际机器操作期间的学习改变的程序和数据。应用程序还定义了在外部使用自主操作装置100的实际机器的应用程序的功能的api。因此,用于创建应用程序的开发装置200、以及诸如用户终端或服务器等外部装置可以在实际机器正在运行或测试的同时经由通信通过调用api来使用应用程序的功能。

例如,在自主运载工具是自主操作装置100的情况下,假设“刹车致动”被定义为定义操作,并且“安全驾驶”被定义为行为验证方案。例如行为验证方案“安全驾驶”是用于验证(或评估或监测)定义操作“刹车致动”在“识别前方的人”作为外部环境的条件下发生的,同时在自主运载工具中执行行为计划。在“识别前方的人”的条件下,当在自主运载工具中未发生定义的操作“刹车致动”时,行为验证方案检测到自主运载工具(或者行为计划上)已经出现异常。

此外,在与行为验证方案集成检测到诸如异常的预定事件的情况下,行为验证方案包括记录环境数据的功能,诸如存储在自主操作装置100的主体单元或每个模块单元中的存储器中的数据(内部状态)、或者通过每个模块单元中的传感器检测到的数据(外部环境)。“安全驾驶验证”api被定义为从外部使用应用程序的功能的api中的一个,并且与自主运载工具事故前后的行为验证方案“安全驾驶”相关联记录的环境数据被提取出来。

使用这种api,可以将当出现异常时的行为验证方案相关联记录的环境数据提取到外部。然后,使用3d图形动画功能协作在开发装置200上操作的开发工具程序的物理引擎,在出现异常时基于取出的环境数据可以通过虚拟机的3d图形动画再现自主操作装置100的操作。此外,出现异常时的环境数据被上传到已经出现异常或者相同类型的实际机器操作该应用程序的自主操作装置100,使得可以再现出现异常时的实际机器操作。

可以由应用程序的开发者使用开发工具程序在开发装置200上创建用于自主操作装置100的应用程序。开发工具程序具有与物理引擎链接的编辑器、调试器、3d图形动画功能等,并且应用程序的开发者可以在gui屏幕上发布关于执行这些功能的指令。

此外,在本实施方式中,假设在开发装置200上操作的开发工具程序包括调用物理引擎的功能。物理引擎是在计算机上再现基于真实自主操作装置100的操作的物理定律的现象的功能,并且考虑了自主操作装置100的物理特性且还考虑了实际的外部环境以产生表示与真实的实际机器相似的操作的虚拟机的3d图形动画并且显示该结果。应用程序的开发者可以在观看这种3d图形动画的同时验证实际机器的操作并且还适当校正该应用程序。

开发工具程序制备程序模块和数据以再现自主操作装置100的每个模块单元的致动器和处理器的实际操作。与在实际机器上操作的os相同的api或功能(参见图6)用作用于将指令发布给程序模块用于实现物理引擎功能的api或功能,使得通过开发工具程序创建的程序可以原样在实际机器上的os上操作。

近来,物理引擎的精度已经得到了提高,并且用于控制自主操作装置100的实际机器操作的应用程序在具有物理引擎和3d图形动画的功能的开发工具程序上运行,使得它变得可以利用虚拟机更精确地再真实际机器操作。具体地,因为执行高性能物理操作的物理引擎具有对应于实际机器(例如,电机控制器)的硬件的功能,所以可以在不使用实际机器的情况下验证该控制程序,从而提高开发效率并降低了开发成本。此外,当包括以此方式创建的控制程序的应用程序在实际机器上操作时,可以在实际机器上再现预期的操作。

例如,使用具有物理引擎和3d图形动画功能的开发工具程序,在没有在实际机器上执行定义操作的情况下,也可以评估或验证包括用于每个模块单元的控制器的时间序列目标值的定义操作(以上描述的)是否即使在现实环境中也正确地操作。

另一方面,关于在广义上部分对应于ai功能的行为计划,评估和验证不像定义操作那么容易。例如,可以叙述以下评估和验证方法。

(1)要评估的行为计划在实际机器上或在具有物理引擎和3d图形动画功能的开发工具程序上操作,并且视觉检查在实际机器的评估器上的行为、或在相同开发工具程序上的评估器的操作上的行为。

(2)单独创建用作评估器的替换的行为计划(评估器行为计划),并且通过评估器或者通过评估器行为计划的调试输出视觉检查评估器行为计划上的评估目标的行为计划的行为。

上述评估方法(1)和(2)这两者具有以下问题。

(a)评估需要时间长。

(b)由于随机数的影响、外围环境以及评估器的操作的变化导致验证结果的可再现性低。

(c)因为每个模块单元中的传感器和识别器的输出被用作要输入至行为计划控制软件的环境数据,所以它仅是集成的验证,并且很难说它是对行为计划的逻辑的直接评估。

因此,在下文中,在使用具有物理引擎和3d图形动画功能的开发工具程序的应用程序的开发环境中,提出了行为计划的高度可再现的和有效的验证方法。这个验证方法是用于制备行为验证方法的方法,该方法定义期望的(或理想的)定义操作的顺序,在预定环境下驱动要评估的行为计划,并且基于是否按行为验证方案的顺序选择定义操作来执行行为计划的评估和验证。

参考行为验证方案执行行为计划的评估和验证的软件以下被称为“行为验证软件”。行为验证软件具有三个操作模式:“单操作模式”,通过行为验证软件本身驱动要评估的行为计划以仅利用该软件执行行为计划的评估和验证;“模拟模式”,通过具有物理引擎和3d图形动画功能的开发工具程序驱动行为计划并且监测根据虚拟环境激活的定义操作以执行行为计划的评估和验证;以及“实际机器操作模式”,驱动实际机器(自主操作装置100)上的行为计划并且监测根据真实环境激活的定义操作以执行行为计划的评估和验证。

根据“单操作模式”或“模拟模式”,可以在程序(行为计划)开发环境中利用高可再现性执行行为计划的评估和验证。此外,根据“实际机器操作模式”,可以实时执行行为计划的评估和验证。

图8示出了在单操作模式中用于评估和验证行为计划的软件模块的配置实例。行为验证软件800由开发装置200等执行。单操作模式中的行为验证软件800包括方案评估单元801、行为验证方案保存单元802、伪识别结果流输出单元803和行为计划控制单元810作为软件模块。所所示的行为验证软件800被配置为评估和验证由软件800中的行为计划控制单元810驱动的行为计划。

行为计划控制单元810包括评估目标行为计划保存单元811、状态存储单元812、外部环境输入单元813和行为计划驱动单元814。

评估目标行为计划保存单元811保存要在行为验证软件800中评估的一个或多个行为计划的程序和数据。行为计划是根据应用程序的状态(内部状态)和外部环境用于描述要被激活的定义操作的程序和数据。在下文中,行为计划假设以树状结构的形式描述用于选择定义操作的条件分支。

状态存储单元812存储外部环境的识别结果和应用程序(由行为计划驱动单元814驱动的行为计划)的状态,即内部状态。

外部环境输入单元813从行为计划控制单元810的外部接收外部环境的数据,并且写入(更新)状态存储单元812。外部环境最初是指实际机器(自主操作装置100)周围的环境数据。然而,在单操作模式中,外部环境是假设按从要评估的行为计划的顺序选择根据行为验证方案的定义操作的外部环境数据的理想时间序列的集合。

行为计划驱动单元814从评估目标行为计划保存单元811读取要评估的行为计划的程序和数据,并且指代有关来自状态存储单元812的当前内部状态和外部环境的信息以选择根据内部状态或外部环境要显示的定义操作。此外,行为计划驱动单元814写入根据状态存储单元812中所选择的定义操作更新的应用程序的状态。

行为验证方案保存单元802为每个行为计划保存行为验证方案。行为验证方案是根据预期的外部环境中的变化定义从行为计划选择的期望的(或理想的)定义操作的顺序的程序和数据。例如,行为验证方案是行为计划程序的开发者认为关于假设的外部环境中的变化是理想的的定义操作的顺序。

伪识别结果流输出单元803将外部环境的伪识别结果数据流输出至行为计划控制单元810中的外部环境输入单元813。外部环境是实际机器(自主操作装置100)周围的环境数据,并且是基于每个模块单元中的传感器的检测结果最初识别的数据。然而,在单操作模式中,假设按从要评估的行为计划的顺序选择根据行为验证方案的定义操作,伪识别结果流包括理想的外部环境的识别结果的时间序列数据集合。例如,伪识别结果流同时利用行为验证方案定义。然后,伪识别结果流输出单元803将与用于要评估的行为计划的行为验证方案一起定义的伪识别结果流输出至外部环境输入单元813。

方案评估单元801从行为验证方案保存单元802读取对应于当前正在评估的行为计划的行为验证方案。然后,方案评估单元801基于将根据伪识别结果流通过行为计划驱动单元814连续选择的定义操作与在行为验证方案中定义的定义操作的顺序进行比较的结果评估或验证要评估的行为计划。

图9示出了在模拟模式中用于评估和验证行为计划的软件模块的配置实例。模拟模式中的行为验证软件900包括方案评估单元901和行为验证方案保存单元902,并且被配置为评估或验证在具有物理引擎和3d图形动画功能的开发工具程序中虚拟驱动的行为计划。

用于控制行为计划的驱动的行为计划控制单元910和虚拟环境识别单元903被布置在具有物理引擎和3d图形动画功能的开发工具程序中。行为计划控制单元910包括评估目标行为计划保存单元911、状态存储单元912、外部环境输入单元913和行为计划驱动单元914。

评估目标行为计划保存单元911保存要在行为验证软件900中评估的一个或多个行为计划的程序和数据。

状态存储单元912存储(虚拟的)外部环境的识别结果和应用程序(由行为计划驱动单元914驱动的行为计划)的状态,即内部状态。

外部环境输入单元913从行为计划控制单元910的外部接收外部环境的数据,并且写入(更新)状态存储单元912。外部环境最初指代实际机器(自主操作装置100)周围的环境数据。然而,在模拟模式中,外部环境是具有物理引擎和3d图形动画功能的开发工具程序中的虚拟外部环境的识别结果的时间序列的集合。虚拟环境识别单元903识别开发工具程序中的虚拟环境,并且将识别结果输出至外部环境输入单元913。

行为计划驱动单元914从评估目标行为计划保存单元911读取要评估(或者要模拟)的行为计划的程序和数据,并且指代有关来自状态存储单元912的当前内部状态和外部环境的信息以选择根据内部状态或外部环境要显示的定义操作。此外,行为计划驱动单元914写入根据状态存储单元912中所选择的定义操作更新的应用程序的状态。

行为验证方案保存单元902为每个行为计划保存行为验证方案。行为验证方案是根据预期的外部环境中的变化定义从行为计划选择的期望的(或理想的)定义操作的顺序的程序和数据。例如,行为验证方案是行为计划程序的开发者认为关于假设的外部环境中的变化是理想的定义操作的顺序。

方案评估单元901从行为验证方案保存单元902读取对应于当前正在评估的行为计划的行为验证方案。然后,方案评估单元901基于将根据虚拟环境通过行为计划驱动单元914连续选择的定义操作与在行为验证方案中定义的定义操作的顺序进行比较的结果评估或验证要评估的行为计划。

图10示出了在实际机器操作模式中用于评估和验证行为计划的软件模块的配置实例。在实际机器模式中的行为验证软件1000包括方案评估单元1001和行为验证方案保存单元1002;驱动实际机器(自主操作装置100)上的行为计划;并且监测根据真实环境要激活的定义操作以评估和验证行为计划。

行为计划控制单元1010和真实环境识别单元1003被布置在实际机器硬件(自主操作装置100)中。行为计划控制单元1010具体是在主体单元的处理器上执行行为计划的行为计划控制软件,但是包括评估目标行为计划保存单元1011、状态存储单元1012、外部环境输入单元1013和行为计划驱动单元1014。此外,真实环境识别单元1003对应于布置在每个模块单元中的传感器和处理器,并且基于通过传感器的检测信号识别实际机器100的外部环境。

评估目标行为计划保存单元1011保存要在行为验证软件1000中评估的一个或多个行为计划的程序和数据。

状态存储单元1012存储外部环境的识别结果和应用程序(由行为计划驱动单元1014驱动的行为计划)的状态,即内部状态。

外部环境输入单元1013从行为计划控制单元1010的外部接收实际机器100的外部环境的数据,并且写入(更新)状态存储单元1012。外部环境是实际机器(自主操作装置100)周围的真实环境数据,并且从真实环境识别单元1003进行输入。

行为计划驱动单元1014从行为计划保存单元1011读取要评估的行为计划的程序和数据,并且指的是有关来自状态存储单元1012的当前内部状态和外部环境的信息以选择根据内部状态或外部环境要显示的定义操作。此外,行为计划驱动单元1014写入根据状态存储单元1012中所选择的定义操作更新的应用程序的状态。

行为验证方案保存单元1002为每个行为计划保存行为验证方案。行为验证方案是根据预期的外部环境中的变化定义要从行为计划选择的期望的(或理想的)定义操作的顺序的程序和数据。例如,行为验证方案是行为计划程序的开发者认为关于假设的外部环境中的变化是理想的定义操作的顺序。

方案评估单元1001从行为验证方案保存单元1002读取对应于当前正在评估的行为计划的行为验证方案。然后,方案评估单元1001基于将根据实际机器的真实环境通过行为计划驱动单元1014连续选择的定义操作与在行为验证方案中定义的定义操作的顺序进行比较的结果评估或验证要评估的行为计划。

在单操作模式、模拟模式和实际机器操作模式中的每一个中,尽管组成行为计划控制单元本身的每个软件模块基本上相同,但是在每个模式中操作的执行环境和外部环境的输入源不同。通过适当定义外部环境输入单元的接口,行为计划控制单元可以在具有基本上相同的软件模块配置的各种环境中进行操作。

在单操作模式中,作为理想的外部环境的识别结果的伪识别结果流被输入至外部环境输入单元813,使得在无论是否具有高可再现性的实际机器的真实环境识别单元的性能的情况下,行为计划控制单元810都可以评估或验证要评估的行为计划。

另一方面,具有相同配置的行为计划控制单元910和1010在模拟模式和实际机器操作模式中的每一个中操作,使得还可以通过与综合评估(综合测试)中相同的格式的行为验证方案评估该行为计划。

在任何操作模式中,方案评估单元801(901、1001)将在执行行为计划时选择的定义操作的顺序是否与行为验证方案中定义的顺序相同。然后,在确定定义操作的顺序与比较结果不相同的情况下,检测到要评估的行为计划的异常。

图11示出了以流程图形式评估和验证行为计划的处理程序。尽管以下将描述在单操作模式中通过行为验证软件800执行的处理程序,但是应当理解,类似的处理程序应用于模拟模式和实际机器操作模式。

首先,作为状态存储单元812的初始化处理,在状态存储单元812中写入用于验证要评估的行为计划的前提条件(步骤s1101)。用于验证的前提条件在行为验证方案中假设,并且同时利用行为验证方案的定义。

接下来,激活行为计划驱动单元814(步骤s1102)。行为计划驱动单元814从评估目标行为计划保存单元811读取要在当前行为验证中评估的行为计划并且开始行为计划操作。

然后,方案评估单元801检查要通过行为计划驱动单元814依次调用的定义操作(步骤s1103)。

例如,在步骤s1102中,在行为计划驱动单元814中已经开始其操作的行为计划为每个预定控制周期读取外部环境和存储在状态存储单元812中的应用程序的状态(内部状态),并且选择并调用适合外部环境和内部状态的条件的定义操作。然后,在步骤s1103中,当方案评估单元801从行为验证方案保存单元802调用对应于要评估的行为计划的行为验证方案时,方案评估单元801检查通过行为计划选择的定义操作是否是在行为验证方案中定义的顺序的预期的定义操作。

在此,在通过行为计划选择的定义操作不是在行为验证方案中定义的顺序中的预期的定义操作的情况下(步骤s1104中的否),则检测到要评估的行为计划的异常,并且该处理被异常终止。在异常终止的情况下,利用具有物理引擎和3d图形动画功能的行为验证软件或开发工具程序,可以做出关于异常终止的通知,诸如,在gui上显示对话框。此外,例如,在实际机器操作模式的情况下,可以驱动由图1中的参考标号121举例说明的扬声器的驱动器以通过语音通知用户,或者使用通信调制解调器125通知用户的便携式终端(智能电话等)。

另一方面,在通过当前控制周期中的行为计划选择的定义操作是行为验证方案中定义的顺序的预期的定义操作的情况下(步骤s1104中的是),是否完成了由行为验证方案定义的顺序的所有定义操作的评估和验证(步骤s1105)。

在仍然未完成行为验证方案的情况下(步骤s1105中的否),写入输入至外部环境输入单元813的伪识别结果以及当前应用程序状态(内部状态),并且更新存储在状态存储单元812中的状态(步骤s1106)。此后,该过程返回至步骤s1103并且使用行为验证方案反复执行接下来要通过行为计划调用的定义操作的检查。

此后,重复与以上描述的过程类似的过程直到实现行为验证方案的结束。然后,在未检测到任何异常可以实现行为验证方案的结束的情况下(步骤s1105中的是),表明要评估的行为计划正常,并且这个过程正常结束。

图12示出了包括上述行为计划的评估和验证的行为计划的开发工作流的实例。

例如,开发者使用在开发装置200上操作的开发工具程序设计和开发自主操作装置100(诸如,机器人)的行为计划。在过去,通过将设计的和开发的行为计划提供给模拟器或者驱动实际机器执行了评估和验证,但是难以单独评估该行为计划。另一方面,在本实施方式中,可以使用如图8所示的行为验证软件的单操作模式评估和验证单个行为计划。

接下来,使用物理引擎功能等在开发工具程序执行环境中执行自主操作装置100的行为计划的设计和开发。然后,使用如图9所示的行为验证软件的模拟模式,在开发工具程序执行环境中执行行为计划的综合评估。

此外,自主操作装置100的实际机器连接至开发装置200,并且在实际机器操作环境下执行自主操作装置100的行为计划的设计和开发。然后,使用如图10所示的行为验证软件的实际机器操作模式,在实际机器环境中执行行为计划的综合评估。

行为计划的开发日程手动开发工具程序执行环境的开发速度以及实际机器环境中的综合评估环境的影响。根据本实施方式,通过使用行为验证软件的单操作模式,可以对行为计划执行单个评估,使得可以预期实现与其他模块相对无关的并行开发。

在一般的软件开发中,负责程序开发的程序员创建用于程序的评估和验证的验证码。另一方面,在本实施方式中,假设除了负责行为计划的设计和开发的程序员之外的设计师也创建行为验证方案。

图13示意性地示出了应用于创建行为验证方案的gui工具1300的配置实例。所示的gui工具1300包括用于显示要评估的行为计划的行为计划显示窗格1301、用于设计用于评估和验证行为计划的行为验证方案的行为验证方案设计窗格1302、以及用于设定与行为验证方案相关的性能的性能设定窗格1303。

当然,gui工具1300可以显示除了所示的窗格1301至1303之外的窗格,并且可以显示gui部件,诸如用于行为验证方案的设计工作的工具和按钮,但是为了简化附图起见,省略了示意图。

在本实施方式中,假设了用树状结构的形式表示的行为计划。因此,在行为计划显示窗格1301中,显示表示要评估的行为计划的树。树的端部处的节点a、b、c...中的每一个对应于定义操作。此外,除了端部以外的节点是所有条件节点,并且根据当前观察的外部环境和内部状态选择一个分支。例如,当完成定义操作时,当出现诸如观察外部环境的变化的事件时,或者对于每个预定控制周期,驱动行为计划的自主操作装置100开始从树的根部搜索该树,并且选择与当前观察到的外部环境和内部状态匹配的对应于终端节点的定义操作。

行为验证方案表示为要评估的行为计划定义的期望的(或理想的)定义操作的顺序。在行为验证方案设计窗格1302中,通过沿时间线方向布置每个对应于定义操作的多个节点b、a、e、f...,可以设计包括按照时间线方向的顺序的定义操作的行为验证方案。例如,设计师可以通过将对应于期望的定义操作的端节点从在行为观看显示窗格1301中显示的树拖放到行为验证方案设计窗格1302中的简单和直观工作来设计行为验证方案。此外,可以以在行为验证方案设计窗格1302中的接合连接对应节点上描述的形式定义从一个定义操作转变至下一个转变操作时的条件(env数据),诸如,外部环境。

性能设定窗格1303通常显示行为验证方案的设定值以及被聚焦的对象的信息。例如,当在行为验证方案设定窗格1302中选择定义操作的节点或者节点之间的过渡条件(env数据)的对象时,在性能设定窗格1303中显示关于对象的性能的详细信息并且可以编辑。

在设计行为计划中,经常使用构造状态机器、树等的方法,并且可以通过可视编程工具共享任务。图13中所示的gui工具1300延伸为创建作为行为计划评估和验证程序的行为验证方案。通过使用gui工具1300,行为计划的设计师和开发者可以从说明书执行一系列任务,以实现和评估行为计划。

尽管行为验证方案的主要评估项是定义操作的执行顺序,但是其他评估可以集成到行为验证方案中。例如,可以想象的是评估与定义操作的执行顺序并联的以下项。

(a)当执行所选择的定义操作时,存储在状态存储单元812中的状态是否正如所预期的那样?

(b)验证是否在预期时间内结束?

(c)是否已按预期选择了指定操作以外的已定义的操作?

该方案具有在检测与方案(以上描述的)相关联的预定事件时记录信息的功能。因此,行为验证方案仅需要使用这种功能记录诸如与行为验证方案相关联的上述(a)至(c)的评估项。此外,如果定义用于将通过行为验证方案记录的数据提取到外部的api,方案评估单元801(或者901、1001)可以调用这个api对除了定义操作的顺序之外的各种评估项执行评估和验证。

图14示出了根据如上所述的行为计划的评估和验证方法的应用例的系统配置。所示的系统具有当在实际机器100上驱动开发的行为计划时观察到的外部环境和内部状态被提取为识别流数据的配置,并且被输入至在开发装置200中的单操作模式中操作的行为验证软件1400,并且通过软件再真实际机器上的环境。例如,如图2所示,通过网络环境中的无线或有线通信传输识别结果流。通信网络可以通过p2p类型、lan、wan或互联网中的任一个配置。

行为计划控制单元1430和真实环境识别单元1435被布置在实际机器硬件(自主操作装置100)中。行为计划控制单元1430特别是在主体单元的处理器上执行行为计划的行为计划控制软件,但是包括评估目标行为计划保存单元1431、状态存储单元1432、外部环境输入单元1433和行为计划驱动单元1434。

行为计划保存单元1431对应于主体单元110的存储器112或者每个模块单元120中的存储器123,并且保存一个或多个开发的行为计划的程序和数据。

真实环境识别单元1435对应于布置在每个模块单元120中的传感器124和处理器122,并且处理器122基于通过传感器124的检测信号识别实际机器100的外部环境。外部环境输入单元1433从真实环境识别单元1435接收实际机器100的外部环境的数据,并且写入(更新)状态存储单元1432。

外部环境输入单元1433从真实环境识别单元1435接收外部环境的数据,并且写入(更新)状态存储单元1432。

行为计划驱动单元1434从行为计划保存单元1431读取要在实际机器100中驱动的行为计划的程序和数据,并且指代有关来自状态存储单元1432的当前内部状态和外部环境的信息以选择根据内部状态或外部环境要显示的定义操作。此外,行为计划驱动单元1434写入根据状态存储单元1432中所选择的定义操作更新的应用程序的状态。

在此,在行为计划没有如预期的在实际机器100上移动的情况下(在用户环境下出现行为计划的问题的情况下),存储在状态存储单元1432中的内部状态和外部环境被提取为识别结果流。可以使用定义为将通过行为验证方案记录的数据提取到外部的api执行从状态存储单元1432提取识别结果流。在此处提到的“识别结果流”是与单操作模式(参见图8)中的“伪识别结果流”具有相同质量的数据,并且是可以原样用作行为验证元件的输入数据的数据。

然后,在开发装置200上,从实际机器100上的状态存储单元1432提取的识别结果流被输入至在单操作模式中操作的行为验证软件1400,并且通过软件再真实际机器上的环境。

行为验证软件1400被配置为评估和验证由软件1400中的行为计划控制单元1410驱动的行为计划。行为计划控制单元1410包括评估目标行为计划保存单元1411、状态存储单元1412、外部环境输入单元1413和行为计划驱动单元1414。

外部环境输入单元1433接收从实际机器100提取的识别结果流并且写入(更新)状态存储单元1012。

评估目标行为计划保存单元1411保存要在行为验证软件1400中评估的一个或多个行为计划的程序和数据。行为计划驱动单元1434从行为计划保存单元1431读取已经在实际机器100的一边出现问题的行为计划的程序和数据,指代有关从状态存储单元1432连续输入的内部状态和外部环境的信息作为识别结果流,并且选择根据内部状态或外部环境要显示的定义操作,以便再现在已经驱动相同的行为计划的实际机器100的一边出现故障时的环境。

行为验证方案保存单元1402为每个行为计划保存行为验证方案。行为验证方案是根据预期的外部环境中的变化定义要从行为计划选择的期望的(或理想的)定义操作的顺序的程序和数据。例如,行为验证方案是行为计划程序的开发者认为关于假设的外部环境中的变化是理想的定义操作的顺序。

方案评估单元1401从行为验证方案保存单元1402读取对应于在出现故障的实际机器100中已经驱动的行为计划的行为验证方案。然后,方案评估单元1401基于将根据实际机器周围的真实环境通过行为计划驱动单元1434连续选择的定义操作与在行为验证方案中定义的定义操作的顺序进行比较的结果评估或验证在已经再现的故障出现环境下的行为计划。

维修软件故障的第一步是再现故障。还假设了在用户环境中出现的问题在开发者环境中不能再现的情况。原因在于该情形特定仅存在于用户环境中并且不存在于开发者环境中。

在本实施方式中,只有存储在状态存储单元中的信息被当作驱动行为计划的状态(例如,参见图8至图10)。因此,在图14中所示的系统配置中,当软件故障出现在实际机器100中时存储在状态存储单元1432中的状态被提取为识别结果流,并且被传送至执行行为验证软件1400的开发装置200,使得已经出现在用户环境中的故障也可以在开发者环境中可靠地再现。因此,开发者可以容易地分析故障并维修软件。

本文中公开的技术的优势列于如下。

-易于验证和开发

提供了构建概括用于执行行为计划的验证项的行为验证方案的gui环境(参见图13),使得可以降低对于除了程序员之外常规困难的验证项开发的难度。

-改善评估和验证,且加快速度

输入提前定义的识别结果以驱动行为计划,使得可以在很短的时间内评估和验证行为计划。

-可再现性

在单操作模式中的行为验证软件中,在没有使用诸如识别实际机器的外部环境的真实环境识别单元的模块的情况下在完全理想的环境中评估和验证行为计划,使得可以获得具有可再现性的评估结果。

-易于同时开发

在单操作模式中的行为验证软件中,可以使用与行为验证方案一起定义的理想的伪识别结果流评估和验证该行为计划。换言之,在没有等待诸如在模拟器模式中使用的虚拟环境识别单元和在实际机器操作模式中使用的真实环境识别单元的其他模块的开发的情况下,可以开始行为计划的评估和验证。因此,可以完全独立于控制自主操作装置100的实际机器操作的操作控制程序执行根据诸如行为计划的识别结果控制行为的识别系统程序的开发。

-易于识别故障位置

根据在本说明书中公开的技术,仅可以使用行为验证软件的单操作模式评估和验证行为计划。因此,可以在已经通过单个评估的前提上开始行为计划的综合评估,使得变得易于使已经出现故障的位置变窄。

-转换行为验证方案

也可以在模拟模式和实际机器操作模式中不改变的情况下使用在行为验证软件的单操作模式中使用的行为验证方案。因此,即使当行为计划控制软件的执行环境改变时,写入新的评估项和验证码的工作也是不必要的。

工业实用性

参考具体实施方式详细描述了在本说明书中公开的技术。然而,显而易见的是,在不偏离在本说明书中公开的技术的大意的情况下,本领域中的技术人员可以对实施方式进行修改和替换。

在本说明书中公开的技术可以用于评估和验证实现诸如机器人、自主运载工具或无人驾驶飞机(无人机)等自主操作装置的自主或适应性行为的应用程序的操作。而不是为不同类型的运载工具和不同类型的模型开发不同的行为计划,模型在每种类型的运载工具和每种类型的模型上抽象的执行环境中仔细评估一个行为计划中更真实,并且人们认为如图8至图10所示的行为计划评估和验证方法是合适的。

此外,本文中公开的技术还可以应用于使用行为计划控制操作的视频游戏角色的ai开发。在游戏开发中,省去了评估和验证实际机器操作环境中的行为计划的过程,并且其他过程与开发诸如机器人等自主操作装置的行为计划的过程基本相似。

简言之,已经以举例的方式描述了本说明书中公开的技术,并且本说明书的描述内容不应被限制性地解释。为了确定本说明书中公开的技术的大意,应该考虑了权利要求的范围。

应注意,本说明书中公开的技术可具有如下配置。

(1)一种处理被描述为使得自适应控制装置根据环境执行操作的程序的信息处理设备,所述信息处理设备包括:

保存单元,保存定义要调用的操作的顺序的行为验证方案;以及

评估单元,所述评估单元将所述程序依次调用的操作与所述行为验证方案进行比较以执行所述程序的评估和验证。

(2)根据以上描述的(1)所述的信息处理设备,还包括

程序执行控制单元,根据从外部输入的环境信息控制程序的驱动,

其中,所述评估单元将通过由所述程序执行控制单元驱动的所述程序根据所述环境信息依次调用的操作与在所述行为验证方案中定义的操作的顺序进行比较以评估和验证所述程序。

(3)根据以上描述的(2)所述的信息处理设备,

其中,程序执行控制单元根据从外部输入的伪环境信息调用操作,并且

所述评估单元将通过由所述程序执行控制单元驱动的所述程序根据所述伪环境信息依次调用的操作与在所述行为验证方案中定义的操作的顺序进行比较以评估和验证所述程序。

(4)根据以上描述的(3)所述的信息处理设备,还包括

伪环境信息输出单元,所述伪环境信息输出单元将假设定义为根据所述行为验证方案的操作被依次调用的所述伪环境信息输出至所述程序执行控制单元。

(5)根据以上描述的(1)所述的信息处理设备,

其中,评估单元将通过由自适应控制装置的模拟器驱动的程序依次调用的操作与在行为验证方案中定义的操作的顺序进行比较以评估或验证程序。

(6)根据以上描述的(5)所述的信息处理设备,

其中,模拟器根据通过识别模拟器中的虚拟环境获得的虚拟环境信息驱动程序,并且

所述评估单元将通过由所述模拟器驱动的所述程序根据所述虚拟环境信息依次调用的操作与在所述行为验证方案中定义的操作的顺序进行比较以评估或验证所述程序。(7)根据以上描述的(1)的信息处理设备,其中,所述评估单元将通过由所述自适应控制装置上实际驱动的程序依次调用的操作与在所述行为验证方案中定义的操作的顺序进行比较来评估或验证所述程序。

(8)根据以上描述的(7)所述的信息处理设备,

其中,自适应控制装置还包括识别环境信息的识别单元,

在所述自适应控制装置上驱动的所述程序根据在所述识别单元中识别的真实环境信息来调用操作,并且

所述评估单元将通过由所述自适应控制装置驱动的所述程序根据在所述识别单元中识别到的真实环境信息依次调用的操作与在所述行为验证方案中定义的操作的顺序进行比较以评估或验证所述程序。

(9)根据(2)所述的信息处理设备,

其中,程序执行控制单元在外部输入在驱动程序的自适应控制装置中识别到的环境信息以控制程序的驱动,并且

评估单元将根据在驱动程序的自适应控制装置中识别到的环境信息通过由程序执行控制单元驱动的程序依次调用的操作与在行为验证方案中定义的操作的顺序进行比较以评估或验证程序。

(10)根据以上描述的(1)至(9)中任一项所述的信息处理设备,其中,评估单元将要由程序调用的操作的顺序与在行为验证方案中定义的顺序进行比较,并且在顺序不同的情况下检测程序的异常。

(11)一种用于处理描述为使得自适应控制装置根据环境执行操作的程序的信息处理方法,该信息处理方法包括:

读取定义要调用的操作的顺序的行为验证方案的步骤;以及

将该程序依次调用的操作与行为验证方案进行比较以执行该程序的评估或验证的评估步骤。

(12)一种以计算机可读格式描述的计算机程序,以便用作:

保存单元,所述保存单元保存定义待被调用的操作的顺序的行为验证方案;以及

评估单元,所述评估单元将被描述为使得自适应控制装置根据环境执行操作的所述程序依次进行调用的操作与所述行为验证方案进行比较以执行所述程序的评估或验证。

(13)一种用于制造自适应控制装置根据环境控制操作的控制程序的程序制造方法,该程序制造方法包括:

行为方案设定步骤,为所述控制程序设定定义要被调用的操作的顺序的行为验证方案;以及

验证条件设定步骤,为所述控制程序设定用于将由所述程序依次调用的操作与所述行为验证方案进行比较以执行所述程序的评估或验证的条件。

参考符号列表

100自主操作装置(实际机器)

110主体单元

111处理器

112存储器

113通信调制解调器

114电池

115usb端口

116gps

120模块单元

121致动器

122处理器

123存储器

124传感器

125通信调制解调器

200开发装置

210计算机主体单元

211处理器

212gpu

213存储器

214usb端口

215通信调制解调器

220显示器

230用户界面

800行为验证软件(单操作模式)

801方案评估单元

802行为验证方案保存单元

803伪识别结果流输出单元

810行为计划控制单元

811评估目标行为计划保存单元

812状态存储单元

813外部环境输入单元

814行为计划驱动单元

900行为验证软件(模拟模式)

901方案评估单元

902行为验证方案保存单元

903虚拟环境识别单元

910行为计划控制单元

911评估目标行为计划保存单元

912状态存储单元

913外部环境输入单元

914行为计划驱动单元

1000行为验证软件(实际机器操作模式)

1001方案评估单元

1002行为验证方案保存单元

1003真实环境识别单元

1010行为计划控制单元

1011评估目标行为计划保存单元

1012状态存储单元

1013外部环境输入单元

1014行为计划驱动单元。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1