一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多代理模拟系统以及多代理模拟方法与流程

2022-12-21 19:40:07 来源:中国专利 TAG:


1.本公开涉及使用相互作用的多个代理模拟对象世界的多代理模拟系统以及多代理模拟方法。


背景技术:

2.已知使用相互作用的多个代理模拟对象世界的多代理模拟。例如,在专利文献1中,公开了在多代理模拟中,变更将代理状况通知给其他代理的时间间隔的发明。在该发明中,例如,在信息几乎没有变化的情况下,进行降低通知频度快速推进模拟。
3.此外,作为表示本公开的技术领域中的申请时的技术水平的文献,除了上述专利文献1以外,还可以例示下述的专利文献2以及专利文献3。
4.现有技术文献
5.专利文献
6.专利文献1:日本特开2015-022378号公报
7.专利文献2:国际公开第2011/018854公报
8.专利文献3:日本特开2004-272693号公报


技术实现要素:

9.希望模拟的对象世界中的时间的推进情形未必与现实的时间的推进情形相同。通过使模拟内的时间的推进情形比现实的时间的推进情形快,能够高速推进模拟。但是,能够实现的模拟的速度依赖于计算/网络环境。
10.在多代理模拟中,代理之间的相互作用通过消息的交换进行。如果各代理中的计算时间和消息的交换所需的时间的合计收敛于在各代理中设定的时间粒度,则能够维持各代理的模拟的精度。
11.但是,在计算/网络环境差的情况下,有时在必要的处理定时以前来自其他代理的消息未到达、有时相反地在向其他代理发送消息之前未来的消息从其他代理到达。即,在计算/网络环境差的情况下,由于模拟的速度过快,有时会形成模拟的对象世界中的处理时间赶不上时间粒度的代理。在这样的情况下,对象世界的模拟的精度当然会降低。
12.另一方面,在相比于计算/网络环境模拟的速度慢的情况下,各代理能够有富余地进行计算以及消息交换。即,在计算/网络环境过于充分的情况下,模拟的对象世界中的处理时间相对时间粒度极端短,从而发生在各代理中什么也不做而等待的等待时间。等待时间变得越大,则资源的浪费也变得越大。
13.本公开是鉴于如上述的课题而完成的。本公开的目的在于提供能够维持模拟的精度,并且高速地执行模拟的多代理模拟系统以及方法。
14.本公开提供使用相互作用的多个代理模拟对象世界的多代理模拟系统。本公开的系统具备:多个代理模拟器,针对多个代理的每个代理设置;以及中心控制器,控制对象世界的时间的流动相对实际世界的时间的流动的速度比。上述多个代理模拟器以通过消息的
交换一边使代理彼此相互作用一边模拟各代理的状态的方式编程。另外,上述多个代理模拟器的各个代理模拟器以计算与剩余时间率相关的指标值的方式编程,该剩余时间率为更新作为模拟的对象的对象代理的状态的更新时间间隔、和更新时间间隔与用于更新处理的处理时间之间的剩余时间的比率。中心控制器以根据由多个代理模拟器的各个代理模拟器计算出的指标值控制速度比的方式编程。
15.在本公开的系统中,中心控制器也可以根据由多个代理模拟器的各个代理模拟器计算出的指标值中的、相应的剩余时间率最低的指标值,控制速度比。由此,能够在剩余时间率有富余的状况下使模拟速度加速,高速地推进模拟。
16.另外,在本公开的系统中,中心控制器也可以在指标值相应于第1阈值以上的剩余时间率的情况下,使速度比上升。由此,能够在剩余时间率有富余的状况下使模拟速度加速,高速地推进模拟。进而,中心控制器也可以在指标值相应于第1阈值以上的剩余时间率的情况下,指标值相应于越高的剩余时间率,则使速度比越大幅上升。由此,能够剩余时间率越有富余,则使模拟速度越加速。
17.另外,在本公开的系统中,中心控制器也可以在指标值相应于低于第1阈值且大于零的第2阈值以下的剩余时间率的情况下,使速度比降低。由此,能够在剩余时间率无富余的状况下使模拟速度减速,抑制模拟精度的降低。此外,第2阈值是大于零的值。进而,中心控制器也可以在指标值相应于第2阈值以下的剩余时间率的情况下,指标值相应于越接近零的剩余时间率,则使速度比越大幅降低。由此,能够剩余时间率越无富余,则使模拟速度越大幅减速。
18.另外,在本公开的系统中,多个代理模拟器的各个代理模拟器也可以将剩余时间相对更新时间间隔的比率计算为指标值,该剩余时间为从对象代理的状态的下次的更新所需的来自其他代理模拟器的消息中的最后接收到的消息的取得时刻至对象代理的状态的下次的更新时刻为止的时间。由此,每次的状态的更新时刻已知,所以只要有来自其他代理模拟器的消息中的最后接收到的消息的取得时刻,就能够计算指标值。
19.本公开提供使用相互作用的多个代理模拟对象世界的多代理模拟方法。本公开的方法包括在针对多个代理的每个代理设置的多个代理模拟器之间进行消息的交换,通过消息的交换一边使代理彼此相互作用一边模拟各代理的状态。另外,本公开的方法包括通过中心控制器控制对象世界的时间的流动相对实际世界的时间的流动的速度比。进而,本公开的方法包括:使多个代理模拟器的各个代理模拟器计算与剩余时间率相关的指标值,该剩余时间率为更新作为模拟的对象的对象代理的状态的更新时间间隔、和更新时间间隔与用于更新处理的处理时间之间的剩余时间的比率;以及使中心控制器根据由多个代理模拟器的各个代理模拟器计算出的指标值控制速度比。
20.在本公开的方法中,也可以使中心控制器根据由多个代理模拟器的各个代理模拟器计算出的指标值中的、相应的剩余时间率最低的指标值控制速度比。
21.另外,在本公开的方法中,也可以在指标值相应于第1阈值以上的剩余时间率的情况下,通过中心控制器使速度比上升。进而,也可以在指标值相应于第1阈值以上的剩余时间率的情况下,指标值相应于越高的剩余时间率,则使速度比越大幅上升。
22.另外,在本公开的方法中,也可以在指标值相应于低于第1阈值且大于零的第2阈值以下的剩余时间率的情况下,通过中心控制器使速度比降低。进而,也可以在指标值相应
于第2阈值以下的剩余时间率的情况下,指标值相应于越接近零的剩余时间率,则使速度比越大幅降低。
23.另外,在本公开的方法中,也可以使多个代理模拟器的各个代理模拟器将剩余时间相对更新时间间隔的比率计算为指标值,该剩余时间为从对象代理的状态的下次的更新所需的来自其他代理模拟器的消息中的最后接收到的消息的取得时刻至对象代理的状态的下次的更新时刻为止的时间。
24.在本公开的多代理模拟系统以及方法中,在相对进行模拟的计算/网络环境对象世界的时间的流动快的情况下,作为更新时间间隔和剩余时间的比率的剩余时间率降低。相反地,在相对计算/网络环境对象世界的时间的流动慢的情况下,剩余时间率变大。根据本公开的多代理模拟系统以及方法,根据与由各个代理模拟器计算出的剩余时间率相关的指标值,控制对象世界的时间的流动相对实际世界的时间的流动的速度比。由此,速度比被自动地适当化,能够维持模拟的精度,并且尽可能高速地执行模拟。
附图说明
25.图1是示出本公开的实施方式所涉及的多代理模拟系统的概要的图。
26.图2是示出本公开的实施方式所涉及的多代理模拟系统的概要的图。
27.图3是示出本公开的实施方式所涉及的多代理模拟系统的概要的图。
28.图4是示出在本公开的实施方式所涉及的代理模拟器中设想的模拟状况中的理想的状况的定时图。
29.图5是示出在本公开的实施方式所涉及的代理模拟器中设想的模拟状况中的其他一部分的代理模拟器延迟的状况的定时图。
30.图6是示出在本公开的实施方式所涉及的代理模拟器中设想的模拟状况中的比其他代理模拟器稍稍延迟的状况的定时图。
31.图7是示出在本公开的实施方式所涉及的代理模拟器中设想的模拟状况中的比其他代理模拟器显著延迟的状况的定时图。
32.图8是示出本公开的实施方式所涉及的通过代理模拟器的模拟速度的调整和从模拟脱离的各判断的流程的流程图。
33.图9是示出本公开的实施方式所涉及的通过模拟指挥器调整代理模拟器的模拟速度的流程的流程图。
34.图10是示出本公开的实施方式所涉及的通过模拟指挥器判断向代理模拟器指示从模拟脱离的流程的流程图。
35.图11是示出本公开的实施方式所涉及的通过模拟指挥器判断使模拟返回并再启动的流程的时序图。
36.图12是示出本公开的实施方式所涉及的多代理模拟系统的结构的框图。
37.图13是示出本公开的实施方式所涉及的行人代理用的代理模拟器的结构和信息的流动的框图。
38.图14是示出本公开的实施方式所涉及的自主移动体代理用的代理模拟器的结构和信息的流动的框图。
39.图15是示出本公开的实施方式所涉及的vr行人代理用的代理模拟器的结构和信
息的流动的框图。
40.图16是示出本公开的实施方式所涉及的路侧传感器代理用的代理模拟器的结构和信息的流动的框图。
41.图17是示出本公开的实施方式所涉及的用于通过多代理模拟系统汇集和评价模拟结果的结构的框图。
42.图18是示出本公开的实施方式所涉及的多代理模拟系统的物理结构的例子的图。
43.(符号说明)
44.2:虚拟世界(模拟对象世界);4a、4b、4c:代理;10:计算机;30、32:子网;40:网关;100:多代理模拟系统;200:代理模拟器;201:行人代理用代理模拟器;202:自主机器人/车辆代理用代理模拟器;203:vr行人代理用代理模拟器;204:路侧传感器代理用代理模拟器;210:发送接收控制器;220:3d物理引擎;230:服务系统客户端模拟器;240:模拟器核;300:中心控制器;310:移动消息调度器;320:模拟指挥器;400:服务系统用后端服务器。
具体实施方式
45.以下,参照附图,说明本公开的实施方式。但是,在以下所示的实施方式中言及各要素的个数、数量、量、范围等的数的情况下,除了特别明示的情况、原理上明确地确定为该数的情况以外,本公开所涉及的思想不限定于该言及的数。另外,在以下所示的实施方式中说明的构造等除了特别明示的情况、明确地原理上确定于此的情况以外,在本公开所涉及的思想中未必必须。
46.1.多代理模拟系统的概要
47.使用图1至图3,说明本公开的实施方式所涉及的多代理模拟系统的概要。以下,将多代理模拟系统省略记载为mas系统。
48.1-1.mas系统的结构以及功能的概略
49.图1示出本实施方式的mas系统100的概略结构。mas系统100通过使多个代理4a、4b、4c相互作用,模拟作为模拟的对象的世界(模拟对象世界)2。利用本公开的mas系统的模拟对象世界没有限定。但是,本实施方式的mas系统100将人与自主移动的移动体、例如机器人或车辆共存且能够接受使用自主移动的移动体的各种服务的提供的世界作为模拟对象世界2。作为在模拟对象世界2中提供的服务,例如,可以举出使用自主驾驶车辆的按需巴士、定期运行型大巴等移动服务、使用自主移动型的机器人配送货物的物流服务。
50.模拟对象世界2由多个并且多种代理构成。在构成模拟对象世界2的代理中,包括表示移动物体的代理、和表示定置物体的代理。作为表示为代理的移动物体,例示行人、机器人、低速移动设备、车辆、实际存在的人使用vr系统参加的行人、电梯等。作为表示为代理的定置物体,例示包括照相机的传感器、自动门等。
51.但是,在图1中,为了易于说明,在模拟对象世界2中仅表示3个代理4a、4b、4c。其中代理4a、4b表示机器人,代理4c表示行人。即,在图1所示的模拟对象世界2中,表示机器人和行人这2种代理。此外,代理4a和代理4b属于机器人这样的相同的范畴,但在大小或形状、行驶速度或动作等中有差异。因此,代理4a和代理4b在作为行人的代理4c能够从它们取得的视觉信息中有差异。以下,在本说明书内,将代理4a简单地记载为代理a。同样地,将代理4b简单地记载为代理b,将代理4c简单地记载为代理c。另外,以下,将作为虚拟的世界的模拟
对象世界2与实际世界区分而称为虚拟世界2。
52.mas系统100具备多个代理模拟器200。代理模拟器200针对代理a、b、c的每一个设置。以下,在区分各代理模拟器200的情况下,将模拟代理a的状态的代理模拟器200记载为代理模拟器a。同样地,将模拟代理b、c的状态的代理模拟器200记载为代理模拟器b、c。各代理模拟器200具有与作为对象的代理的种类对应的结构的差异。例如,机器人代理b、c的代理模拟器b、c具有相互类似的结构,但行人代理a的代理模拟器a具有与代理模拟器b、c不同的结构。关于按代理的种类的代理模拟器200的结构,随后详述。
53.代理模拟器200通过消息的交换一边使代理a、b、c彼此相互作用,一边模拟各代理a、b、c的状态。在代理模拟器200之间交换的消息包括与代理的虚拟世界2内的位置/移动有关的信息(移动信息)。移动信息包括与和代理的位置/移动有关的现状以及将来计划有关的信息。与现状有关的信息是指,例如当前时刻下的位置、方向、速度、加速度。与将来计划有关的信息是指,例如将来时刻下的位置、方向、速度、以及加速度的列表。以下,将在代理模拟器200之间交换的与代理的位置/移动有关的消息称为移动消息。
54.代理模拟器200根据周围代理的状态,运算作为模拟的对象的对象代理(本代理)的状态。周围代理是存在于本代理的周围,与本代理相互作用的相互作用代理。而且,表示周围代理的状态的信息是移动消息。各代理模拟器200通过与其他代理模拟器200相互交换移动消息,能够掌握周围代理的状态。
55.在图1所示的例子中,代理模拟器a根据从代理模拟器b、c接受的移动消息,掌握代理b、c的状态,根据代理b、c的状态,更新代理a的状态。然后,代理模拟器a将表示更新后的代理a的状态的移动消息发送给代理模拟器b、c。同样的处理在代理模拟器b、c中也进行。由此,一边使代理a、b、c彼此相互作用,一边模拟各代理a、b、c的状态。
56.在利用代理模拟器200的代理状态的更新中,有以一定的时间间隔更新的方法、和在探测到某些事件的情况下更新的方法。但是,即便是后者的方法,在过于长时间未更新状态时,向周围代理的影响大,所以进行以针对每一定时间间隔更新状态的方式强制地发生事件。将利用代理模拟器200的代理状态的更新的时间间隔称为时间粒度。
57.在图1所示的例子中,虚拟世界2中的各代理a、b、c的时间粒度成为20msec。但是,能够根据代理的种类,变更时间粒度。例如,行人代理c相比于机器人代理a、b活动更慢,所以也可以使行人代理c的时间粒度大于机器人代理a、b的时间粒度。各代理模拟器a、b、c以与负责的代理a、b、c的时间粒度对应的控制周期,执行模拟。
58.在mas系统100中,通过代理模拟器200之间的移动消息交换,执行模拟。但是,用于模拟的移动消息的交换在代理模拟器200之间不直接进行。mas系统100具备与代理模拟器200通信的中心控制器300。中心控制器300具备分发接受的移动消息的移动消息调度器310。移动消息通过移动消息调度器310中继而在代理模拟器200之间交换。
59.在图1所示的例子中,移动消息调度器310接收从代理模拟器a输出的移动消息。然后,移动消息调度器310针对代理模拟器b、c,发送代理模拟器a的移动消息。同样地,将代理模拟器b的移动消息通过移动消息调度器310发送给代理模拟器a、c,将代理模拟器c的移动消息通过移动消息调度器310发送给代理模拟器a、b。
60.以使针对每个代理设定的时间粒度与现实世界的时间间隔一致的方式,对代理模拟器200之间的移动消息的交换速度进行初始设定。即,在移动消息的交换速度的初始设定
中,现实世界的时间的流动和虚拟世界2的时间的流动一致。在从这样的初始状态使移动消息的交换速度增大的情况下,虚拟世界2的时间的流动相对现实世界的时间的流动的速度比上升。移动消息的交换速度由从各代理模拟器200发送的移动消息的发送间隔决定。例如,如果使移动消息的发送间隔成为一半,则移动消息的交换速度成为2倍。如果移动消息的交换速度成为2倍,则代理的动作速度也成为2倍,模拟以2倍的速度行进。即,移动消息的交换速度意味着模拟速度。
61.在此,在假设使各个代理模拟器200发送移动消息的发送间隔独立地变化的情况下,存在在本代理与周围代理之间在动作速度中产生偏移的可能。另外,还有引起在本代理的状态的更新时得不到与周围代理的状态有关的信息、在周围代理的状态的更新时无法发送与本代理的状态有关的信息,而模拟失败的可能。因此,需要针对全代理模拟器200一并地控制代理模拟器200发送移动消息的发送间隔。
62.代理模拟器200发送移动消息的发送间隔由中心控制器300控制。详细而言,中心控制器300具备控制利用各代理模拟器200的模拟的模拟指挥器320。
63.模拟指挥器320通过与代理模拟器200之间的模拟控制消息的交换,控制利用代理模拟器200的模拟。模拟指挥器320在与构成mas系统100的所有代理模拟器200之间进行通信,交换模拟控制消息。通过模拟控制消息的交换,例如,控制模拟速度、模拟的停止、模拟的休止、模拟的再次开始、以及模拟的时间粒度。针对全代理模拟器200一并地控制模拟速度。相对于此,针对每个代理模拟器200,控制模拟的停止、模拟的休止、模拟的再次开始、以及模拟的时间粒度。
64.1-2.mas系统中的模拟速度的控制的概要
65.图2以及图3示出在mas系统100中进行的模拟速度的控制的概要。在mas系统100中,各代理模拟器200以与模拟的代理的时间粒度对应的时间间隔,发送移动消息。在各代理a、b、c的时间粒度如图1所示时,各代理模拟器200以20msec的时间间隔发送移动消息。
66.在使模拟速度上升的情况下,中心控制器300(详细而言模拟指挥器320)通过使各代理模拟器200缩短移动消息的发送间隔,使虚拟世界2的时间的流动相对现实世界的时间的流动的速度比上升。使该速度比越上升,模拟速度越上升,能够以更短的时间结束模拟。
67.但是,根据代理模拟器200动作的计算/网络环境,有出现无法追上虚拟世界2的时间的流动的代理模拟器200的可能性。在图3所示的例子中,从代理模拟器a、c发送的移动消息的发送间隔变短,但从代理模拟器b发送的移动消息的发送间隔未变短。即,在代理模拟器b中发生了延迟。
68.代理模拟器200在本代理的状态的更新中,使用与周围代理的状态有关的信息。在图3所示的例子中,代理模拟器a使用从模拟器b、c的各个模拟器发送的移动消息,更新本代理的状态。另外,代理模拟器c使用从模拟器a、b的各个模拟器发送的移动消息,更新本代理的状态。因此,代理模拟器b的延迟并非仅代理模拟器b的问题,对与代理模拟器b交换移动消息的代理模拟器a、c也造成恶劣影响。即,处理追不上虚拟世界2的时间的流动的代理模拟器b的存在使利用mas系统100的模拟精度降低。
69.因此,中心控制器300(详细而言模拟指挥器320)使产生了延迟的代理模拟器b从模拟脱离。通过使代理模拟器b从模拟脱离,代理b从虚拟世界2消失。其结果,例如,代理a相互作用的代理仅成为代理c,所以不会受到代理模拟器b的影响,而代理模拟器a能够继续执
行模拟。由此,防止代理模拟器b成为限速,能够形成进一步提高代理模拟器a、c的模拟速度的余地。
70.如上所述,在mas系统100中,进行通过缩短代理模拟器200之间的移动消息的发送间隔使模拟速度上升,使产生了延迟的代理模拟器200从模拟脱离。但是,可否从模拟脱离依赖于代理的种类。例如,即使由于代理模拟器200的脱离而人群中的一人的行人代理突然从虚拟世界2消失,对模拟带来的影响也小到可忽略的程度。另一方面,在搭乘乘客的车辆代理原样地留下乘客而突然从虚拟世界2消失的情况下,在该时间点作为模拟会不成立。即,有无其存在对其他带来大的影响的代理无法从模拟脱离。因此,在mas系统100中,要求通过使模拟速度加速而缩短模拟时间,并且将模拟速度维持于适当的速度范围。
71.在mas系统100中,作为用于判定模拟速度适当与否的指标,使用“剩余时间率”。剩余时间率被定义为剩余时间相对更新代理的状态的更新时间间隔的比率。剩余时间是从更新时间间隔减去用于更新处理的处理时间的时间。在mas系统100中,针对每个代理模拟器200,进行剩余时间率的计算。模拟指挥器320针对每个代理模拟器200,根据剩余时间率,综合性地控制虚拟世界2的时间的流动相对现实世界的时间的流动的速度比。
72.1-3.mas系统中的模拟速度的控制的详细情况
73.接下来,使用图4至图10,说明在mas系统100中进行的模拟速度的控制的详细情况。首先,从设想为代理模拟器200的模拟状况的4个例子起说明。
74.1-3-1.代理模拟器的模拟状况的例子
75.情形1.理想的状况
76.情形1是对于代理模拟器200而言的理想的模拟状况。以下,着眼于多个代理模拟器200中的1个代理模拟器,将其称为着眼代理模拟器。图4是示出与对于着眼代理模拟器而言的理想的状况下的本代理的状态的更新相关的各种定时的定时图。在时间轴上符号所示的各定时如以下所述定义。
77.ta(n):用于在本次时间步长的本代理的状态更新的计算的开始时刻
78.ta(n 1):用于在下次时间步长的本代理的状态更新的计算的开始时刻
79.tc(n):本次时间步长中的移动消息的制作完成
80.td(n):本次时间步长中的移动消息的发送完成时刻
81.te_first(n):在下次时间步长的本代理的状态更新的计算所需的周围代理的移动消息中的最初接收到的移动消息的接收时刻
82.te_last(n):在下次时间步长的本代理的状态更新的计算所需的周围代理的移动消息中的最后接收到的移动消息的接收时刻
83.在情形1中,定时te_last(n)位于定时ta(n 1)之前。即,在开始用于在下次时间步长的本代理的状态更新的计算之前,接收到该计算所需的所有周围代理的移动消息。其意味着,在与着眼代理模拟器有关的其他代理模拟器中未发生延迟。
84.另外,在情形1中,定时te_first(n 1)未位于定时ta(n 1)之前。即,在开始用于在下次时间步长的本代理的状态更新的计算之前,未开始接收该计算所需的周围代理的移动消息。其意味着,着眼代理模拟器相对其他代理模拟器的延迟也未发生。
85.在此,说明上述剩余时间率。剩余时间率是使用剩余时间和更新时间间隔通过以下的式计算的。
86.剩余时间率=剩余时间/更新时间间隔
87.剩余时间=ta(n 1)-te_last(n)
88.更新时间间隔=ta(n 1)-ta(n)
89.针对每个代理模拟器200,计算剩余时间率。剩余时间率是表示与着眼代理模拟器有关的其他代理模拟器中的最晚的代理模拟器相对本代理模拟器的更新速度的富余度的指标值。在剩余时间率为正的值的情况下,剩余时间率越大,其他代理模拟器相对着眼代理模拟器的更新速度的富余度大。在剩余时间率为负的值的情况下,至少1个其他代理模拟器相对着眼代理模拟器延迟。
90.在所有代理模拟器200中剩余时间率为正的值的情况下,在哪个代理模拟器200中都未发生延迟。如果剩余时间率是充分的大小,则有能够进一步提高模拟速度的余地。但是,在剩余时间率小的情况下,通过进一步提高模拟速度,从而存在在任意代理模拟器200中会发生延迟的可能。另外,在剩余时间率过于接近零的情况下,由于计算/网络环境的恶化,还可能有剩余时间率成为负的值的情况。因此,为了维持模拟的精度,并且尽可能高速地执行模拟,由各代理模拟器200计算的剩余时间率都维持于一定的范围是理想的。
91.情形2.其他一部分的代理模拟器延迟的状况
92.情形2是与着眼代理模拟器有关的其他代理模拟器中的一部分的代理模拟器延迟的状况。图5是示出与该状况下的本代理的状态的更新相关的各种定时的定时图。
93.在情形2中,定时te_first(n)位于定时ta(n 1)之前。即,在开始用于在下次时间步长的本代理的状态更新的计算之前,接收该计算所需的周围代理的移动消息中的至少1个。
94.但是,在情形2中,定时te_last(n)未位于定时ta(n 1)之前。即,并不是在开始用于在下次时间步长的本代理的状态更新的计算之前,接收到该计算所需的所有周围代理的移动消息。在开始用于在下次时间步长的本代理的状态更新的计算之后,接收到至少1个移动消息。其意味着,在与着眼代理模拟器有关的其他代理模拟器的一部分中发生了延迟。
95.在情形2的情况下,相比于定时ta(n 1),定时te_last(n)的一方更慢,所以剩余时间率的值成为负的值。通过在包括着眼代理模拟器的任意代理模拟器中剩余时间率的值成为负,从而能够确认到相对整体延迟的代理模拟器的存在。
96.情形3.比其他代理模拟器稍稍延迟的状况
97.情形3是着眼代理模拟器比与自身相关的其他代理模拟器稍稍延迟的状况。图6是示出与该状况下的本代理的状态的更新相关的各种定时的定时图。
98.在情形3中,定时te_first(n 1)位于定时ta(n 1)之前。即,在开始用于在下次时间步长的本代理的状态更新的计算之前,接收到在下下次时间步长的本代理的状态更新的计算所需的周围代理的移动消息。由此,观测到其他代理模拟器比着眼代理模拟器更早地动作。
99.但是,在情形3中,定时td(n)位于定时te_first(n 1)之前。即,在接收在下下次时间步长的本代理的状态更新的计算所需的周围代理的移动消息之前,完成与在本次时间步长中更新后的本代理的状态有关的移动消息的发送。其意味着,虽然着眼代理模拟器比其他代理模拟器延迟,但并非大幅延迟。如果是该程度的延迟,则也可以视为容许范围。
100.情形4.比其他代理模拟器显著延迟的状况
101.情形4是着眼代理模拟器比与自身相关的其他代理模拟器显著延迟的状况。图7是示出与该状况下的本代理的状态的更新相关的各种定时的定时图。
102.在情形4中,定时te_first(n 1)位于定时td(n)之前。即,在与本次时间步长中更新后的本代理的状态有关的移动消息的发送完成之前,接收到在下下次时间步长的本代理的状态更新的计算所需的周围代理的移动消息。其他代理模拟器本来使用着眼代理模拟器在定时td(n)发送的本代理的状态,进行在下次时间步长的周围代理的状态更新。因此,在情形4中,着眼代理模拟器相对其他代理模拟器确实会延迟一个周期。
103.在此,通过以下的式,定义延迟时间。延迟时间能够用作表示着眼代理模拟器相对其他代理模拟器的延迟的程度的指标值。
104.延迟时间=td(n)-te_first(n 1)
105.在情形3中,相比于定时te_first(n 1),定时td(n)更早,所以延迟时间成为负的值。另一方面,在情形4中,相比于定时te_first(n 1),定时td(n)更慢,所以延迟时间成为正的值。在延迟时间为正的值、并且超过预定的阈值的情况下,能够判断为着眼代理模拟器相对其他代理模拟器延迟无法容许的程度。
106.1-3-2.用于模拟速度控制的代理模拟器中的处理
107.mas系统100以上述4个情形中的情形1所示的理想的状况为目标,控制模拟速度。利用mas系统100的模拟速度的控制通过代理模拟器200和模拟指挥器320的协调进行。
108.首先,从用于模拟速度控制的代理模拟器200中的处理进行说明。图8是示出为了模拟速度控制由代理模拟器200执行的例程的流程图。详细而言,通过流程图,表示利用代理模拟器200的模拟速度的调整和从模拟脱离的各判断的流程。代理模拟器200以一定的周期,反复执行流程图所示的例程。
109.在步骤s100中,判定在本次时间步长以后是否检测到定时te_last(n)。如从图4至图6和图7的比较可知,在本次时间步长以后是否检测到定时te_last(n)成为该代理模拟器200是否相对其他代理模拟器延迟无法容许的程度的判断基准。
110.在本次时间步长以后检测到定时te_last(n)的情况、即该代理模拟器200未相对其他代理模拟器延迟无法容许的程度的情况下,流程进入到步骤s102。在步骤s102中,判定上述剩余时间是否为正的值。剩余时间为正意味着,该代理模拟器200未延迟且其他代理模拟器也未延迟。
111.在剩余时间为正的值的情况下,进行步骤s104的处理。在步骤s104中,计算上述剩余时间率。此外,在流程图内,剩余时间率有时被记载为rtr。接着在步骤s106中,将在步骤s104中计算的剩余时间率与模拟控制消息“状态正常”一起发送给模拟指挥器320。流程图中的消息是指模拟控制消息。模拟控制消息“状态正常”是用于对模拟指挥器320报告该代理模拟器200和其他代理模拟器都并非延迟状态的模拟控制消息。此外,在流程图中,模拟指挥器被记载为sc。
112.在步骤s100的判定结果为否定的情况、即在本次时间步长以后未检测到定时te_last(n)的情况下,流程进入到步骤s108。另外,在步骤s102的判定结果为否定的情况、即剩余时间并非正的值的情况下,流程也进入到步骤s108。在步骤s108中,判定上述延迟时间是否为延迟时间阈值thd以上。延迟时间阈值thd是该代理模拟器200的延迟是否致命的判断基准。例如,也可以将该代理模拟器200的时间步长、即时间粒度的2分之1设为延迟时间阈
值thd。
113.在延迟时间是延迟时间阈值thd以上的情况下,在步骤s110中,致命的延迟状态计数器countfd的值增加1。致命的延迟状态计数器是用于计算该代理模拟器200的致命的延迟状态的继续时间的计数器。致命的延迟状态计数器的初始值是零,在执行后述步骤s120的处理时被复位。如果延迟时间小于延迟时间阈值thd,则步骤s110被跳过。
114.接下来,在步骤s112中,判定该代理模拟器200是否为能够调整模拟的时间间隔、即时间粒度的代理模拟器。基本上,代理模拟器200能够调整时间粒度。但是,根据代理的种类,时间粒度的调整幅度受限。例如,在代理是机器人的情况下,对机器人要求精密的动作,所以在时间粒度超过100msec等级时,难以使模拟成立。如果代理是行人,则即便是1sec等级的时间粒度也充分,但即便如此,也无法过度增大时间粒度。因此,在步骤s112中,根据代理的种类和当前的时间粒度,判定能否调整时间粒度。
115.在该代理模拟器200是能够调整时间粒度的代理模拟器的情况下,在步骤s114中,时间粒度被扩大。例如,对当前的时间粒度乘以预定的扩大系数而得到的值被设定为新的时间粒度。扩大系数也可以是固定值(例如2),还可以是针对每个扩大次数变小的变量。另外,扩大系数也可以针对代理的每个种类是不同的值。接着在步骤s116中,将在步骤s114中扩大的时间粒度与模拟控制消息“时间粒度扩大”一起发送给模拟指挥器320。模拟控制消息“时间粒度扩大”是用于对模拟指挥器320报告已扩大时间粒度的模拟控制消息。如果该代理模拟器200无法调整时间粒度,则步骤s114以及步骤s116被跳过。
116.接下来,在步骤s118中,判定致命的延迟状态计数器countfd的值是否为次数阈值thnfd以上。次数阈值thnfd是用于判定该代理模拟器200的致命的延迟状态稳定的阈值。次数阈值thnfd也可以根据该代理模拟器200能否调整时间粒度而设定为不同的值。例如,针对能够调整时间粒度的代理模拟器设定的次数阈值thnfd也可以为大于针对无法调整时间粒度的代理模拟器设定的次数阈值thnfd的值。作为具体例,也可以将前者设定为5次,将后者设定为3次。
117.在致命的延迟状态计数器是次数阈值thnfd以上的情况下,在步骤s120中,将模拟控制消息“脱离”发送给模拟指挥器320。模拟控制消息“脱离”是用于对模拟指挥器320报告该代理模拟器200从模拟脱离的模拟控制消息。已发送模拟控制消息“脱离”的代理模拟器自身从模拟脱离。如果致命的延迟状态计数器小于次数阈值thnfd,则步骤s120被跳过。
118.在步骤s122中,将模拟控制消息“延迟探测”发送给模拟指挥器320。模拟控制消息“延迟探测”是用于对模拟指挥器320报告该代理模拟器200和其他代理模拟器中的哪一方是延迟状态的模拟控制消息。即使在步骤s114中已进行时间粒度的调整的情况下,模拟控制消息“延迟探测”的发送也一定进行一次。即,在该代理模拟器200从模拟脱离之前,将模拟控制消息“状态正常”和模拟控制消息“延迟探测”中的某一方一定发送给模拟指挥器320。
119.1-3-3.用于模拟速度控制的模拟指挥器中的处理
120.接下来,说明用于模拟速度控制的模拟指挥器320中的处理。图9是示出为了模拟速度控制由模拟指挥器320执行的例程的流程图。详细而言,通过流程图,表示利用模拟指挥器320的代理模拟器200的模拟速度的调整的流程。模拟指挥器320以一定的周期,反复执行流程图所示的例程。
121.首先,在步骤s202中,模拟指挥器320从所有代理模拟器200接收模拟控制消息。此外,在流程图中,代理模拟器被记载为as。另外,流程图中的消息意味着模拟控制消息。
122.在步骤s204中,判定在步骤s202中取得的所有模拟控制消息的内容是否为“状态正常”。如果从所有代理模拟器200取得的所有模拟控制消息是“状态正常”,则不存在产生了延迟的代理模拟器200。另外,在该情况下,从所有代理模拟器200与模拟控制消息一起取得剩余时间率。
123.在步骤s204的判定结果为肯定的情况下,在步骤s206中,计算剩余时间率的最小值rtr_min。剩余时间率的最小值是在从所有代理模拟器200取得的所有剩余时间率中最小的值。
124.接下来,在步骤s208中,判定剩余时间率的最小值rtr_min是否大于剩余时间率的容许最大值rtra_max(第1阈值)。对剩余时间率设定与理想的模拟速度对应的容许范围。如果剩余时间率大于容许范围的最大值,则意味着在代理模拟器200的计算中发生了多余的时间。即,意味着有使模拟速度加速的余地。
125.在剩余时间率的最小值rtr_min大于容许最大值rtra_max的情况下,在步骤s210中,能够加速状态计数器countap的值增加1。能够加速状态计数器的初始值是零,在已执行后述步骤s214的处理时、以及步骤s208的判定结果为否定时被复位。
126.接下来,在步骤s212中,判定能够加速状态计数器countap的值是否大于加速判定阈值thnap。加速判定阈值thnap是用于判定能够加速的状态持续了一定期间的阈值。加速判定阈值thnap也可以设定为固定值(例如3)。
127.在能够加速状态计数器大于加速判定阈值thnap的情况下,在步骤s214中,将模拟控制消息“加速”和新速度比发送给全代理模拟器200。在此发送的新速度比是指,虚拟世界2的时间的流动相对现实世界的时间的流动的加速后的速度比。模拟控制消息“加速”是针对各代理模拟器200的加速的指示,同时发送的新速度比是其指示值。此外,也可以在步骤s206中计算的剩余时间率的最小值越大,使新速度比越大幅上升。由此,在剩余时间率中越有富余,能够使模拟速度越大幅加速。
128.另一方面,在可加速状态计数器是加速判定阈值thnap以下的情况下,在步骤s218中,将模拟控制消息“无加减速”发送给全代理模拟器200。模拟控制消息“无加减速”是维持针对各代理模拟器200的现状速度比的指示。
129.步骤s208的判定的结果,在剩余时间率的最小值rtr_min为容许最大值rtra_max以下的情况下,在步骤s216中,判定剩余时间率的最小值rtr_min是否小于剩余时间率的容许最小值rtra_min(第2阈值)。如果剩余时间率小于剩余时间率的容许范围的最小值,则意味着在代理模拟器200的计算时间中无富余。即,意味着应以不发生延迟的方式使模拟速度减速。
130.在剩余时间率的最小值rtr_min小于容许最大值rtra_max的情况下,在步骤s228中,将模拟控制消息“减速”和新速度比发送给全代理模拟器200。在此发送的新速度比是指,虚拟世界2的时间的流动相对现实世界的时间的流动的减速后的速度比。模拟控制消息“减速”是针对各代理模拟器200的减速的指示,同时发送的新速度比是其指示值。此外,也可以在步骤s206中计算的剩余时间率的最小值越接近零,使新速度比越大幅降低。由此,在剩余时间率中越没有富余,能够使模拟速度越大幅减速。
131.另一方面,在剩余时间率的最小值rtr_min是容许最大值rtra_max以上的情况下,在步骤s218中,将模拟控制消息“无加减速”发送给各代理模拟器200。
132.另外,在步骤s204的判定结果为否定的情况、即至少1个模拟控制消息的内容并非“状态正常”的情况下,进行步骤s220的判定。在步骤s220中,判定是否从任意代理模拟器200接收到模拟控制消息“时间粒度扩大”。
133.在步骤s220的判定结果为肯定的情况下,在步骤s222中,将模拟控制消息“代理模拟器参数变更”和附随信息发送给全代理模拟器200。在在此发送的附随信息中,包括时间粒度已扩大的代理模拟器的个数、和时间粒度已扩大的各代理模拟器的id以及新的时间粒度。即,在步骤s222中,以针对各代理模拟器200通知与时间粒度的调整有关的信息的目的,发送模拟控制消息。在步骤s220的判定结果为否定的情况下,步骤s222被跳过。
134.接下来,在步骤s224中,判定是否从任意代理模拟器200接收到模拟控制消息“脱离”。即,通过模拟控制消息“脱离”,探测利用代理模拟器200自身的判断的脱离。
135.在步骤s224的判定结果为肯定的情况下,在步骤s226中,将模拟控制消息“代理模拟器脱离”和附随信息发送给各代理模拟器200。在此发送的附随信息中,包括从模拟已脱离的代理模拟器的个数、和已脱离的各代理模拟器的id。即,在步骤s226中,以通知与代理模拟器200的脱离有关的信息的目的,发送模拟控制消息。在步骤s224的判定结果为否定的情况下,步骤s226被跳过。然后,执行步骤s228的处理。
136.在上述例程中,进行利用代理模拟器200自身的从模拟的脱离的判断。与其并行地,通过模拟指挥器320,也进行使代理模拟器200从模拟脱离的判断。图10是示出为了针对代理模拟器200的脱离指示而由模拟指挥器320执行的例程的流程图。详细而言,通过流程图,表示通过模拟指挥器320判断向代理模拟器200指示从模拟脱离的流程。模拟指挥器320以一定的周期,反复执行流程图所示的例程。
137.首先,在步骤s302中,判定是否从移动消息调度器310接收到报警信息。此外,在流程图中,移动消息调度器被记载为mmd。从各代理模拟器200向移动消息调度器310,以与代理的时间粒度对应的时间间隔发送移动消息。在移动消息的接收中探测到一定以上的延迟的情况下,移动消息调度器310将与该代理模拟器200有关的报警信息发送给模拟指挥器320。
138.进而,在步骤s302中,关于全代理模拟器200,判定是否从代理模拟器200接收到模拟控制消息。流程图中的消息意味着模拟控制消息。如果未从移动消息调度器310接收到报警信息、并且从代理模拟器200接收到模拟控制消息,则以后的处理被跳过。
139.在从移动消息调度器310接收到报警信息的情况、或者从代理模拟器200未接收到模拟控制消息的情况下,流程进入到步骤s304。在步骤s304中,关于与步骤s302的肯定的判定相应的代理模拟器200,针对每个代理模拟器200设置的脱离判断计数器countdc的值减少1。脱离判断计数器的初始值被设定为容许最大次数(例如3)。
140.在步骤s306中,针对每个脱离判断计数器,判定其值是否成为零以下。在脱离判断计数器的值成为零以下之前,接下来的步骤s308的处理被跳过。在脱离判断计数器的值成为零以下的情况下,在步骤s308中,针对脱离判断计数器的值成为零以下的代理模拟器200,设置脱离指示等待状态。
141.接着在步骤s310中,制作关于成为脱离指示等待状态的代理200的列表。然后,在
步骤s312中,将模拟控制消息“代理模拟器脱离”和附随信息发送给全代理模拟器200。在此发送的附随信息中,包括从模拟脱离的代理模拟器的个数、和脱离的各代理模拟器的id。包含于列表的代理模拟器接受模拟控制消息“代理模拟器脱离”而从模拟脱离。
142.1-3-4.用于中断后的模拟的再次开始的处理
143.如上所述,在mas系统100中,通过代理模拟器200的自身的判断、或者通过模拟指挥器320的判断,成为延迟状态的代理模拟器200从模拟脱离。由此,防止在使模拟速度上升时,成为延迟状态的代理模拟器200成为限速。但是,在从模拟脱离的代理模拟器200变多时,模拟越来越难以成立。
144.因此,模拟指挥器320判定从模拟已脱离的代理模拟器200的个数是否超过预定的个数阈值。然后,在脱离个数超过了个数阈值的状态连续了预定的次数阈值以上的情况下,模拟指挥器320将模拟控制消息“中断”发送给全代理模拟器200。模拟控制消息“中断”是针对各代理模拟器200的模拟的中断的指示。
145.在模拟中断后,模拟指挥器320使模拟的时间返回到过去并再次开始模拟。图11是示出通过模拟指挥器320判断使模拟返回并再启动的流程的时序图。此外,在时序图中出现3个代理模拟器200,但仅代表地示出由1个代理模拟器200执行的处理。
146.在从模拟指挥器320向代理模拟器200发送模拟控制消息“中断”时,各代理模拟器200中止模拟(步骤s902)。接下来,各代理模拟器200从模拟的数据日志检索上述剩余时间维持正的值的最终时刻(步骤s904)。检索的最终时刻是能够再次开始模拟的最终时刻。各代理模拟器200针对模拟指挥器320发送将检索的最终时刻作为能够再次开始时刻包含的模拟控制消息“能够再次开始时刻”。
147.模拟指挥器320确认来自阈值比例以上的数的代理模拟器200的模拟控制消息“能否再次开始时刻”的接收(步骤s802)。模拟指挥器320计算在接收到的能够再次开始时刻中最晚的时刻,将其设定为模拟的再次开始时刻(步骤s804)。模拟指挥器320针对在步骤s802中接收到模拟控制消息的代理模拟器200,与模拟控制消息“再次开始等待”一起发送再次开始时刻。
148.各代理模拟器200从数据日志读出指定的再次开始时刻下的状态,再设定代理模拟器200的状态(步骤s906)。在模拟的再次开始准备完成时,代理模拟器200立刻针对模拟指挥器320发送模拟控制消息“再次开始准备好”。
149.模拟指挥器320确认来自在步骤s802中接收到模拟控制消息的所有代理模拟器200的模拟控制消息“再次开始准备好”的接收(步骤s806)。模拟指挥器320针对在步骤s802中接收到模拟控制消息的代理模拟器200发送模拟控制消息“再次开始”。
150.接收到模拟控制消息“再次开始”的代理模拟器200从在步骤s906中再设的状态再次开始模拟(步骤908)。
151.2.mas系统的整体结构和信息的流动
152.使用图12,说明能够执行以上说明的模拟速度调整的mas系统100的整体结构和信息的流动。如图12所示,mas系统100具备多个代理模拟器200、1个中心控制器300、以及多个服务系统用的后端服务器400。详细情况后述,它们分散设置于多个计算机。即,mas系统100是以利用多个计算机的并行分散处理为前提的系统。
153.在中心控制器300中,作为其功能,具备移动消息调度器310、和模拟指挥器320。中
心控制器300是安装于计算机的应用软件。移动消息调度器310和模拟指挥器320是构成应用软件的程序。中心控制器300虽然还能够与1个或者多个代理模拟器200共用作为硬件的计算机,但优选专用1个计算机。
154.移动消息调度器310中继代理模拟器200之间的移动消息的发送接收。在代理模拟器200与移动消息调度器310之间用实线表示的信息的流动表示移动消息的流动。移动消息调度器310承担中心控制器300具备的上述移动消息的交换功能。移动消息调度器310在与构成mas系统100的所有代理模拟器200之间进行通信。
155.模拟指挥器320在与代理模拟器200之间交换模拟控制消息。在代理模拟器200与模拟指挥器320之间用虚线表示的信息的流动是模拟控制消息的流动。与经由移动消息调度器310在多个代理模拟器200之间交换移动消息不同,在模拟指挥器320与各个代理模拟器200之间单独地交换模拟控制消息。
156.后端服务器400是与在现实世界的服务系统中实际上使用的服务器相同的后端服务器。通过将现实世界的后端服务器400带入到虚拟世界,能够高精度地模拟由服务系统提供的服务。作为用mas系统100模拟的服务,例如,可以举出使用自主驾驶车辆的按需巴士或定期运行型大巴等移动服务、使用自主移动型的机器人配送货物的物流服务。另外,由mas系统100模拟的服务例如是用户通过在用户终端中操作服务应用而能够利用的服务。
157.mas系统100具备不同的服务系统用的多个后端服务器400,能够在虚拟世界2中同时模拟多个种类的服务。服务的模拟通过后端服务器400与代理模拟器200之间的服务消息的交换进行。在代理模拟器200与后端服务器400之间用点线表示的信息的流动表示服务消息的流动。各后端服务器400在与和服务的提供相关的代理模拟器200之间交换服务消息。
158.交换的服务消息的内容根据代理模拟器200负责的代理的种类而不同。例如,在代理是利用服务的用户(行人)的情况下,后端服务器400从代理模拟器200接收包括服务利用信息的服务消息,将包括服务提供状态信息的服务消息发送给代理模拟器200。服务利用信息是指,与和用户的服务系统的利用有关的现状以及将来计划有关的信息,包括当前的利用状态和利用应用操作的输入信息。服务提供状态信息是指,与服务系统中的用户的状态有关的信息、且是经由用户终端的服务应用提供的信息。
159.在代理是被用于提供服务的自主机器人、自主车辆的情况下,后端服务器400从代理模拟器200接收包括动作状态信息的服务消息,将包括动作指示信息的服务消息发送给代理模拟器200。动作状态信息是指,与自主机器人或自主车辆的现状以及将来计划有关的信息。与现状有关的信息是指,例如搭载传感器的现况、测定数据、搭载致动器的现况、与行动决定有关的现况。与将来计划有关的信息是指,例如将来时刻、致动器的现况、以及与行动决定有关的现况的列表。动作指示信息是包括用于使用自主机器人或自主车辆提供服务的将来计划的全部或者一部分的信息。例如,自主机器人或自主车辆应移动的目标地点、路径包含于动作指示信息。
160.在存在于虚拟世界2的代理中,包含如包括照相机的路侧传感器或自动门的定置物体。例如,在代理是固定照相机的情况下,后端服务器400从代理模拟器200接收包括自主机器人的位置信息的计算所需的固定照相机的图像信息的服务消息。另外,在代理是自动门的情况下,后端服务器400将包括用于自主机器人的通行的开门的指示的服务消息发送给代理模拟器200。
161.另外,后端服务器400在与其他后端服务器400之间,根据各个协定,进行服务消息的交换。在后端服务器400之间用点线表示的信息的流动表示服务消息的流动。在此时交换的服务消息中,例如包括各个服务中的用户的利用状态、服务的提供状况。通过在多个后端服务器400之间交换服务消息,能够使在虚拟世界2中提供的服务相互协作。
162.作为多个服务的协作的一个例子,可以举出按需巴士服务、和从大巴站至自家代替用户而由主机器人搬运货物的物流服务的协作。在按需巴士服务中,用户能够在希望的时刻在希望的场所从大巴下车。通过使按需巴士服务和物流服务协作,能够在用户抵达以前使自主机器人抵达下车场所,在下车场所等待用户抵达。另外,在由于拥堵等而大巴延迟的情况、用户延迟乘坐大巴的情况下,通过在后端服务器400之间交换服务消息,能够使将自主机器人派到下车场所的时间与用户的抵达时间匹配。
163.但是,在现实世界的服务系统中实际上使用的后端服务器还包括无法调整处理速度的例子。在使用这样的后端服务器在虚拟世界2中提供依赖于时间的服务的情况下,在使虚拟世界2的时间的流动相对现实世界的时间的流动的速度比变化时,无法模拟通过服务系统提供的服务。因此,在使速度比变化来进行模拟的情况下,在虚拟世界2中提供的服务优选为无时间的概念的服务。
164.代理模拟器200根据负责的代理的种类存在多个种类。例如,存在行人代理用的代理模拟器201、自主机器人/车辆代理用的代理模拟器202、vr行人代理用的代理模拟器203、以及路侧传感器代理用的代理模拟器204。以下,代理模拟器200是指,这些多个种类的代理模拟器201、202、203、204的总称。
165.在代理模拟器200中,作为其功能,具备发送接收控制器210、3d物理引擎220、服务系统客户端模拟器230、以及模拟器核240。代理模拟器200是安装于计算机的应用软件。发送接收控制器210、3d物理引擎220、服务系统客户端模拟器230、以及模拟器核240是构成应用软件的程序。这些功能在代理模拟器201、202、203、204之间不同。在此,说明在代理模拟器201、202、203、204之间大致共同的功能,各个代理模拟器201、202、203、204的功能的详细情况后述。
166.发送接收控制器210是代理模拟器200与其他程序之间的接口。发送接收控制器210进行从移动消息调度器310接收移动消息、和向移动消息调度器310发送移动消息。但是,在代理模拟器204中,仅进行移动消息的接收。发送接收控制器210进行从模拟指挥器320接收模拟控制消息、和向模拟指挥器320发送模拟控制消息。另外,发送接收控制器210进行从后端服务器400接收服务消息、和向后端服务器400发送服务消息。但是,在代理模拟器204中,仅进行服务消息的发送。
167.3d物理引擎220根据从其他代理模拟器200接收到的移动消息,推测三维空间中的周围代理的当前的状态。基于周围代理的过去的状态的当前的状态的推测由3d物理引擎220进行。3d物理引擎220根据周围代理的当前的状态生成通过从本代理的观测得到的周边信息。另外,3d物理引擎220根据由后述模拟器核240模拟的模拟结果,更新三维空间中的本代理的状态,生成表示本代理的状态的移动消息。但是,在代理模拟器204中,由于负责的代理不动,所以不进行本代理的状态的更新和移动消息的生成。
168.服务系统客户端模拟器230模拟作为与后端服务器400相关的服务系统的客户端的本代理的举止。由发送接收控制器210接收到的服务消息被输入给服务系统客户端模拟
器230。然后,从发送接收控制器210发送由服务系统客户端模拟器230生成的服务消息。但是,在代理模拟器204中,仅进行服务消息的生成。
169.模拟器核240模拟下次时间步长中的本代理的状态。计算本代理的状态的时间步长的时间间隔是上述时间粒度。模拟器核240中的模拟的内容针对代理模拟器200的每个种类不同。此外,由于负责的代理不动且本代理的状态的模拟不需要,所以代理模拟器204未具有模拟器核240。
170.3.代理模拟器的详细的结构和信息的流动
171.接下来,使用图13至图16,说明构成mas系统100的各种类的代理模拟器201、202、203、204的详细的结构和信息的流动。此外,在图13至图16中,实线所示的块之间的信息的流动表示移动消息的流程。另外,点线所示的块之间的信息的流动表示服务消息的流程。而且,虚线所示的块之间的信息的流动表示模拟控制消息的流程。
172.3-1.行人代理用代理模拟器
173.图13是示出行人代理用的代理模拟器201的结构和信息的流动的框图。以下,说明行人代理用的代理模拟器201的整体结构和各部分的详细情况、以及代理模拟器201中的信息的流动。
174.3-1-1.行人代理用代理模拟器的整体结构
175.在代理模拟器201中,作为其功能,具备发送接收控制器211、3d物理引擎221、服务系统客户端模拟器231、以及模拟器核241。这些功能作为概念分别包含于发送接收控制器210、3d物理引擎220、服务系统客户端模拟器230、以及模拟器核240。
176.在发送接收控制器211中,作为接收各种消息的功能,具备移动消息接收部211a、服务消息接收部211b、以及控制消息接收部211c。另外,在发送接收控制器211中,作为发送各种消息的功能,具备移动消息发送部211d、服务消息发送部211e、以及控制消息发送部211f。进而,发送接收控制器211具备剩余时间率计算部211g和模拟动作控制部211h。构成发送接收控制器211的各部分211a~211h分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
177.在3d物理引擎221中,作为其功能,具备周围代理状态更新部221a、视觉信息生成部221b、以及本代理状态更新部221c。构成3d物理引擎221的各部分221a、221b、221c分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
178.在服务系统客户端模拟器231中,作为其功能,具备服务提供状态信息处理部231a和服务利用信息生成部231b。构成服务系统客户端模拟器231的各部分231a、231b分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
179.在模拟器核241中,作为其功能,具备整体移动方针决定部241a、行动决定部241b、下次时间步长状态计算部241d、服务利用行动决定部241e、以及速度调整部241g。构成模拟器核241的各部分241a、241b、241d、241f、241g分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
180.3-1-2.发送接收控制器的详细情况
181.在发送接收控制器211中,移动消息接收部211a从移动消息调度器310接收移动消
息。移动消息接收部211a将接收到的移动消息输出给3d物理引擎221的周围代理状态更新部221a。另外,移动消息接收部211a将包括接收到移动消息的时刻的信息输出给剩余时间率计算部211g。
182.服务消息接收部211b从后端服务器400接收服务消息。服务消息接收部211b将接收到的服务消息输出给服务系统客户端模拟器231的服务提供状态信息处理部231a。
183.控制消息接收部211c从模拟指挥器320接收模拟控制消息。控制消息接收部211c将接收到的模拟控制消息输出给模拟动作控制部211h。
184.移动消息发送部211d从3d物理引擎221的本代理状态更新部221c取得包括本代理的当前的状态的移动消息。移动消息发送部211d将取得的移动消息发送给移动消息调度器310。另外,移动消息发送部211d将包括移动消息的发送完成时刻的信息发送给剩余时间率计算部211g。
185.服务消息发送部211e从服务系统客户端模拟器231的服务利用信息生成部231b取得包括服务利用信息的服务消息。服务消息发送部211e将取得的服务消息发送给后端服务器400。
186.控制消息发送部211f从剩余时间率计算部211g取得包括与模拟的速度状况有关的信息的模拟控制消息。另外,控制消息发送部211f从模拟动作控制部211h取得包括代理模拟器201的控制状态的模拟控制消息。控制消息发送部211f将从剩余时间率计算部211g和模拟动作控制部211h取得的模拟控制消息发送给模拟指挥器320。
187.剩余时间率计算部211g从移动消息接收部211a取得包括移动消息的接收时刻的信息。另外,剩余时间率计算部211g从移动消息发送部211d取得包括移动消息的发送完成时刻的信息。进而,剩余时间率计算部211g从模拟器核241的下次时间步长状态计算部241d取得用于本代理的状态更新的计算的开始时刻。
188.剩余时间率计算部211g将包括上述剩余时间、剩余时间率、以及延迟时间的模拟控制消息输出给控制消息发送部211f。剩余时间、剩余时间率、以及延迟时间是与模拟的速度状况有关的信息。接收到包括这些信息的模拟控制消息的模拟指挥器320决定应针对代理模拟器201指示的控制内容。应针对代理模拟器201指示的控制内容是指,例如模拟速度、模拟的停止、模拟的休止、以及模拟的再次开始。模拟指挥器320制作包括应指示的控制内容的模拟控制消息,发送给代理模拟器201。
189.模拟动作控制部211h从控制消息接收部211c取得模拟控制消息。模拟动作控制部211h依照包含于模拟控制消息的指示,控制代理模拟器201的模拟动作。例如,在被指示模拟的时间粒度的变更的情况下,模拟动作控制部211h将利用代理模拟器201的模拟的时间粒度从初始值变更为指示的时间粒度。将时间粒度的初始值作为设定值存储到代理模拟器201。另外,将时间粒度的上限值和下限值针对代理的每个种类存储到模拟指挥器320。
190.在利用模拟控制消息的指示内容是模拟速度的情况下,模拟动作控制部211h使3d物理引擎221、模拟器核241的动作频率变化而使模拟速度加速或者减速。例如,针对模拟器核241,将指示的模拟速度输出给模拟器核241的速度调整部241g。此外,模拟速度意味着虚拟世界2的时间的流动相对实际世界的时间的流动的速度比。在被指示模拟的停止的情况下,模拟动作控制部211h使利用代理模拟器201的模拟停止。在被指示模拟的休止的情况下,使模拟休止,在被指示再次开始的情况下,使模拟再次开始。模拟动作控制部211h将包
括代理模拟器201的当前的控制状态的模拟控制消息输出给控制消息发送部211f。
191.3-1-3.3d物理引擎的详细情况
192.在3d物理引擎221中,周围代理状态更新部221a从移动消息接收部211a取得移动消息。从移动消息接收部211a取得的移动消息是经由移动消息调度器310从其他代理模拟器送来的移动消息。周围代理状态更新部221a根据取得的移动消息,推测在本代理的周围存在的周围代理的当前的状态。
193.在根据过去的状态推测周围代理的当前的状态的情况下,周围代理状态更新部221a使用保存于日志的周围代理的过去的状态。例如,能够通过基于周围代理的最新的2个以上的过去的状态的线性外插,推测周围代理的当前的状态。在周围代理的过去的状态的数为1个的情况下,也可以将该唯一的过去的状态推测为周围代理的当前的状态。周围代理状态更新部221a将推测的周围代理的当前的状态输出给视觉信息生成部221b,并且更新日志。
194.视觉信息生成部221b从周围代理状态更新部221a取得周围代理的当前的状态。视觉信息生成部221b根据周围代理的当前的状态生成通过从本代理的观测得到的周边信息。本代理为行人,所以通过观测得到的周边信息是指,由行人的眼睛捕捉的视觉信息。视觉信息生成部221b将生成的视觉信息输出给模拟器核241的整体移动方针决定部241a、行动决定部241b、以及服务利用行动决定部241e。
195.本代理状态更新部221c从模拟器核241的下次时间步长状态计算部241d取得由模拟器核241模拟的下次时间步长中的本代理的状态。本代理状态更新部221c根据由模拟器核241模拟的模拟结果,更新三维空间中的本代理的状态。本代理状态更新部221c将包括更新后的本代理的状态的移动消息输出给发送接收控制器211的移动消息发送部211d。在包含于移动消息的本代理的状态中,包括本次时间步长中的位置、方向、速度、加速度、和下次时间步长中的位置、方向、速度、加速度。另外,本代理状态更新部221c将与更新后的本代理的状态有关的信息输出给服务系统客户端模拟器231的服务利用信息生成部231b。
196.3-1-4.服务系统客户端模拟器的详细情况
197.在服务系统客户端模拟器231中,服务提供状态信息处理部231a从服务消息接收部211b取得服务消息。从服务消息接收部211b取得的服务消息包括服务提供状态信息。服务提供状态信息处理部231a处理服务提供状态信息,取得与作为服务系统的用户的本代理的状态有关的信息、和向用户终端的服务应用的输入项目。与本代理的作为用户的状态有关的信息是对用户终端提示的信息,输入项目是为了本代理利用服务而委托输入的信息。服务提供状态信息处理部231a将与本代理的作为用户的状态有关的信息、和向用户终端的服务应用的输入项目输出给模拟器核241的整体移动方针决定部241a以及服务利用行动决定部241e。
198.服务利用信息生成部231b从模拟器核241的服务利用行动决定部241e取得本代理的服务利用行动的决定结果。另外,服务利用信息生成部231b从3d物理引擎221的本代理状态更新部221c取得三维空间中的本代理的状态。服务利用信息生成部231b根据取得的这些信息,生成服务利用信息,并且更新本代理的服务的利用状态。服务利用信息生成部231b将包括服务利用信息的服务消息输出给发送接收控制器211的服务消息发送部211e。
199.3-1-5.模拟器核的详细情况
200.在模拟器核241中,整体移动方针决定部241a从3d物理引擎221的视觉信息生成部221b取得视觉信息。另外,整体移动方针决定部241a从服务系统客户端模拟器231的服务提供状态信息处理部231a取得与本代理的作为用户的状态有关的信息、和向用户终端的服务应用的输入项目。整体移动方针决定部241a根据取得的这些信息,决定本代理的虚拟世界2中的整体的移动方针。整体移动方针决定部241a将决定的整体的移动方针输出给行动决定部241b。
201.行动决定部241b从整体移动方针决定部241a取得整体的移动方针,并且从3d物理引擎221的视觉信息生成部221b取得视觉信息。行动决定部241b通过将整体的移动方针和视觉信息输入给移动模型241c,决定本代理的行动。移动模型241c是依据一定的移动方针根据映入到行人的眼睛的周边的状况而对行人如何移动进行模型化的模拟模型。行动决定部241b将决定的本代理的行动输出给下次时间步长状态计算部241d。
202.下次时间步长状态计算部241d取得由行动决定部241b决定的本代理的行动。下次时间步长状态计算部241d根据本代理的行动,计算下次时间步长中的本代理的状态。计算的本代理的状态包括下次时间步长中的本代理的位置、方向、速度、以及加速度。下次时间步长状态计算部241d将计算的下次时间步长中的本代理的状态输出给3d物理引擎221的本代理状态更新部221c。另外,下次时间步长状态计算部241d将用于本代理的状态更新的计算的开始时刻输出给发送接收控制器211的剩余时间率计算部211g。
203.服务利用行动决定部241e从3d物理引擎221的视觉信息生成部221b取得视觉信息。另外,服务利用行动决定部241e从服务系统客户端模拟器231的服务提供状态信息处理部231a取得与本代理的作为用户的状态有关的信息、和向用户终端的服务应用的输入项目。服务利用行动决定部241e通过将取得的这些信息输入给行动模型241f,决定本代理的作为服务系统的用户的行动(服务利用行动)。行动模型241f是在对用户提示与服务有关的信息,委托向用户终端的服务应用的输入的情况下,根据映入用户的眼睛的周边的状况对用户如何移动进行模型化的模拟模型。服务利用行动决定部241e将决定的服务利用行动输出给服务利用信息生成部231b。
204.速度调整部241g从模拟动作控制部211h取得模拟速度。从模拟动作控制部211h取得的模拟速度是由模拟指挥器320指示的模拟速度。速度调整部241g依照来自模拟指挥器320的指示,使利用模拟器核241模拟本代理的模拟速度加速或者减速。
205.3-2.自主机器人/车辆代理用代理模拟器
206.图14是示出自主机器人/车辆代理用的代理模拟器202的结构和信息的流动的框图。自主机器人/车辆代理是指,在后端服务器400相关的服务系统中被用于提供服务的自主机器人或者自主车辆的代理。以下,说明自主机器人/车辆代理用的代理模拟器202的整体结构和各部分的详细情况、以及代理模拟器202中的信息的流动。
207.3-2-1.自主机器人/车辆代理用代理模拟器的整体结构
208.在代理模拟器202中,作为其功能,具备发送接收控制器212、3d物理引擎222、服务系统客户端模拟器232、以及模拟器核242。这些功能作为概念分别包含于发送接收控制器210、3d物理引擎220、服务系统客户端模拟器230、以及模拟器核240。
209.在发送接收控制器212中,作为接收各种消息的功能,具备移动消息接收部212a、服务消息接收部212b、以及控制消息接收部212c。另外,在发送接收控制器212中,作为发送
各种消息的功能,具备移动消息发送部212d、服务消息发送部212e、以及控制消息发送部212f。进而,发送接收控制器212具备剩余时间率计算部212g和模拟动作控制部212h。构成发送接收控制器211的各部分212a~212h分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
210.在3d物理引擎222中,作为其功能,具备周围代理状态更新部222a、传感器信息生成部222b、以及本代理状态更新部222c。构成3d物理引擎222的各部分222a、222b、222c分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
211.在服务系统客户端模拟器232中,作为其功能,具备路径计划用信息接收部232a和动作状态信息生成部232b。构成服务系统客户端模拟器232的各部分232a、232b分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
212.在模拟器核242中,作为其功能,具备整体的路径计划部242a、局部的路径计划部242b、致动器操作量决定部242c、以及下次时间步长状态计算部242d。构成模拟器核242的各部分242a、242b、242c、242d分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
213.3-2-2.发送接收控制器的详细情况
214.在发送接收控制器212中,移动消息接收部212a从移动消息调度器310接收移动消息。移动消息接收部212a将接收到的移动消息输出给3d物理引擎222的周围代理状态更新部222a。另外,移动消息接收部212a将包括接收到移动消息的时刻的信息输出给剩余时间率计算部212g。
215.服务消息接收部212b从后端服务器400接收服务消息。服务消息接收部212b将接收到的服务消息输出给服务系统客户端模拟器232的路径计划用信息接收部232a。
216.控制消息接收部212c从模拟指挥器320接收模拟控制消息。控制消息接收部212c将接收到的模拟控制消息输出给模拟动作控制部212h。
217.移动消息发送部212d从3d物理引擎222的本代理状态更新部222c取得包括本代理的当前的状态的移动消息。移动消息发送部212d将取得的移动消息发送给移动消息调度器310。另外,移动消息发送部212d将包括移动消息的发送完成时刻的信息发送给剩余时间率计算部212g。
218.服务消息发送部212e从服务系统客户端模拟器232的动作状态信息生成部232b取得包括动作状态信息的服务消息。服务消息发送部212e将取得的服务消息发送给后端服务器400。
219.控制消息发送部212f从剩余时间率计算部212g取得包括与模拟的速度状况有关的信息的模拟控制消息。另外,控制消息发送部212f从模拟动作控制部212h取得包括代理模拟器202的控制状态的模拟控制消息。控制消息发送部212f将从剩余时间率计算部212g和模拟动作控制部212h取得的模拟控制消息发送给模拟指挥器320。
220.剩余时间率计算部212g从移动消息接收部212a取得包括移动消息的接收时刻的信息。另外,剩余时间率计算部212g从移动消息发送部212d取得包括移动消息的发送完成时刻的信息。进而,剩余时间率计算部212g从模拟器核242的下次时间步长状态计算部242d
取得用于本代理的状态更新的计算的开始时刻。
221.剩余时间率计算部212g根据取得的信息,通过上述各式,计算剩余时间、剩余时间率、以及延迟时间。剩余时间率计算部212g将包括剩余时间、剩余时间率、以及延迟时间的模拟控制消息输出给控制消息发送部212f。接收到包括这些信息的模拟控制消息的模拟指挥器320制作包括应针对代理模拟器202指示的控制内容的模拟控制消息,发送给代理模拟器202。
222.模拟动作控制部212h从控制消息接收部212c取得模拟控制消息。模拟动作控制部212h依照包含于模拟控制消息的指示,控制代理模拟器202的模拟动作。例如,在被指示模拟的时间粒度的变更的情况下,模拟动作控制部212h将由代理模拟器202进行的模拟的时间粒度从初始值变更为指示的时间粒度。将时间粒度的初始值作为设定值存储到代理模拟器202。另外,将时间粒度的上限值和下限值针对代理的每个种类存储到模拟指挥器320。
223.在利用模拟控制消息的指示内容是模拟速度的情况下,模拟动作控制部212h使3d物理引擎222、模拟器核242的动作频率依照指示的模拟速度变化,使代理模拟器202的运算速度加速或者减速。在被指示模拟的停止的情况下,模拟动作控制部212h使利用代理模拟器202的模拟停止。在被指示模拟的休止的情况下,使模拟休止,在被指示再次开始的情况下,使模拟再次开始。模拟动作控制部212h将包括代理模拟器202的当前的控制状态的模拟控制消息输出给控制消息发送部212f。
224.3-2-3.3d物理引擎的详细情况
225.在3d物理引擎222中,周围代理状态更新部222a从移动消息接收部212a取得移动消息。从移动消息接收部212a取得的移动消息是经由移动消息调度器310从其他代理模拟器送来的移动消息。周围代理状态更新部222a根据取得的移动消息,推测在本代理的周围存在的周围代理的当前的状态。
226.在根据过去的状态推测周围代理的当前的状态的情况下,周围代理状态更新部222a使用保存于日志的周围代理的过去的状态。使用周围代理的过去的状态推测当前的状态的方法如上所述。周围代理状态更新部222a将推测的周围代理的当前的状态输出给传感器信息生成部222b,并且更新日志。
227.传感器信息生成部222b从周围代理状态更新部222a取得周围代理的当前的状态。传感器信息生成部222b根据周围代理的当前的状态生成通过从本代理的观测得到的周边信息。本代理是自主机器人或者自主车辆,所以通过观测得到的周边信息是指,由自主机器人或者自主车辆的传感器捕捉的传感器信息。传感器信息生成部222b将生成的传感器信息输出给模拟器核242的整体的路径计划部242a、以及服务系统客户端模拟器232的动作状态信息生成部232b。
228.本代理状态更新部222c从模拟器核242的下次时间步长状态计算部242d取得由模拟器核242运算的下次时间步长中的本代理的状态。本代理状态更新部222c根据由模拟器核242模拟的运算结果,更新三维空间中的本代理的状态。本代理状态更新部222c将包括更新后的本代理的状态的移动消息输出给发送接收控制器212的移动消息发送部212d。在包含于移动消息的本代理的状态中,包括本次时间步长中的位置、方向、速度、加速度、和下次时间步长中的位置、方向、速度、加速度。另外,本代理状态更新部222c将与更新后的本代理的状态有关的信息输出给服务系统客户端模拟器232的动作状态信息生成部232b。
229.3-2-4.服务系统客户端模拟器的详细情况
230.在服务系统客户端模拟器232中,路径计划用信息接收部232a从服务消息接收部211b取得服务消息。从服务消息接收部212b取得的服务消息包括用于服务系统使用自主机器人/车辆提供服务的动作指示信息和与其他服务系统有关的信息。路径计划用信息接收部232a将动作指示信息和其他服务系统信息输出给模拟器核242的整体的路径计划部242a。
231.动作状态信息生成部232b从模拟器核242的致动器操作量决定部242c取得本代理的下次时间步长中的致动器操作量。另外,动作状态信息生成部232b从3d物理引擎222的传感器信息生成部222b取得传感器信息,并且从本代理状态更新部222c取得三维空间中的本代理的状态。动作状态信息生成部232b根据取得的这些信息,生成表示与服务的提供相关的本代理的动作状态的动作状态信息。动作状态信息生成部232b将包括动作状态信息的服务消息输出给发送接收控制器212的服务消息发送部212e。
232.3-2-5.模拟器核的详细情况
233.在模拟器核242中,整体的路径计划部242a从3d物理引擎222的传感器信息生成部222b取得传感器信息。另外,整体的路径计划部242a从服务系统客户端模拟器232的路径计划用信息接收部232a取得动作指示信息和其他服务系统信息。整体的路径计划部242a根据取得的这些信息,计划虚拟世界2中的本代理的整体的路径。整体的路径是指,本代理的当前位置至目标地点的路径。从传感器信息生成部222b和路径计划用信息接收部232a取得的信息每次变化,所以整体的路径计划部242a针对每个时间步长,重新制定整体的路径计划。整体的路径计划部242a将决定的整体的路径计划输出给局部的路径计划部242b。
234.局部的路径计划部242b从整体的路径计划部242a取得整体的路径计划。局部的路径计划部242b根据整体的路径计划,制定局部的路径计划。局部的路径是指,例如,从当前时间点至预定时间步长后为止的路径、或者从当前位置至预定距离为止的路径。局部的路径计划例如用本代理应经过的位置的集合、和各位置处的速度或者加速度表示。局部的路径计划部242b将决定的局部的路径计划输出给致动器操作量决定部242c。
235.致动器操作量决定部242c从局部的路径计划部242b取得局部的路径计划。致动器操作量决定部242c根据局部的路径计划,决定下次时间步长中的本代理的致动器操作量。此处所称的致动器是指,控制本代理的方向、速度、以及加速度的致动器。在本代理是用车轮行驶的自主机器人或者自主车辆的情况下,例如制动装置、驱动装置、操舵装置等致动器成为操作对象。致动器操作量决定部242c将决定的致动器操作量输出给下次时间步长状态计算部242d、以及服务系统客户端模拟器232的动作状态信息生成部232b。
236.下次时间步长状态计算部242d取得由致动器操作量决定部242c决定的致动器操作量。下次时间步长状态计算部242d根据致动器操作量,计算下次时间步长中的本代理的状态。计算的本代理的状态包括下次时间步长中的本代理的位置、方向、速度、以及加速度。下次时间步长状态计算部242d将计算的下次时间步长中的本代理的状态输出给3d物理引擎222的本代理状态更新部222c。另外,下次时间步长状态计算部242d将用于本代理的状态更新的计算的开始时刻输出给发送接收控制器212的剩余时间率计算部212g。
237.3-3.vr行人代理用代理模拟器
238.图15是示出vr行人代理用的代理模拟器203的结构和信息的流动的框图。vr行人
代理是指,用于实际存在的人使用vr(virtual reality,虚拟现实)系统参加作为模拟的对象的虚拟世界2的行人代理。以下,说明vr行人代理用的代理模拟器203的整体结构和各部分的详细情况、以及代理模拟器203中的信息的流动。
239.3-3-1.vr行人代理用代理模拟器的整体结构
240.在代理模拟器203中,作为其功能,具备发送接收控制器213、3d物理引擎223、服务系统客户端模拟器233、以及模拟器核243。这些功能作为概念分别包含于发送接收控制器210、3d物理引擎220、服务系统客户端模拟器230、以及模拟器核240。
241.在发送接收控制器213中,作为接收各种消息的功能,具备移动消息接收部213a、服务消息接收部213b、以及控制消息接收部213c。另外,在发送接收控制器213中,作为发送各种消息的功能,具备移动消息发送部213d、服务消息发送部213e、以及控制消息发送部213f。进而,发送接收控制器213具备模拟动作控制部213h。构成发送接收控制器213的各部分213a~213f、213h分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
242.在3d物理引擎223中,作为其功能,具备周围代理状态更新部223a、视觉信息生成部223b、以及本代理状态更新部223c。构成3d物理引擎223的各部分223a、223b、223c分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
243.在服务系统客户端模拟器233中,作为其功能,具备服务提供状态信息处理部233a和服务利用信息生成部233b。构成服务系统客户端模拟器231的各部分233a、233b分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
244.在模拟器核243中,作为其功能,具备认知判断用信息提示部243a、移动操作受理部243b、下次时间步长状态计算部243c、以及应用操作受理部243d。构成模拟器核243的各部分243a、243b、243c、243d分别是程序或者程序的一部分。此外,块内的记载是记载各部分的代表性的功能的例子,未必与各部分的名称一致。
245.3-3-2.发送接收控制器的详细情况
246.在发送接收控制器213中,移动消息接收部213a从移动消息调度器310接收移动消息。移动消息接收部213a将接收到的移动消息输出给3d物理引擎223的周围代理状态更新部223a。
247.服务消息接收部213b从后端服务器400接收服务消息。服务消息接收部213b将接收到的服务消息输出给服务系统客户端模拟器233的服务提供状态信息处理部233a。
248.控制消息接收部213c从模拟指挥器320接收模拟控制消息。控制消息接收部213c将接收到的模拟控制消息输出给模拟动作控制部213h。
249.移动消息发送部213d从3d物理引擎223的本代理状态更新部223c取得包括本代理的当前的状态的移动消息。移动消息发送部213d将取得的移动消息发送给移动消息调度器310。
250.服务消息发送部213e从服务系统客户端模拟器233的服务利用信息生成部233b取得包括服务利用信息的服务消息。服务消息发送部213e将取得的服务消息发送给后端服务器400。
251.控制消息发送部213f从模拟动作控制部213h取得包括代理模拟器203的控制状态的模拟控制消息。控制消息发送部213f将从模拟动作控制部213h取得的模拟控制消息发送给模拟指挥器320。
252.模拟动作控制部213h从控制消息接收部213c取得模拟控制消息。模拟动作控制部213h依照包含于模拟控制消息的指示,控制代理模拟器203的模拟动作。在不满足vr行人代理向虚拟世界2的参加条件的情况下,从模拟指挥器320针对代理模拟器203指示模拟的停止。
253.上述代理模拟器201、202以及后述代理模拟器204能够根据需要变更模拟速度。但是,在模拟速度被变更的情况下,经由vr行人代理参加虚拟世界2的实际存在的参加者存在针对与实际世界不同的时间的流动感觉强的不适感的可能。因此,在mas系统100中,以实时进行模拟为参加条件,容许vr行人代理向虚拟世界2的参加。在相比于实际世界的时间的流动,模拟速度加速或者减速的情况下,模拟指挥器320使利用代理模拟器203的模拟停止。模拟动作控制部213h将包括代理模拟器203的当前的控制状态的模拟控制消息输出给控制消息发送部213f。
254.3-3-3.3d物理引擎的详细情况
255.在3d物理引擎223中,周围代理状态更新部223a从移动消息接收部213a取得移动消息。从移动消息接收部213a取得的移动消息是经由移动消息调度器310从其他代理模拟器送来的移动消息。周围代理状态更新部223a根据取得的移动消息,推测在本代理的周围存在的周围代理的当前的状态。
256.在根据过去的状态推测周围代理的当前的状态的情况下,周围代理状态更新部223a使用保存于日志的周围代理的过去的状态。使用周围代理的过去的状态推测当前的状态的方法如上所述。周围代理状态更新部223a将推测的周围代理的当前的状态输出给视觉信息生成部223b,并且更新日志。
257.视觉信息生成部223b从周围代理状态更新部223a取得周围代理的当前的状态。视觉信息生成部223b根据周围代理的当前的状态生成通过从本代理的观测得到的周边信息。本代理为行人,所以通过观测得到的周边信息是指,由行人的眼睛捕捉的视觉信息。视觉信息生成部223b将生成的视觉信息输出给模拟器核243的认知判断用信息提示部243a、以及移动操作受理部243b。
258.本代理状态更新部223c从模拟器核243的下次时间步长状态计算部243c取得由模拟器核243运算的下次时间步长中的本代理的状态。本代理状态更新部223c根据由模拟器核243进行的模拟的运算结果,更新三维空间中的本代理的状态。本代理状态更新部223c将包括更新后的本代理的状态的移动消息输出给发送接收控制器213的移动消息发送部213d。在包含于移动消息的本代理的状态中,包括本次时间步长中的位置、方向、速度、加速度、和下次时间步长中的位置、方向、速度、加速度。另外,本代理状态更新部223c将与更新后的本代理的状态有关的信息输出给服务系统客户端模拟器233的服务利用信息生成部233b。
259.3-3-4.服务系统客户端模拟器的详细情况
260.在服务系统客户端模拟器233中,服务提供状态信息处理部233a从服务消息接收部213b取得服务消息。从服务消息接收部213b取得的服务消息包括服务提供状态信息。服
务提供状态信息处理部233a处理服务提供状态信息,取得与作为服务系统的用户的本代理的状态有关的信息、和向用户终端的服务应用的输入项目。与本代理的作为用户的状态有关的信息是对用户终端提示的信息,输入项目是为了本代理利用服务而委托输入的信息。服务提供状态信息处理部233a将与本代理的作为用户的状态有关的信息、和向用户终端的服务应用的输入项目输出给模拟器核243的认知判断用信息提示部243a以及应用操作受理部243d。
261.服务利用信息生成部233b从模拟器核243的应用操作受理部243d取得经由vr行人代理参加虚拟世界2的实际存在的参加者所作出的vr上的服务应用的操作。另外,服务利用信息生成部233b从3d物理引擎223的本代理状态更新部223c取得三维空间中的本代理的状态。服务利用信息生成部233b根据取得的这些信息,生成服务利用信息,并且更新本代理的服务的利用状态。服务利用信息生成部233b将包括服务利用信息的服务消息输出给发送接收控制器213的服务消息发送部213e。
262.3-3-5.模拟器核的详细情况
263.在模拟器核243中,认知判断用信息提示部243a从3d物理引擎223的视觉信息生成部223b取得视觉信息。另外,认知判断用信息提示部243a从服务系统客户端模拟器231的服务提供状态信息处理部233a取得与本代理的作为用户的状态有关的信息、和向用户终端的服务应用的输入项目。取得的这些信息是对于经由vr行人代理参加虚拟世界2的实际存在的参加者而言的认知判断用的信息。认知判断用信息提示部243a针对实际存在参加者经由vr系统提示认知判断用的信息。
264.移动操作受理部243b从3d物理引擎223的视觉信息生成部223b取得视觉信息。然后,移动操作受理部243b一边经由vr系统对实际存在参加者提示视觉信息,一边受理实际存在参加者所作出的vr上的移动操作。移动操作受理部243b将受理的实际存在参加者所作出的vr上的移动操作输出给下次时间步长状态计算部243d。
265.下次时间步长状态计算部243d从移动操作受理部243b取得实际存在参加者所作出的vr上的移动操作。下次时间步长状态计算部243d根据实际存在参加者所作出的vr上的移动操作,计算下次时间步长中的本代理的状态。计算的本代理的状态包括下次时间步长中的本代理的位置、方向、速度、以及加速度。下次时间步长状态计算部243d将计算的下次时间步长中的本代理的状态输出给3d物理引擎223的本代理状态更新部223c。
266.应用操作受理部243d从3d物理引擎223的视觉信息生成部223b取得视觉信息。另外,应用操作受理部243d从服务系统客户端模拟器233的服务提供状态信息处理部233a取得与本代理的作为用户的状态有关的信息、和向用户终端的服务应用的输入项目。应用操作受理部243d一边针对实际存在参加者经由vr系统提示取得的这些信息,一边受理实际存在参加者所作出的vr上的服务应用的操作。应用操作受理部243d将受理的实际存在参加者所作出的vr上的服务应用的操作输出给服务系统客户端模拟器233的服务利用信息生成部233b。
267.3-4.路侧传感器代理用代理模拟器
268.图16是示出路侧传感器代理用的代理模拟器204的结构和信息的流动的框图。路侧传感器代理是指,在自主机器人/车辆代理的虚拟世界2中的位置信息的取得中使用的路侧传感器的代理。由路侧传感器代理取得的自主机器人/车辆代理的位置信息被用于后端
服务器400相关的服务系统。以下,说明路侧传感器代理用的代理模拟器204的整体结构和各部分的详细情况、以及代理模拟器204中的信息的流动。
269.3-4-1.路侧传感器代理用代理模拟器的整体结构
270.在代理模拟器204中,作为其功能,具备发送接收控制器214、3d物理引擎224、以及服务系统客户端模拟器234。这些功能作为概念分别包含于发送接收控制器210、3d物理引擎220、以及模拟器核240。代理模拟器204与其他代理模拟器不同,不具备模拟器核。
271.在发送接收控制器214中,作为接收各种消息的功能,具备移动消息接收部214a、以及控制消息接收部214b。另外,在发送接收控制器212中,作为发送各种消息的功能,具备服务消息发送部214e、以及控制消息发送部214f。进而,发送接收控制器212具备剩余时间率计算部214g和模拟动作控制部214h。构成发送接收控制器214的各部分212a、214c、214e、214f、214g、214h分别是程序或者程序的一部分。
272.在3d物理引擎224中,作为其功能,具备周围代理状态更新部224a、以及传感器信息生成部224b。构成3d物理引擎224的各部分224a、224b分别是程序或者程序的一部分。
273.在服务系统客户端模拟器234中,作为其功能,具备服务消息生成部234a。构成服务系统客户端模拟器234的服务消息生成部234a是程序或者程序的一部分。
274.3-4-2.发送接收控制器的详细情况
275.在发送接收控制器214中,移动消息接收部214a从移动消息调度器310接收移动消息。移动消息接收部214a将接收到的移动消息输出给3d物理引擎224的周围代理状态更新部224a。另外,移动消息接收部214a将包括接收到移动消息的时刻的信息输出给剩余时间率计算部214g。
276.控制消息接收部214c从模拟指挥器320接收模拟控制消息。控制消息接收部214c将接收到的模拟控制消息输出给模拟动作控制部214h。
277.服务消息发送部214e从服务系统客户端模拟器234的服务消息生成部234a取得包括传感器信息的服务消息。服务消息发送部214e将取得的服务消息发送给后端服务器400。
278.控制消息发送部214f从剩余时间率计算部214g取得包括与模拟的速度状况有关的信息的模拟控制消息。另外,控制消息发送部214f从模拟动作控制部214h取得包括代理模拟器202的控制状态的模拟控制消息。控制消息发送部214f将从剩余时间率计算部214g和模拟动作控制部214h取得的模拟控制消息发送给模拟指挥器320。
279.剩余时间率计算部214g从移动消息接收部214a取得包括移动消息的接收时刻的信息。另外,剩余时间率计算部214g从服务消息发送部214e取得包括服务消息的发送完成时刻的信息。剩余时间率计算部214g根据取得的信息,通过上述各式,计算剩余时间、剩余时间率、以及延迟时间。但是,在剩余时间和剩余时间率的计算中,对ta(n 1)以及ta(n)使用根据代理模拟器202的动作频率计算的计算值。另外,对td(n)代替本次时间步长中的移动消息的发送完成时刻,而使用服务消息的发送完成时刻。
280.剩余时间率计算部214g将包括剩余时间、剩余时间率、以及延迟时间的模拟控制消息输出给控制消息发送部214f。接收到包括这些信息的模拟控制消息的模拟指挥器320制作包括应针对代理模拟器204指示的控制内容的模拟控制消息,发送给代理模拟器204。
281.模拟动作控制部214h从控制消息接收部214c取得模拟控制消息。模拟动作控制部214h依照包含于模拟控制消息的指示,控制代理模拟器202的模拟动作。例如,在被指示模
拟的时间粒度的变更的情况下,模拟动作控制部214h将由代理模拟器202进行的模拟的时间粒度从初始值变更为指示的时间粒度。将时间粒度的初始值作为设定值存储到代理模拟器204。另外,将时间粒度的上限值和下限值针对代理的每个种类存储到模拟指挥器320。
282.在利用模拟控制消息的指示内容是模拟速度的情况下,模拟动作控制部214h使3d物理引擎224的动作频率依照指示的模拟速度变化,使代理模拟器204的运算速度加速或者减速。在被指示模拟的停止的情况下,模拟动作控制部214h使利用代理模拟器204的模拟停止。在被指示模拟的休止的情况下,使模拟休止,在被指示再次开始的情况下,使模拟再次开始。模拟动作控制部214h将包括代理模拟器204的当前的控制状态的模拟控制消息输出给控制消息发送部214f。
283.3-4-3.3d物理引擎的详细情况
284.在3d物理引擎224中,周围代理状态更新部224a从移动消息接收部214a取得移动消息。从移动消息接收部214a取得的移动消息是经由移动消息调度器310从其他代理模拟器送来的移动消息。周围代理状态更新部224a根据取得的移动消息,推测在本代理的周围存在的周围代理的当前的状态。
285.在根据过去的状态推测周围代理的当前的状态的情况下,周围代理状态更新部224a使用保存于日志的周围代理的过去的状态。使用周围代理的过去的状态推测当前的状态的方法如上所述。周围代理状态更新部224a将推测的周围代理的当前的状态输出给传感器信息生成部224b,并且更新日志。
286.传感器信息生成部224b从周围代理状态更新部224a取得周围代理的当前的状态。传感器信息生成部224b根据周围代理的当前的状态生成通过从本代理的观测得到的周边信息。本代理是如照相机的定置型的路侧传感器,所以通过观测得到的周边信息是指,由路侧传感器捕捉的传感器信息。传感器信息生成部224b将生成的传感器信息输出给服务系统客户端模拟器234的服务消息生成部234a。
287.3-4-4.服务系统客户端模拟器的详细情况
288.在服务系统客户端模拟器234中,服务消息生成部234a从3d物理引擎224的传感器信息生成部224b取得传感器信息。服务消息生成部234a将包括取得的传感器信息的服务消息输出给发送接收控制器214的服务消息发送部214e。
289.4.利用mas系统的模拟结果的汇集和评价
290.通过利用mas系统100进行模拟,能够得到关于模拟的对象世界的各种数据。图17示出用于汇集并评价利用mas系统100的模拟结果的结构。
291.mas系统100在各处具备存储通过模拟得到的数据的日志的数据记录器。在代理模拟器200中,设置有数据记录器250、260、270、280。数据记录器250存储发送接收控制器210内的数据日志(控制器日志)。数据记录器260存储3d物理引擎220内的数据日志(3d物理引擎日志)。数据记录器270存储服务系统客户端模拟器230内的数据日志(服务模拟日志)。数据记录器280存储模拟器核240内的数据日志(模拟核日志)。
292.在中心控制器300中,设置有数据记录器330、340。数据记录器330存储移动消息调度器310内的数据日志(移动消息调度器日志)。数据记录器340存储模拟指挥器320内的数据日志(指挥器日志)。
293.在后端服务器400中,设置有数据记录器410。数据记录器410存储后端服务器400
内的数据日志(服务系统日志)。
294.在模拟被中断的情况下,模拟指挥器320通过使用存储于上述各数据记录器的数据日志,能够从过去的任意的时间点返回并再启动模拟。
295.另外,mas系统100具备服务系统日志汇集部500、代理移动日志汇集部510、模拟核日志汇集部520、资产信息数据库530、时空数据库540、以及观察器550。它们安装于模拟结果评价用的计算机。
296.在服务系统日志汇集部500中,从数据记录器270、410收集数据日志。在服务系统日志汇集部500中收集的这些数据日志是与服务系统有关的数据日志。能够根据该数据日志,评价是否正确地提供服务。另外,还能够评价如物流机器人的包括服务用资源的运转率的服务提供上的着眼点。
297.在代理移动日志汇集部510中,从数据记录器250、260、330、340收集数据日志。在代理移动日志汇集部510中收集的这些数据日志是与代理的移动有关的数据日志。能够根据该数据日志,确认代理的正常动作。另外,还能够确认有无如代理的重叠的问题。在模拟的途中发生了错误的情况下,能够从数据日志输出模拟内容设想为有效的时间范围。
298.在模拟核日志汇集部520中,从数据记录器280和代理移动日志汇集部510,收集数据日志。在模拟核日志汇集部520中收集的这些数据日志是与模拟的着眼点有关的数据日志。根据该数据日志,如果是关于行人的模拟,则能够评价人的密度,如果是关于机器人的模拟,则能够评价内部的判断结果等着眼点。
299.在资产信息数据库530中,储存有bim/cim数据或者从bim/cim数据变换后的建造物等固定物的三维信息、和各代理的三维信息。
300.在时空数据库540中,储存有模拟用的虚拟数据。基于由服务系统日志汇集部500、代理移动日志汇集部510、以及模拟核日志汇集部520汇集的各数据日志的评价结果被反映到时空数据库540的虚拟数据。
301.观察器550使用储存于资产信息数据库530的固定物或代理的三维信息、和储存于时空数据库540的虚拟数据,将虚拟世界2显示于监视器。
302.5.mas系统的物理结构
303.说明mas系统100的物理结构。图18是示出mas系统100的物理结构的一个例子的图。mas系统100例如能够由配置于同一子网30上的多个计算机10构成。进而,通过利用网关40连接子网30和其他子网32,能够将mas系统100扩大至配置于子网32上的多个计算机10。
304.在图18所示的例子中,作为软件的中心控制器300安装于1个计算机10。但是,也可以使中心控制器300的功能分散于多个计算机10。
305.另外,mas系统100具备多个后端服务器400。在图10所示的例子中,各个后端服务器400安装于各个计算机10。但是,也可以使后端服务器400的功能分散于多个计算机10。另外,也可以通过将1个服务器分割为多个服务器的虚拟化技术,将多个后端服务器400安装到1个计算机10。
306.在图18所示的例子中,在1个计算机10中安装有多个代理模拟器200。作为在1个计算机10之上使多个代理模拟器200独立地动作的手法,能够使用虚拟化技术。作为虚拟化技术,既可以是虚拟机,也可以是容器虚拟化。既可以在1个计算机10中安装同一种类的多个代理模拟器200,也可以安装种类不同的多个代理模拟器200。此外,也可以在1个计算机10
中仅安装1个代理模拟器200。
307.如以上所述,mas系统100并非采用利用单一的计算机的处理,而采用使用多个计算机10的并行分散处理。由此,能够防止由于计算机的处理能力而搭载于虚拟世界2的代理的数受限制、由于计算机的处理能力而由虚拟世界2提供的服务的数受限制。即,根据mas系统100,能够通过并行分散处理实现大规模的模拟。
308.6.其他
309.也可以设置用于从外部观察虚拟世界2的观察用代理。观察用代理例如既可以是如街角照相机的定置物体,也可以是如具备照相机的无人机的移动物体,当然还可以是行人。通过在监视器上连接观察用代理具备的物理引擎的输出,能够以观察用代理的视点观察虚拟世界2。
310.在上述实施方式中,将剩余时间率自身用作用于控制速度比的指标值,但只要是与剩余时间率相关的值,则还能够将其他数值作为指标值。例如,即便是从1减去剩余时间率而得到的值,也能够用作指标值。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献