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

多主体模拟系统的制作方法

2022-12-13 07:27:58 来源:中国专利 TAG:


1.本公开涉及模拟(simulate,仿真)存在多个相互作用的主体(agent,智能体、代理)的对象世界的多主体模拟(mas:multi-agent simulation)技术。


背景技术:

2.专利文献1公开了一种分布处理型模拟器(simulator)。该分布处理型模拟器通过使用多个计算机的分布处理来实现存在于虚拟空间的多个主体的行为的模拟。各计算机的模拟器模拟虚拟空间中的被分配的对象区域内的各主体的行为时,参考其他主体的主体信息来进行模拟。
3.作为表示本公开的技术领域内的申请时的技术水平的文献,还可列举专利文献2和专利文献3。
4.现有技术文献
5.专利文献1:国际公开第2011/018854号
6.专利文献2:国际公开第2015/132893号
7.专利文献3:国际公开第2014/196073号


技术实现要素:

8.发明所要解决的问题
9.考虑模拟存在相互作用的多个主体的对象世界的多主体模拟(multi-agent simulation)。在多主体模拟中,设置多个主体模拟器,多个主体模拟器进行多个主体各自的模拟,且在这些多个主体模拟器间进行消息(message)的交换。为此,设置介于多个主体模拟器之间的中央控制器(center controller)。中央控制器与各主体模拟器进行通信,并将从某个主体模拟器收取的消息发布(转发、传送)给其他主体模拟器。在这种构成中,若所有消息都从中央控制器发布给各主体模拟器,则从中央控制器向主体模拟器整体的通信量会增大。另一方面,若为了抑制通信量而在中央控制器中进行消息的挑选,则中央控制器的处理负荷会增大。
10.本公开的一个目的在于,提供能够从通信量的抑制和处理负荷的抑制的观点对多主体模拟进行灵活运用的技术。
11.用于解决问题的技术方案
12.本公开的一个观点涉及一种多主体模拟系统,其进行对象世界的模拟,对象世界中存在相互作用的多个主体。
13.多主体模拟系统具备:
14.多个主体模拟器,其进行多个主体各自的模拟;以及
15.中央控制器,其与多个主体模拟器进行通信。
16.对象主体是分配给多个主体模拟器中的各个主体模拟器的主体。
17.中央控制器向各个主体模拟器发布表示与对象主体不同的至少一个其他主体的
状态的至少一个发布消息。
18.各个主体模拟器,
19.基于由发布消息表示的其他主体的状态,进行对象主体的模拟而决定对象主体的状态;
20.将表示模拟的结果所得到的对象主体的状态的结果消息发送给中央控制器。
21.中央控制器的工作模式包括第1模式和第2模式,
22.在第1模式下,将从各个主体模拟器收取的结果消息不加挑选地作为新的发布消息进行发布,
23.在第2模式下,将从各个主体模拟器收取的结果消息有选择性地作为新的发布消息进行发布。
24.在中央控制器每单位时间收取的结果消息的数量为阈值以下的情况下,中央控制器选择第1模式。
25.在中央控制器每单位时间收取的结果消息的数量超过阈值的情况下,中央控制器选择第2模式。
26.发明效果
27.根据本公开,中央控制器的工作模式包括不进行消息过滤(message filtering)的第1模式和进行消息过滤的第2模式。中央控制器根据中央控制器每单位时间收取的结果消息的数量,切换第1模式和第2模式。在第1模式下,由于不进行消息过滤,因此能抑制中央控制器中的处理负荷。另一方面,在第2模式下,由于进行消息过滤,因此能有效地削减从中央控制器向主体模拟器整体的通信量。如此,能够从通信量的抑制和处理负荷的抑制的观点进行灵活的运用。
附图说明
28.图1是表示本公开的实施方式涉及的多主体模拟系统的概要的图。
29.图2是表示本公开的实施方式涉及的多主体模拟系统的概要的图。
30.图3是用于说明本公开的实施方式涉及的多主体模拟系统中的消息交换的一例的图。
31.图4是用于说明本公开的实施方式涉及的基于时间观点的消息过滤的一例的图。
32.图5是用于说明本公开的实施方式涉及的基于时间观点的消息过滤的框图。
33.图6是表示本公开的实施方式涉及的与基于时间观点的消息过滤关联的构成例的框图。
34.图7是表示本公开的实施方式涉及的与基于时间观点的消息过滤关联的构成例的框图。
35.图8是用于说明本公开的实施方式涉及的基于空间观点的消息过滤的概要的概念图。
36.图9是用于说明本公开的实施方式涉及的基于空间观点的消息过滤的概要的框图。
37.图10是用于说明本公开的实施方式涉及的基于空间观点的消息过滤的概要的图。
38.图11是表示本公开的实施方式涉及的与基于空间观点的消息过滤关联的第1构成
例的框图。
39.图12是表示本公开的实施方式涉及的与基于空间观点的消息过滤关联的第2构成例的框图。
40.图13是用于说明本公开的实施方式涉及的中央控制器中的模式切换的一例的概念图。
41.图14是表示本公开的实施方式涉及的多主体模拟系统的整体构成和信息流的框图。
42.图15是表示本公开的实施方式涉及的行人主体用的主体模拟器的构成和信息流的框图。
43.图16是表示本公开的实施方式涉及的自主移动体主体用的主体模拟器的构成和信息流的框图。
44.图17是表示本公开的实施方式涉及的vr行人主体用的主体模拟器的构成和信息流的框图。
45.图18是表示本公开的实施方式涉及的路侧传感器主体用的主体模拟器的构成和信息流的框图。
46.图19是表示本公开的实施方式涉及的多主体模拟系统的物理构成的例子的图。
47.标号说明
48.2模拟对象世界(虚拟世界);4主体;10计算机;100多主体模拟系统;200主体模拟器;210收发(发送和接收)控制器;220 3d物理引擎(engine);230服务系统客户端模拟器;240模拟器核(core);300中央控制器;310移动消息分发器(dispatcher);311消息过滤器(filter);312接收队列(queue);313发送队列;314转发部;315消息过滤器;320模拟编排器(conductor);400服务系统用后端服务器(back-end server);mr结果消息;md发布消息;ref1参考信息;ref2参考信息。
具体实施方式
49.以下,参照附图对本公开的实施方式进行说明。
50.1.多主体模拟系统的概要
51.使用图1至图3,说明本公开的实施方式涉及的多主体模拟系统(multi-agent simulation system)的概要。以下,将多主体模拟系统简略地记作mas系统。
52.1-1.mas系统的概要
53.图1表示本实施方式的mas系统100的概略构成。mas系统100通过使多个主体4相互作用,模拟作为模拟对象的模拟对象世界2。模拟对象世界2没有特别限定。例如,模拟对象世界2是人与移动体(例如机器人、车辆)共存并能够接受使用移动体提供的各种服务的世界。例如,模拟对象世界2是一个城市(街道)。作为在模拟对象世界2中提供的服务,例如能列举使用自主驾驶车辆的按需公交车(巴士)、定期运行式公交车等移动出行(mobility)服务、和使用自主移动式机器人配送货物(行李)的物流服务。
54.在模拟对象世界2中存在大量且多种类的主体4。构成模拟对象世界2的主体4包括表示移动物体的主体4和表示静止物体的主体4。作为表示为主体4的移动物体,可例示行人、机器人、低速移动出行体、车辆、真实存在的人使用vr(虚拟现实)系统参加的行人、电梯
等。作为表示为主体4的静止物体,可例示包含摄像头(camera)的传感器、自动门等。
55.在图1所示的例子中,模拟对象世界2中存在三个主体4a、4b、4c。其中主体4a、4b表示机器人,主体4c表示行人。此外,主体4a和主体4b虽然同属于机器人这一相同类别,但在大小、形状、行驶速度、动作等方面存在差异。由此,主体4a和主体4b在行人即主体4c能够从它们取得的视觉信息中存在差异。
56.在以下说明中,有时将作为虚拟世界的模拟对象世界2与现实世界区分而称为虚拟世界2。
57.mas系统100具备多个主体模拟器200。主体模拟器200按每个主体4设置,进行各主体4的模拟。在图1所示的例子中,主体模拟器200-a、200-b、200-c分别针对主体4a、4b、4c而设置,进行主体4a、4b、4c各自的模拟。各主体模拟器200具有与作为对象的主体的种类相应的构成差异。例如,与机器人有关的主体4a、4b的主体模拟器200-a、200-b具有彼此相似的构成,而与行人有关的主体4c的主体模拟器200-c具有与主体模拟器200-a、200-b不同的构成。关于按主体4的种类而不同的主体模拟器200的构成,稍后进行详细说明。
58.多个主体模拟器200通过消息的交换而一边使多个主体4相互作用、一边模拟多个主体4的状态。在主体模拟器200间交换的消息包含与主体4在虚拟世界2内的位置/移动有关的信息(移动信息)。移动信息包含关于与主体的位置/移动有关的现状及将来计划的信息。关于现状的信息例如是指在当前时刻的位置、方向、速度和加速度。关于将来计划的信息例如是指在将来时刻的位置、方向、速度和加速度的列表。以下,将在主体模拟器200间交换的与主体4的位置/移动有关的消息称为移动消息。
59.各主体模拟器200基于作为模拟对象的对象主体(自身主体)的周围的主体的状态,运算对象主体(自身主体)的状态。周围主体是存在于自身主体周围并与自身主体相互作用的相互作用主体。而且,表示周围主体的状态的信息是移动消息。各主体模拟器200通过与其他的主体模拟器200交换移动消息,能够掌握周围主体的状态。
60.在图1所示的例子中,主体模拟器200-a根据从主体模拟器200-b、200-c收取到的移动消息,掌握主体4b、4c的状态,并基于主体4b、4c的状态,将主体4a的状态更新。而且,主体模拟器200-a将表示更新后的主体4a的状态的移动消息发送给主体模拟器200-b、200-c。同样的处理也在主体模拟器200-b、200-c中进行。由此,一边使主体4a、4b、4c彼此间相互作用、一边模拟各主体4a、4b、4c的状态。
61.关于由主体模拟器200对主体的状态的更新,有以一定的时间间隔进行更新的方法和在检测到某些事件(event)的情况下进行更新的方法。但是,即使在后一种方法中,若太长时间状态都没有更新则会给周围主体带来大的影响,因此也会每隔一定时间间隔强制地使事件发生以更新状态。由主体模拟器200对主体的状态的更新的时间间隔被称为时间粒度。
62.在作为mas系统100的模拟对象的虚拟世界2中存在大量的主体4。但是,它们的时间粒度并不相同。假设所有主体4的时间粒度相同,那么为了维持mas的执行性能,就需要按照状态变化速度最快的对象来设定各主体4的时间粒度。然而,在该情况下,在对象的状态变化速度慢的主体4中,将会以比所需的时间粒度小的时间粒度进行运算。在mas中,主体4间的相互作用通过移动消息的交换来进行,因此如果时间粒度变小,那么移动消息的发送时间间隔也相应地变短。其结果,作为系统整体,移动消息的量增大,将会浪费计算资源。
63.于是,在mas系统100中,主体4的时间粒度也可以根据主体4的种类而不同。例如,现实世界中的行人的步行速度为1m/sec(米/秒)左右。因此,在主体4为行人的情况下,时间粒度为1sec量级或者100msec(毫秒)量级即可。另一方面,在主体4为机器人的情况下,希望大的话是100msec量级的时间粒度,优选为10msec量级的时间粒度。这是因为,机器人需要比行人更快、更准确的动作。在现实世界中,机器人所要求的动作速度越快,若不以越短的时间间隔进行控制,那么控制本身会变得不成立。这也完全适用于模拟,如果不根据所要求的动作速度来减小时间粒度,就无法模拟被要求的机器人的动作。
64.在图1所示的例子中,虚拟世界2中的机器人主体4a、4b的时间粒度设为20msec,行人主体4c的时间粒度设为100msec。各主体模拟器200-a、200-b、200-c按与所负责的主体4a、4b、4c的时间粒度相应的控制周期执行模拟。此外,虽然图1所示的两个机器人主体4a、4b的时间粒度相同,但是也存在即使是相同种类的主体,根据其目的不同,也会对时间粒度设置有差异的情况。
65.在mas系统100中,通过主体模拟器200间的移动消息的交换来执行模拟。但是,用于模拟的移动消息交换不直接在主体模拟器200之间进行。mas系统100具备与各主体模拟器200进行通信的中央控制器300。移动消息由中央控制器300中继而在主体模拟器200间交换。
66.在图1所示的例子中,中央控制器300接收从主体模拟器200-a输出的移动消息。而且,中央控制器300向主体模拟器200-b、200-c发送主体模拟器200-a的移动消息。同样地,主体模拟器200-b的移动消息由中央控制器300发送给主体模拟器200-a、200-c,主体模拟器200-c的移动消息由中央控制器300发送给主体模拟器200-a、200-b。
67.1-2.mas系统中的移动消息的交换
68.图2表示在mas系统100中进行的移动消息的交换的概要。在mas系统100中,各主体模拟器200并非以同一时间间隔而是以与所模拟的主体的时间粒度相应的时间间隔在主体模拟器200间发送移动消息。假设各主体4a、4b、4c的时间粒度如图1所示,主体模拟器200-a、200-b以20msec的时间间隔发送移动消息,主体模拟器200-c以100msec的时间间隔发送移动消息。
69.从主体模拟器200-a、200-b、200-c接收到移动消息的中央控制器300将接收到的移动消息以照原样的时间间隔通过广播(broadcast)进行发送。由此,对于主体模拟器200-a而言,以20msec的时间间隔被发送来自主体模拟器200-b的移动消息,并且以100msec的时间间隔被发送来自主体模拟器200-c的移动消息。同样地,对于主体模拟器200-b而言,以20msec的时间间隔被发送来自主体模拟器200-a的移动消息,并且以100msec的时间间隔被发送来自主体模拟器200-c的移动消息。另外,对于主体模拟器200-c而言,以20msec的时间间隔被发送来自主体模拟器200-a、200-b的移动消息。
70.如上,在mas系统100中,各主体模拟器200并非以同一发送时间间隔而是以与所模拟的主体4的时间粒度相应的发送时间间隔在主体模拟器200间发送移动消息。由此,能够一边维持mas的执行性能,一边抑制在主体模拟器200间交换的消息量的增大。另外,由于中央控制器300将接收到的移动消息以照原样的时间间隔发送,因此能够防止旧的移动消息比新的移动消息先到达发送目的地的主体模拟器200。再者,通过使用广播作为由中央控制器300发送移动消息的方法,能减轻中央控制器300的负荷。
71.此外,在现实世界中,某个实体当前的状态由与其他相互作用的实体的当前状态的关系决定。由此,为了模拟虚拟世界2中的主体的当前状态,需要得到与相互作用的周围主体的当前状态有关的信息。然而,在mas系统100中,根据所负责的主体的时间粒度的不同,在主体模拟器200之间,发送移动消息的发送时间间隔存在差异。另外,由于移动消息的发送是离散进行的,因此即使在发送时间间隔相同的主体模拟器200之间,也存在移动消息的交换定时(timing)错开(有偏差)的情况。再者,依赖于cpu的处理能力和网络容量,也存在经由中央控制器300的、主体模拟器200间的移动消息的收发产生时间延迟的情况。
72.于是,在mas系统100中,各主体模拟器200模拟所负责的自身主体的当前状态时,执行以下的第1至第6处理。
73.在第1处理中,主体模拟器200基于从中央控制器300发送的移动消息,生成周围主体在移动消息的取得时刻的状态。在第2处理中,主体模拟器200将在第1处理中生成的周围主体的状态存储于存储器。
74.在第3处理中,主体模拟器200根据在第2处理中存储于存储器的周围主体的过去的状态,推定周围主体的当前状态。在存储于存储器的周围主体的过去的状态的数量为两个以上的情况下,主体模拟器200通过基于周围主体最新的两个以上的过去的状态的线性外插,推定周围主体的当前状态。在存储于存储器的周围主体的过去的状态的数量为一个的情况下,主体模拟器200将周围主体的唯一的过去的状态推定为周围主体的当前状态。
75.在第4处理中,主体模拟器200使用在第3处理中推定出的周围主体的当前状态,模拟自身主体的当前状态。在第5处理中,主体模拟器200基于在第4处理中模拟出的自身主体的当前状态,制作移动消息。然后,在第6处理中,主体模拟器200将在第5处理中制作出的移动消息发送给中央控制器300。
76.在mas系统100中,由各主体模拟器200执行如上的处理。由此,即使经由中央控制器300的主体模拟器200间的移动消息的收发存在时间延迟,也能够高精度地模拟各主体的当前状态。另外,即使在主体模拟器200间,移动消息的发送定时存在偏差,也能够高精度地模拟各主体的当前状态。再者,即使根据主体间的时间粒度的不同,在主体模拟器200间,发送移动消息的发送时间间隔存在差异,也能够高精度地模拟各主体的当前状态。
77.1-3.消息交换的一例
78.图3表示在mas系统100中进行的主体模拟器200-a、200-b、200-c间的移动消息的交换的一例。但为了简化说明,省略了在主体模拟器200-a、200-b、200-c间对移动消息的收发进行中继的中央控制器300。假设各主体4a、4b、4c的时间粒度如图1所示,主体模拟器200-a、200-b以20msec的时间间隔发送移动消息,主体模拟器200-c以100msec的时间间隔发送移动消息。
79.在此,在主体模拟器200-a与主体模拟器200-b之间允许12msec的时间延迟。在主体模拟器200-a与主体模拟器200-c之间允许14msec的时间延迟。而且,在主体模拟器200-b与主体模拟器200-c之间允许10msec的时间延迟。
80.各主体模拟器200-a、200-b、200-c在时刻t=0开始进行模拟。但是,作为主体模拟器200-a、200-b、200-c而发挥功能的计算机的内部时钟的时间未必一致。因此,在主体模拟器200-a、200-b、200-c间,模拟的开始时刻有时会产生偏差。在mas系统100中,以模拟的开始时刻的偏差为前提,进行主体模拟器200-a、200-b、200-c间的移动消息的交换。
81.在以下说明中,为了简便,a[t]意味着表示主体4a在时刻t的状态的移动消息。b[t]意味着表示主体4b在时刻t的状态的移动消息。c[t]是表示主体4c在时刻t的状态的移动消息。以下,以时间序列说明由主体模拟器200-a、200-b、200-c进行的处理。
[0082]
首先,从各主体模拟器200-a、200-b、200-c发送表示各主体4a、4b、4c的初始状态的移动消息a[0]、b[0]、c[0]。在初始状态下,各主体模拟器200-a、200-b、200-c无法识别周围主体的存在,因此在不存在周围主体的假定下生成移动消息a[0]、b[0]、c[0]。
[0083]
主体模拟器200-a的下一次发送时刻为时刻t=20。主体模拟器200-a在时刻t=20之前接收移动消息b[0]和c[0]。主体模拟器200-a根据移动消息b[0]识别主体4b在时刻t=0的状态,并将主体4b的时刻t=0的状态推定为主体4b的当前状态。另外,主体模拟器200-a根据移动消息c[0]识别主体4c在时刻t=0的状态,并将主体4c的时刻t=0的状态推定为主体4c的当前状态。主体模拟器200-a通过使用推定出的主体4b、4c的状态进行的模拟,决定主体4a在时刻t=20的状态,并发送移动消息a[20]。
[0084]
主体模拟器200-a的下一次发送时刻为时刻t=40。主体模拟器200-a在时刻t=40之前从主体模拟器200-b新接收移动消息b[20],但没有从主体模拟器200-c接收新的移动消息。主体模拟器200-a根据移动消息b[20]识别主体4b在时刻t=20的状态,并通过基于时刻t=0和时刻t=20的主体4b的状态的线性外插,推定主体4b的当前状态。另外,主体模拟器200-a将主体4c的时刻t=0的状态推定为主体4c的当前状态。主体模拟器200-a通过使用推定出的主体4b、4c的状态进行的模拟,决定主体4a在时刻t=40的状态,并发送移动消息a[40]。
[0085]
主体模拟器200-a的下一次发送时刻为时刻t=60。主体模拟器200-a在时刻t=60之前从主体模拟器200-b新接收移动消息b[40],但没有从主体模拟器200-c接收新的移动消息。主体模拟器200-a通过基于时刻t=20和时刻t=40的主体4b的状态的线性外插,推定主体4b的当前状态。另外,主体模拟器200-a将主体4c的时刻t=0的状态推定为主体4c的当前状态。主体模拟器200-a通过使用推定出的主体4b、4c的状态进行的模拟,决定主体4a在时刻t=60的状态,并发送移动消息a[60]。
[0086]
主体模拟器200-a的下一次发送时刻为时刻t=80。主体模拟器200-a在时刻t=80之前从主体模拟器200-b新接收移动消息b[60],但没有从主体模拟器200-c接收新的移动消息。主体模拟器200-a通过基于时刻t=40和时刻t=60的主体4b的状态的线性外插,推定主体4b的当前状态。另外,主体模拟器200-a将主体4c的时刻t=0的状态推定为主体4c的当前状态。主体模拟器200-a通过使用推定出的主体4b、4c的状态进行的模拟,决定主体4a在时刻t=80的状态,并发送移动消息a[80]。
[0087]
主体模拟器200-a的下一次发送时刻为时刻t=100。主体模拟器200-a在时刻t=100之前从主体模拟器200-b新接收移动消息b[80],但没有从主体模拟器200-c接收新的移动消息。主体模拟器200-a通过基于时刻t=60和时刻t=80的主体4b的状态的线性外插,推定主体4b的当前状态。另外,主体模拟器200-a将主体4c的时刻t=0的状态推定为主体4c的当前状态。主体模拟器200-a通过使用这样推定出的主体4b、4c的状态进行的模拟,决定主体4a在时刻t=100的状态,并发送移动消息a[100]。
[0088]
主体模拟器200-a的下一次发送时刻为时刻t=120。主体模拟器200-a在时刻t=120之前从主体模拟器200-b新接收移动消息b[100],也从主体模拟器200-c新接收移动消
息c[100]。主体模拟器200-a根据移动消息b[100]识别主体4b在时刻t=100的状态,通过基于时刻t=80和时刻t=100的主体4b的状态的线性外插,推定主体4b的当前状态。另外,主体模拟器200-a根据移动消息c[100]识别主体4c在时刻t=100的状态,通过基于时刻t=0和时刻t=100的主体4c的状态的线性外插,推定主体4c的当前状态。主体模拟器200-a通过使用这样推定出的主体4b、4c的状态进行的模拟,决定主体4a在时刻t=120的状态,并发送移动消息a[120]。
[0089]
主体模拟器200-b的处理与主体模拟器200-a的情况是同样的。主体模拟器200-b决定主体4b在时刻t=20、40、60、80、100、120、140的状态。而且,主体模拟器200-b发送表示各个时刻的状态的移动消息b[20]、b[40]、b[60]、b[80]、b[100]、b[120]、b[140]。
[0090]
主体模拟器200-c的下一次发送时刻为时刻t=100。主体模拟器200-c在时刻t=100之前从主体模拟器200-a接收移动消息a[0]、a[20]、a[40]、a[60]、a[80]。主体模拟器200-c通过基于主体4a的最新的两个过去的状态、即时刻t=60和时刻t=80的状态的线性外插,推定主体4a的当前状态。另外,主体模拟器200-c在时刻t=100之前从主体模拟器200-b接收移动消息b[0]、b[20]、b[40]、b[60]、b[80]。主体模拟器200-c通过基于主体4b的最新的两个过去的状态、即时刻t=60和时刻t=80的状态的线性外插,推定主体4b的当前状态。主体模拟器200-c通过使用这样推定出的主体4a、4b的状态进行的模拟,决定主体4c在时刻t=100的状态。而且,主体模拟器200-c发送移动消息c[100]。
[0091]
2.消息过滤
[0092]
以下,将分配给各主体模拟器200-i(i=1~n)的主体4称为“对象主体4i”。在此,n为主体模拟器200的总数,是2以上的整数。各主体模拟器200-i进行被分配的对象主体4i的模拟。如上所述,在模拟中使用消息。为方便起见,以下将从中央控制器300向主体模拟器200-i发布的消息称为“发布消息md-i”。另一方面,以下将主体模拟器200-i中的模拟的结果所得到的表示对象主体4i的状态的消息称为“结果消息mr-i”。
[0093]
中央控制器300向主体模拟器200-i发布发布消息md-i。向主体模拟器200-i发布的发布消息md-i包含表示与对象主体4i不同的至少一个其他主体4j(j=1~n,j≠i)的状态的至少一个结果消息mr-j。主体模拟器200-i基于由发布消息md-i表示的其他主体4j的状态,进行对象主体4i的模拟,决定对象主体4i的状态。而且,主体模拟器200-i将表示模拟的结果所得到的对象主体4i的状态的结果消息mr-i发送给中央控制器300。中央控制器300将从主体模拟器200-i收取的结果消息mr-i作为新的发布消息md进行发布(转发)。
[0094]
在这种构成中,若所有消息都从中央控制器300发布给各主体模拟器200-i,则从中央控制器300向主体模拟器200整体的通信量会增大。通信量的不必要的增大会导致通信资源的不必要的消耗。于是,为了抑制通信量的不必要的增大,本实施方式涉及的中央控制器300执行适当挑选作为发布消息md进行发布(转发)的结果消息mr的处理。以下将这种处理称为“消息过滤”。
[0095]
以下,对本实施方式涉及的消息过滤进行说明。特别对基于时间观点的消息过滤和基于空间观点的消息过滤这两种进行详细说明。
[0096]
2-1.基于时间观点的消息过滤
[0097]
2-1-1.概要
[0098]
首先,对基于时间观点的消息过滤进行说明。如上所述,多个主体模拟器200可能
包括处理时间间隔(时间粒度)不同的主体模拟器。在该情况下,针对处理时间间隔比较长的主体模拟器200,无需将所有结果消息mr都作为发布消息md进行发布,也可以进行消息过滤。
[0099]
作为一例,考虑上述图3中示出的情形。主体模拟器200-a的处理时间间隔ta为20msec。主体模拟器200-b的处理时间间隔tb为20msec。主体模拟器200-c的处理时间间隔tc为100msec。也即是说,主体模拟器200-c的处理时间间隔tc比较长。该主体模拟器200-c从主体模拟器200-a收取移动消息a[0]、a[20]、a[40]、a[60]、a[80],从主体模拟器200-b收取移动消息b[0]、b[20]、b[40]、b[60]、b[80]。然而,对象主体4c的模拟所使用的是移动消息a[60]、a[80]、b[60]、b[80]。其他移动消息a[0]、a[20]、a[40]、b[0]、b[20]、b[40]是模拟中不需要的。即,向处理时间间隔tc长的主体模拟器200-c发布移动消息a[0]、a[20]、a[40]、b[0]、b[20]、b[40],使得通信量不必要地增大。
[0100]
于是,如图4所示,中央控制器300进行消息过滤。即,中央控制器300虽然从主体模拟器200-a接收移动消息a[0]、a[20]、a[40]、a[60]、a[80],但不将它们中的移动消息a[0]、a[20]、a[40]发布给主体模拟器200-c,而是选择性地将移动消息a[60]、a[80]发布(转发)给主体模拟器200-c。同样地,中央控制器300虽然从主体模拟器200-b接收移动消息b[0]、b[20]、b[40]、b[60]、b[80],但不将它们中的移动消息b[0]、b[20]、b[40]发布给主体模拟器200-c,而是选择性地将移动消息b[60]、b[80]发布(转发)给主体模拟器200-c。由此,能抑制通信量的不必要的增大,抑制通信资源的不必要的消耗。此外,即使进行这种消息过滤,主体模拟器200-c中的模拟精度也没有变化。
[0101]
概括如下。考虑图5所示的两个主体模拟器200、也即是说第1主体模拟器200-x和第2主体模拟器200-y。第1主体模拟器200-x以第1处理时间间隔tx进行第1主体(对象主体)4x的模拟。另一方面,第2主体模拟器200-y以第2处理时间间隔ty进行第2主体(对象主体)4y的模拟。第2处理时间间隔ty比第1处理时间间隔tx长。在该情况下,中央控制器300将每单位时间向第2主体模拟器200-y发布的第2发布消息md-y的数量设定得少于每单位时间向第1主体模拟器200-x发布的第1发布消息md-x的数量。由此,能抑制通信量的不必要的增大。
[0102]
更详细而言,第1主体模拟器200-x将与第1主体4x有关的第1结果消息mr-x以与第1处理时间间隔tx相应的第1频率发送给中央控制器300。中央控制器300以与第1处理时间间隔tx相应的第1频率接收第1结果消息mr-x。然而,无需以相同的第1频率向处理时间间隔长的第2主体模拟器200-y发布第1结果消息mr-x。针对第2主体模拟器200-y,只要以与第2处理时间间隔ty相应的第2频率发布第1结果消息mr-x就足够。与第2处理时间间隔ty相应的第2频率低于与第1处理时间间隔tx相应的第1频率。中央控制器300选择从第1主体模拟器200-x收取的第1结果消息mr-x的一部分作为第2发布消息md-y,并将选择出的第2发布消息md-y发布给第2主体模拟器200-y。也即是说,中央控制器300以比第1频率低的第2频率将第2发布消息md-y发布给第2主体模拟器200-y。
[0103]
第2主体模拟器200-y以第2处理时间间隔ty决定第2主体4y的状态。中央控制器300选择从第1主体模拟器200-x收取的第1结果消息mr-x的一部分作为第2发布消息md-y。此时,中央控制器300优选以至少包含在第2主体模拟器200-y决定第2主体4y的状态的定时之前的最新的第1结果消息mr-x的方式选择第2发布消息md-y(参照图4)。在图4所示的例子
中,选择了最新的两个第1结果消息mr-x(例:a[60]、a[80])作为第2发布消息md-y。通过以至少包含最新的第1结果消息mr-x的方式选择第2发布消息md-y,从而第2主体模拟器200-y中的与第2主体4y有关的模拟精度提高。
[0104]
第2主体模拟器200-y将与第2主体4y有关的第2结果消息mr-y以与第2处理时间间隔ty相应的第2频率发送给中央控制器300。中央控制器300以与第2处理时间间隔ty相应的第2频率接收第2结果消息mr-y。中央控制器300也可以将所有第2结果消息mr-y作为第1发布消息md-x发布给第1主体模拟器200-x。
[0105]
中央控制器300保持有表示各主体模拟器200-i中的处理时间间隔的“参考信息ref1”。例如,各主体模拟器200-i中的处理时间间隔被预先设定,参考信息ref1被预先提供给中央控制器300。基于该参考信息ref1,中央控制器300掌握各主体模拟器200-i中的处理时间间隔,调整向各主体模拟器200-i发布的发布消息md。也即是说,中央控制器300根据各主体模拟器200-i中的处理时间间隔,挑选向各主体模拟器200-i发布的发布消息md。
[0106]
2-1-2.构成例
[0107]
图6是表示与基于时间观点的消息过滤关联的构成例的框图。在图6所示的例子中,中央控制器300包括多个消息过滤器311-1~311-n。多个消息过滤器311-1~311-n分别针对多个主体模拟器200-1~200-n而设置,进行与多个主体模拟器200-1~200-n有关的消息过滤。即,多个消息过滤器311-1~311-n分别调整向多个主体模拟器200-1~200-n发布的发布消息md-1~md-n的数量。
[0108]
更详细而言,多个消息过滤器311-1~311-n分别保持有与多个主体模拟器200-1~200-n的处理时间间隔t1~tn有关的信息(参考信息ref1)。消息过滤器311-i基于处理时间间隔ti的信息,调整向主体模拟器200-i发布的发布消息md-i的数量。在图5所示的例子的情况下,第1消息过滤器311-x基于第1处理时间间隔tx的信息,调整向第1主体模拟器200-x发布的第1发布消息md-x的数量。第2消息过滤器311-y基于第2处理时间间隔ty的信息,调整向第2主体模拟器200-y发布的第2发布消息md-y的数量。各消息过滤器311-i包括用于调整发布消息md-i的数量的消息队列。
[0109]
图7表示了主体模拟器200和消息过滤器311的配置的一例。多个消息过滤器311-1~311-n配置在同一子网内。该同一子网内也可以存在主体模拟器200。存在于同一子网内的主体模拟器200通过广播将结果消息mr发送给多个消息过滤器311-1~311-n。存在于同一子网外的主体模拟器200经由网关40连接于该子网。网关40从该主体模拟器200收取结果消息mr,并将收取到的结果消息mr通过广播发送给多个消息过滤器311-1~311-n。通过利用广播,能够高效地将结果消息mr分配给各消息过滤器311-i。
[0110]
2-1-3.效果
[0111]
如上所述,在一个实施方式中,中央控制器300基于各主体模拟器200-i的处理时间间隔ti,进行消息过滤。更详细而言,中央控制器300将每单位时间向处理时间间隔比较长的主体模拟器200发布的发布消息md的数量设定得较少。由此,从中央控制器300向主体模拟器200发布的消息量整体上被削减。即,能抑制通信量的不必要的增大,抑制通信资源的不必要的消耗。
[0112]
2-2.基于空间观点的消息过滤
[0113]
2-2-1.概要
[0114]
接着,对基于空间观点的消息过滤进行说明。模拟对象世界2中的主体4间的距离各式各样。在离得远的主体4之间,无需交换所有的消息,也可以进行消息过滤。
[0115]
在此,主体4间的距离短意味着主体4间的相互作用的程度高,主体4间的距离长意味着主体4间的相互作用的程度低。主体4间的距离也可以说是主体4间的相互作用的程度的倒数。例如,在两个主体4处于视距环境(line of sight)的情况下,使用两个主体4间的“直线距离(欧几里得距离)”或者“曼哈顿距离”。
[0116]
两个主体4处于非视距环境(non line of sight)的情况下的距离如下。例如,在以看其他主体4为前提的模拟的情况下,由于两个主体4彼此看不到,因此也可以将它们之间的距离视为无限大。作为另一例,在以听其他主体4发出的声音为前提的模拟的情况下,通过光线追踪来模拟声音的传播,将最短光线的长度(最短传播路径长度)用作距离。
[0117]
从各主体模拟器200-i发送给中央控制器300的结果消息mr-i包含各主体4i模拟对象世界2中的最新的位置信息。中央控制器300保持有模拟对象世界2的空间构成信息。基于该空间构成信息和各主体4i的位置信息,中央控制器300能够计算模拟对象世界2中的主体4间的距离。
[0118]
图8以及图9是用于说明基于空间观点的消息过滤的概要的概念图。在此,考虑三个主体4x、4y、4z和三个主体模拟器200-x、200-y、200-z。在模拟对象世界2中,第1主体4x与第3主体4z之间的距离dxz大于第2主体4y与第3主体4z之间的距离dyz。
[0119]
第1主体模拟器200-x进行第1主体(对象主体)4x的模拟。第2主体模拟器200-y进行第2主体(对象主体)4y的模拟。第3主体模拟器200-z进行第3主体(对象主体)4z的模拟。第1主体模拟器200-x将与第1主体4x有关的第1结果消息mr-x发送给中央控制器300。第2主体模拟器200-y将与第2主体4y有关的第2结果消息mr-y发送给中央控制器300。中央控制器300从第1主体模拟器200-x收取第1结果消息mr-x,并将第1结果消息mr-x的至少一部分作为第3发布消息md-z发布给第3主体模拟器200-z。另外,中央控制器300从第2主体模拟器200-y收取第2结果消息mr-y,并将第2结果消息mr-y的至少一部分作为第3发布消息md-z发布给第3主体模拟器200-z。
[0120]
在图8以及图9所示的例子中,第1主体4x与第3主体4z之间的距离dxz大于第2主体4y与第3主体4z之间的距离dyz。在该情况下,中央控制器300将向第3主体模拟器200-z发布第1结果消息mr-x的发布频率设定得低于向第3主体模拟器200-z发布第2结果消息mr-y的发布频率。由此,能抑制通信量的不必要的增大,抑制通信资源的不必要的消耗。此外,即使与远的第1主体4x有关的第1结果消息mr-x的发布频率变低,第3主体模拟器200-z中的模拟精度也不怎么会降低。
[0121]
如图9所示,中央控制器300保持有参考信息ref2。参考信息ref2包含模拟对象世界2的空间构成信息。中央控制器300基于该空间构成信息和结果消息mr所包含的各主体4i的位置信息,能够掌握主体4间的距离。再者,参考信息ref2包含表示主体4间的距离与发布频率的对应关系的函数信息。函数信息按照用户的策略(原则)预先制作。中央控制器300基于该函数信息,设定与主体4间的距离相应的发布频率。
[0122]
2-2-2.分区(partition)划分
[0123]
如图10所示,模拟对象世界2的空间也可以划分为多个分区p(体素(voxel))。分区构成可以是固定的,也可以动态地变动。例如,分区构成也可以根据主体4的疏密而动态设
定。在该情况下,如图10例示的那样,主体4的密度高的区域划分为更多的分区p,各分区p的尺寸变小。分区构成利用周知的空间划分算法来决定。
[0124]
中央控制器300也可以根据分区p间的距离,以分区p为单位进行消息过滤。两个分区p间的距离例如是两个分区p的重心间的距离。作为另一例,两个分区p间的距离是分别属于两个分区p的两点间的距离的最大值。作为又一例,两个分区p间的距离是分别属于两个分区p的两点间的距离的最小值。
[0125]
中央控制器300利用周知的空间划分算法决定分区构成。在上述的参考信息ref2中,除了模拟对象世界2的空间构成信息之外,还追加分区构成的信息。中央控制器300基于参考信息ref2,计算分区p间的距离。再者,参考信息ref2包含表示分区p间的距离与发布频率的对应关系的函数信息。函数信息按照用户的策略预先制作。中央控制器300基于该函数信息,设定与分区p间的距离相应的发布频率。
[0126]
作为一例,考虑图10所示的三个分区px、py、pz。在模拟对象世界2中,第1分区px与第3分区pz之间的距离大于第2分区py与第3分区pz之间的距离。
[0127]
中央控制器300从进行属于第1分区px的各主体4的模拟的各主体模拟器200收取第1结果消息mr-x。另外,中央控制器300从进行属于第2分区py的各主体4的模拟的各主体模拟器200收取第2结果消息mr-y。中央控制器300选择第1结果消息mr-x和第2结果消息mr-y的至少一部分作为对于第3分区pz的第3发布消息md-z。而且,中央控制器300将第3发布消息md-z发布给进行属于第3分区pz的各主体4的模拟的各主体模拟器200。在图10所示的例子中,第1分区px与第3分区pz之间的距离大于第2分区py与第3分区pz之间的距离。在该情况下,中央控制器300把将第1结果消息mr-x作为第3发布消息md-z进行发布的发布频率设定得低于将第2结果消息mr-y作为第3发布消息md-z进行发布的发布频率。
[0128]
例如,如图11所示,中央控制器300包括第1分区接收队列312-x、第2分区接收队列312-y和第3分区发送队列313-z。第1分区接收队列312-x保存从进行属于第1分区px的各主体4的模拟的各主体模拟器200收取的第1结果消息mr-x。第2分区接收队列312-y保存从进行属于第2分区py的各主体4的模拟的各主体模拟器200收取的第2结果消息mr-y。第3分区发送队列313-z保存向进行属于第3分区pz的各主体4的模拟的各主体模拟器200发布的第3发布消息md-z。中央控制器300将保存于第1分区接收队列312-x的第1结果消息mr-x中的所需要的消息转发给第3分区发送队列313-z。另外,中央控制器300将保存于第2分区接收队列312-y的第2结果消息mr-y中的所需要的消息转发给第3分区发送队列313-z。在图10所示的例子中,第1分区px与第3分区pz之间的距离大于第2分区py与第3分区pz之间的距离。在该情况下,中央控制器300将从第1分区接收队列312-x向第3分区发送队列313-z转发第1结果消息mr-x的转发频率设定得低于从第2分区接收队列312-y向第3分区发送队列313-z转发第2结果消息mr-y的转发频率。
[0129]
如此,在模拟对象世界2的空间划分为多个分区p的情况下,以分区p为单位进行消息过滤。由此也能抑制通信量的不必要的增大,抑制通信资源的不必要的消耗。
[0130]
另外,通过以分区p为单位进行消息过滤,能够减轻计算处理负荷。例如,考虑主体4的总数为1000且分区p的总数为10的情况。在按每个主体4进行消息过滤的情况下,为了对主体4的所有的对(pair)计算距离,需要大约106次的计算处理。另一方面,在按每个分区p进行消息过滤的情况下,为了对分区p的所有的对(pair)计算距离所需的计算处理的次数
为90次。从模拟速度以及模拟成本的观点来看,计算处理负荷减轻是优选的。
[0131]
2-2-3.构成例
[0132]
图11是表示与基于空间观点的消息过滤关联的第1构成例的框图。在第1构成例中,中央控制器300设计为基于“publish/subscribe(发布/订阅)模型”进行消息过滤。更详细而言,中央控制器300包括多个接收队列312、多个发送队列313、以及转发部314。
[0133]
多个接收队列312分别针对多个分区p而设置。同样地,多个发送队列313分别针对多个分区p而设置。即,接收队列312和发送队列313按各分区p而设置。各接收队列312保存从进行属于对应的分区p的各主体4的模拟的主体模拟器200收取的结果消息mr。各发送队列313保存向进行属于对应的分区p的各主体4的模拟的主体模拟器200发布的发布消息md。
[0134]
各主体模拟器200-i将与主体4i有关的结果消息mr-i发送给中央控制器300(publish)。该结果消息mr-i包含主体4i在模拟对象世界2中的位置信息。中央控制器300基于主体4i的位置信息和分区构成,通过决策树等手段,识别主体4i所属的分区p。即,中央控制器300通过决策树等手段,将结果消息mr-i分摊给与主体4i所属的分区p对应的接收队列312。
[0135]
另外,各主体模拟器200-i从中央控制器300取得与主体4i有关的发布消息md-i(subscribe)。例如,各主体模拟器200-i基于主体4i的位置信息和分区构成,通过决策树等手段,识别主体4i所属的分区p。即,各主体模拟器200-i通过决策树等手段,识别保存有与主体4i有关的发布消息md-i的发送队列313。而且,各主体模拟器200-i从该发送队列313取得与主体4i有关的发布消息md-i(pull)。此外,subscribe的方式不限于pull(拉)方式。作为另一例,也可以进行push(推)方式的subscribe。
[0136]
转发部314将保存于各接收队列312的结果消息mr中的所需要的消息转发给需要的发送队列313。该转发部314的功能根据上述消息过滤的观点来设定。即,转发部314对接收队列312和发送队列313的每个组合,根据分区p间的距离来设定结果消息mr的转发频率。如上所述,参考信息ref2包含分区构成的信息以及表示分区p间的距离与发布频率的对应关系的函数信息。中央控制器300能够基于该参考信息ref2,设定转发部314的功能。
[0137]
在上述的图10所示的例子中,第1分区px与第3分区pz之间的距离大于第2分区py与第3分区pz之间的距离。在该情况下,中央控制器300将从第1分区接收队列312-x向第3分区发送队列313-z转发第1结果消息mr-x的转发频率设定得低于从第2分区接收队列312-y向第3分区发送队列313-z转发第2结果消息mr-y的转发频率。此外,从第3分区接收队列312-z向第3分区发送队列313-z的转发频率最高。
[0138]
图12是表示与基于空间观点的消息过滤关联的第2构成例的框图。在第2构成例中,中央控制器300包括多个消息过滤器315-1~315-n。多个消息过滤器315-1~315-n分别针对多个主体模拟器200-1~200-n而设置,进行与多个主体模拟器200-1~200-n有关的消息过滤。即,多个消息过滤器315-1~315-n分别调整向多个主体模拟器200-1~200-n发布的发布消息md-1~md-n的数量。
[0139]
更详细而言,各消息过滤器315-i从多个主体模拟器200-1~200-n收取结果消息mr-1~mr-n。各结果消息mr包含各主体4的位置信息。另外,各消息过滤器315-i保持有参考信息ref2(空间构成信息、函数信息)。各消息过滤器315-i基于参考信息ref2(空间构成信息)和结果消息mr所包含的位置信息,计算对象主体4i与其他主体4之间的距离。再者,各消
息过滤器315-i基于参考信息ref2(函数信息),对每个结果消息mr-1~mr-n设定与距离相应的发布频率。而且,各消息过滤器315-i按照设定的发布频率,将结果消息mr-1~mr-n作为发布消息md-i向主体模拟器200-i发布。各消息过滤器315-i包括用于调整发布消息md-i的数量的消息队列。
[0140]
作为主体模拟器200和消息过滤器315的配置例,可列举上述的图7所示的例子。
[0141]
2-2-4.效果
[0142]
如上所述,在一个实施方式中,中央控制器300基于主体4间的距离,进行消息过滤。更详细而言,中央控制器300在进行离得远的主体4的模拟的主体模拟器200间,将发布消息md的发布频率设定得较低。由此,从中央控制器300向主体模拟器200发布的消息量整体上被削减。即,能抑制通信量的不必要的增大,抑制通信资源的不必要的消耗。
[0143]
模拟对象世界2的空间也可以划分为多个分区p(参照图10)。在该情况下,以分区p为单位进行消息过滤(参照图11)。在该情况下,也能抑制通信量的不必要的增大,抑制通信资源的不必要的消耗。再者,通过以分区p为单位进行消息过滤,能够减轻计算处理负荷。从模拟速度以及模拟成本的观点来看,计算处理负荷减轻是优选的。
[0144]
2-3.模式切换
[0145]
中央控制器300也可以构成为能够将消息过滤开启/关闭(on/off)。在该情况下,中央控制器300的工作模式包括不进行消息过滤的“第1模式”和进行消息过滤的“第2模式”。在第1模式下,中央控制器300将从各主体模拟器200收取的结果消息mr不加挑选地作为新的发布消息md进行发布。另一方面,在第2模式下,中央控制器300将从各主体模拟器200收取的结果消息mr有选择性地作为新的发布消息md进行发布。
[0146]
中央控制器300根据状况在第1模式与第2模式之间切换工作模式。例如,中央控制器300从“通信量的抑制”与“中央控制器300中的处理负荷的抑制”的平衡的观点进行模式切换。
[0147]
图13是用于说明中央控制器300中的模式切换的一例的概念图。在图13所示的例子中,基于中央控制器300每单位时间收取的结果消息mr的数量,中央控制器300进行模式切换。
[0148]
更详细而言,在中央控制器300每单位时间收取的结果消息mr的数量少的情况下,即使将结果消息mr原样作为发布消息md进行发布,该发布消息md也不会压迫通信容量。于是,在中央控制器300每单位时间收取的结果消息mr的数量为阈值以下的情况下,中央控制器300选择不进行消息过滤的第1模式。具体而言,中央控制器300将上述第2-1节或者第2-2节中说明的消息过滤的功能关闭。由于不进行消息过滤,因此能抑制中央控制器300中的处理负荷。
[0149]
另一方面,在中央控制器300每单位时间收取的结果消息mr的数量多的情况下,若将结果消息mr原样作为发布消息md进行发布,则从中央控制器300向主体模拟器200整体的通信量会增大。于是,在中央控制器300每单位时间收取的结果消息mr的数量超过阈值的情况下,中央控制器300选择进行消息过滤的第2模式。此时,消息过滤既可以基于时间观点进行(参照第2-1节),也可以基于空间观点进行(参照第2-2节)。由于进行消息过滤,因此能有效削减从中央控制器300向主体模拟器200整体的通信量。
[0150]
在进行模式切换时,中央控制器300也可以指示mas系统100整体将模拟暂时中断。
模拟暂停后,中央控制器300执行模式切换。各主体模拟器200在恢复准备就绪后,通知中央控制器300恢复就绪。中央控制器300在从所有主体模拟器200收到恢复就绪时,指示再次开始模拟。
[0151]
mas系统100的用户也可以指示中央控制器300进行模式切换。例如,用户指示中央控制器300暂时中断模拟。模拟暂停后,用户改写指定工作模式的模式设定文件。之后,用户指示中央控制器300再次开始模拟。
[0152]
如上所述,在一个实施方式中,中央控制器300的工作模式包括不进行消息过滤的第1模式和进行消息过滤的第2模式。中央控制器300根据状况,切换第1模式和第2模式。由此,能够从通信量的抑制和处理负荷的抑制的观点进行灵活的运用。
[0153]
3.mas系统的整体构成例
[0154]
以下,使用图14,对mas系统100的整体构成和信息流进行说明。如图14所示,mas系统100具备多个主体模拟器200、一个中央控制器300、以及多个服务系统用的后端服务器400。详情后述,它们分散地设置于多个计算机。也即是说,mas系统100是以基于多个计算机的并列分布式处理为前提的系统。
[0155]
中央控制器300具备移动消息分发器310和模拟编排器320作为其功能。中央控制器300是安装于计算机的应用软件。移动消息分发器310和模拟编排器320是构成应用软件的程序。中央控制器300虽然也能与一个或多个主体模拟器200共用作为硬件的计算机,但优选为专用一个计算机。
[0156]
移动消息分发器310对主体模拟器200间的移动消息的收发进行中继。在主体模拟器200与移动消息分发器310之间由实线所示的信息流表示了移动消息流。中央控制器300所具备的上述的移动消息的交换功能由移动消息分发器310承担。移动消息分发器310在与构成mas系统100的所有主体模拟器200之间进行通信。另外,移动消息分发器310具备上述的消息过滤的功能。
[0157]
模拟编排器320进行各主体模拟器200的初始设定。另外,模拟编排器320通过在与主体模拟器200之间的模拟控制消息的交换,控制由主体模拟器200进行的模拟。在主体模拟器200与模拟编排器320之间由虚线所示的信息流是模拟控制消息流。模拟编排器320在与构成mas系统100的所有主体模拟器200之间进行通信,交换模拟控制消息。与移动消息经由移动消息分发器310在多个主体模拟器200间被交换不同,模拟控制消息在模拟编排器320与各个主体模拟器200之间个别地交换。通过模拟控制消息的交换,例如控制模拟速度、模拟的停止、模拟的休止、模拟的再次开始以及模拟的时间粒度。模拟速度以mas系统100为整体来控制,与此相对,模拟的停止、模拟的休止、模拟的再次开始以及模拟的时间粒度按每个主体模拟器200来控制。
[0158]
后端服务器400是与在现实世界的服务系统中实际使用的服务器相同的后端服务器。通过将现实世界的后端服务器400带入到虚拟世界,能够高精度地模拟由服务系统提供的服务。作为在mas系统100中模拟的服务,例如能列举使用自主驾驶车辆的按需公交车、定期运行式公交车等移动出行服务、和使用自主移动式机器人配送货物的物流服务。另外,在mas系统100中模拟的服务例如是用户通过在用户终端操作服务应用(service app)而能够利用的服务。
[0159]
mas系统100具备不同的服务系统用的多个后端服务器400,能够在虚拟世界2中同
时模拟多种服务。服务的模拟通过在后端服务器400与主体模拟器200之间的服务消息的交换来进行。在主体模拟器200与后端服务器400之间由点线所示的信息流表示了服务消息流。各后端服务器400在与和服务的提供相关的主体模拟器200之间交换服务消息。
[0160]
被交换的服务消息的内容根据主体模拟器200负责的主体的种类而不同。例如,在主体为利用服务的用户(行人)的情况下,后端服务器400从主体模拟器200接收包含服务利用信息的服务消息,并将包含服务提供状态信息的服务消息发送给主体模拟器200。服务利用信息是指关于与用户的服务系统的利用有关的现状及将来计划的信息,包含当前的利用状态和基于应用操作的输入信息。服务提供状态信息是指与服务系统中的用户的状态有关的信息,是通过用户终端的服务应用所提供的信息。
[0161]
在主体为提供服务所使用的自主机器人和/或自主车辆的情况下,后端服务器400从主体模拟器200接收包含动作状态信息的服务消息,并将包含动作指示信息的服务消息发送给主体模拟器200。动作状态信息是指与自主机器人和/或自主车辆的现状及将来计划有关的信息。与现状有关的信息例如是指搭载传感器的状态、测定数据、搭载致动器的状态、和与行动决定有关的状态。与将来计划有关的信息例如是指将来时刻、致动器的状态、和与行动决定有关的状态的列表。动作指示信息是包含用于使用自主机器人和/或自主车辆提供服务的将来计划的全部或一部分的信息。例如,自主机器人和/或自主车辆应该移动的目标地点和路径包含于动作指示信息。
[0162]
存在于虚拟世界2的主体包括如包括摄像头的路侧传感器和自动门之类的静止物体。例如,在主体为固定摄像头的情况下,后端服务器400从主体模拟器200接收包含要计算自主机器人的位置信息所需的固定摄像头的图像信息的服务消息。另外,在主体为自动门的情况下,后端服务器400将包含用于自主机器人通行的开门指示的服务消息发送给主体模拟器200。
[0163]
另外,后端服务器400在与其他后端服务器400之间基于分别的协定进行服务消息的交换。在后端服务器400间由点线所示的信息流表示了服务消息流。此时被交换的服务消息例如包含各个服务中的用户的利用状态和/或服务的提供状况。通过在多个后端服务器400间交换服务消息,能够使在虚拟世界2中提供的服务彼此协作(联动)。
[0164]
作为多个服务的协作的一例,能列举按需公交车服务和自主机器人代替用户将行李从公交车站搬运到家中的物流服务的协作。在按需公交车服务中,用户能够于期望的时刻在期望的地方从公交车下车。通过使按需公交车服务与物流服务协作,能够使自主机器人在用户抵达之前抵达下车位置,并在下车位置等待用户的抵达。另外,在公交车由于堵塞等而迟到的情况下或在用户晚乘坐了公交车的情况下,通过在后端服务器400间交换服务消息,能够使让自主机器人前往下车位置的时间与用户的抵达时间相符。
[0165]
主体模拟器200根据负责的主体的种类而存在多个种类。例如,存在行人主体用的主体模拟器201、自主机器人/车辆主体用的主体模拟器202、vr行人主体用的主体模拟器203以及路侧传感器主体用的主体模拟器204。以下,主体模拟器200是指这些多种类的主体模拟器201、202、203、204的总称。
[0166]
主体模拟器200具备收发控制器210、3d物理引擎220、服务系统客户端模拟器230以及模拟器核240作为其功能。主体模拟器200是安装于计算机的应用软件。收发控制器210、3d物理引擎220、服务系统客户端模拟器230以及模拟器核240是构成应用软件的程序。
这些功能在主体模拟器201、202、203、204之间不同。在此,对在主体模拟器201、202、203、204之间大致共通的功能进行说明,关于各个主体模拟器201、202、203、204的功能的详情,稍后进行说明。
[0167]
收发控制器210是主体模拟器200与其他程序之间的接口。收发控制器210进行来自移动消息分发器310的移动消息的接收、和向移动消息分发器310的移动消息的发送。但是,在主体模拟器204中,仅进行移动消息的接收。收发控制器210进行来自模拟编排器320的模拟控制消息的接收、和向模拟编排器320的模拟控制消息的发送。另外,收发控制器210进行来自后端服务器400的服务消息的接收、和向后端服务器400的服务消息的发送。但是,在主体模拟器204中,仅进行服务消息的发送。
[0168]
3d物理引擎220基于从其他主体模拟器200接收到的移动消息,推定3维空间中的周围主体的当前状态。使用图3说明的基于周围主体的过去的状态的当前状态的推定是由3d物理引擎220进行的。3d物理引擎220基于周围主体的当前状态,生成由从自身主体的观测所获得的周边信息。另外,3d物理引擎220基于由后述的模拟器核240得到的模拟结果,将3维空间中的自身主体的状态更新,生成表示自身主体的状态的移动消息。但是,在主体模拟器204中,由于负责的主体不动,因此不进行自身主体的状态的更新和移动消息的生成。
[0169]
服务系统客户端模拟器230模拟作为后端服务器400涉及的服务系统的客户端的自身主体的举止。通过收发控制器210接收到的服务消息被输入到服务系统客户端模拟器230。而且,通过服务系统客户端模拟器230生成的服务消息从收发控制器210发送。但是,在主体模拟器204中,仅进行服务消息的生成。
[0170]
模拟器核240模拟下一时间步(time step)中的自身主体的状态。计算自身主体的状态的时间步的时间间隔为上述的时间粒度。模拟器核240中的模拟的内容按主体模拟器200的每个种类而不同。此外,主体模拟器204由于负责的主体不动,不需要模拟自身主体的状态,因此也可以不具有模拟器核240。
[0171]
4.主体模拟器的具体例
[0172]
接着,使用图15至图18,对构成mas系统100的各种类的主体模拟器201、202、203、204的详细构成和信息流进行说明。此外,在图15至图18中,由实线所示的框间的信息流表示了移动消息流。另外,由点线所示的框间的信息流表示了服务消息流。而且,由虚线所示的框间的信息流表示了模拟控制消息流。
[0173]
4-1.行人主体用主体模拟器
[0174]
图15是表示行人主体用的主体模拟器201的构成和信息流的框图。以下,对行人主体用的主体模拟器201的整体构成和各部的详情、以及主体模拟器201中的信息流进行说明。
[0175]
4-1-1.行人主体用主体模拟器的整体构成
[0176]
主体模拟器201具备收发控制器211、3d物理引擎221、服务系统客户端模拟器231以及模拟器核241作为其功能。在概念上,这些功能分别包含于收发控制器210、3d物理引擎220、服务系统客户端模拟器230以及模拟器核240。
[0177]
收发控制器211具备移动消息接收部211a、服务消息接收部211b以及控制消息接收部211c作为接收各种消息的功能。另外,收发控制器211具备移动消息发送部211d、服务消息发送部211e以及控制消息发送部211f作为发送各种消息的功能。再者,收发控制器211
具备模拟动作(工作)控制部211h。构成收发控制器211的各部211a~211h分别是程序或程序的一部分。
[0178]
3d物理引擎221具备周围主体状态更新部221a、视觉信息生成部221b以及自身主体状态更新部221c作为其功能。构成3d物理引擎221的各部221a、221b、221c分别是程序或程序的一部分。
[0179]
服务系统客户端模拟器231具备服务提供状态信息处理部231a和服务利用信息生成部231b作为其功能。构成服务系统客户端模拟器231的各部231a、231b分别是程序或程序的一部分。
[0180]
模拟器核241具备整体移动方针决定部241a、行动决定部241b、下一时间步状态计算部241d以及服务利用行动决定部241e作为其功能。构成模拟器核241的各部241a、241b、241d、241e分别是程序或程序的一部分。
[0181]
4-1-2.收发控制器的详情
[0182]
在收发控制器211中,移动消息接收部211a从移动消息分发器310接收移动消息。移动消息接收部211a将接收到的移动消息输出到3d物理引擎221的周围主体状态更新部221a。
[0183]
服务消息接收部211b从后端服务器400接收服务消息。服务消息接收部211b将接收到的服务消息输出到服务系统客户端模拟器231的服务提供状态信息处理部231a。
[0184]
控制消息接收部211c从模拟编排器320接收模拟控制消息。控制消息接收部211c将接收到的模拟控制消息输出到模拟动作控制部211h。
[0185]
移动消息发送部211d从3d物理引擎221的自身主体状态更新部221c取得包含自身主体的当前状态的移动消息。移动消息发送部211d将取得的移动消息发送给移动消息分发器310。
[0186]
服务消息发送部211e从服务系统客户端模拟器231的服务利用信息生成部231b取得包含服务利用信息的服务消息。服务消息发送部211e将取得的服务消息发送给后端服务器400。
[0187]
控制消息发送部211f从模拟动作控制部211h取得包含主体模拟器201的控制状态的模拟控制消息。控制消息发送部211f将从模拟动作控制部211h取得的模拟控制消息发送给模拟编排器320。
[0188]
模拟动作控制部211h从控制消息接收部211c取得模拟控制消息。模拟动作控制部211h按照模拟控制消息所包含的指示,控制主体模拟器201的模拟动作。例如,在被指示变更模拟的时间粒度的情况下,模拟动作控制部211h将由主体模拟器201进行的模拟的时间粒度从初始值变更为所指示的时间粒度。时间粒度的初始值作为设定值而存储于主体模拟器201。另外,时间粒度的上限值和下限值按主体的每个种类而存储于模拟编排器320。
[0189]
在模拟控制消息的指示内容为模拟速度的情况下,模拟动作控制部211h使3d物理引擎221和/或模拟器核241的动作频率变化而使模拟速度加速或者減速。此外,模拟速度意味着虚拟世界2的时间流相对于现实世界的时间流的速度比。在被指示停止模拟的情况下,模拟动作控制部211h使主体模拟器201的模拟停止。在被指示休止模拟的情况下使模拟休止,在被指示再次开始的情况下使模拟再次开始。模拟动作控制部211h将包含主体模拟器201的当前的控制状态的模拟控制消息输出到控制消息发送部211f。
[0190]
4-1-3.3d物理引擎的详情
[0191]
在3d物理引擎221中,周围主体状态更新部221a从移动消息接收部211a取得移动消息。从移动消息接收部211a取得的移动消息是经由移动消息分发器310从其他主体模拟器送来的移动消息。周围主体状态更新部221a基于取得的移动消息,推定在自身主体周围存在的周围主体的当前状态。
[0192]
在从周围主体的过去的状态推定当前状态的情况下,周围主体状态更新部221a使用日志(log)中保存的周围主体的过去的状态。使用周围主体的过去的状态推定当前状态的方法如使用图3说明的那样。周围主体状态更新部221a将推定出的周围主体的当前状态输出到视觉信息生成部221b,并且更新日志。
[0193]
视觉信息生成部221b从周围主体状态更新部221a取得周围主体的当前状态。视觉信息生成部221b基于周围主体的当前状态,生成由从自身主体的观测所获得的周边信息。由于自身主体为行人,因此由观测获得的周边信息意味着行人的眼睛所捕捉的视觉信息。视觉信息生成部221b将生成的视觉信息输出到模拟器核241的整体移动方针决定部241a、行动决定部241b以及服务利用行动决定部241e。
[0194]
自身主体状态更新部221c从模拟器核241的下一时间步状态计算部241d取得由模拟器核241模拟出的下一时间步中的自身主体的状态。自身主体状态更新部221c基于由模拟器核241得到的模拟结果,将3维空间中的自身主体的状态更新。自身主体状态更新部221c将包含更新后的自身主体的状态的移动消息输出到收发控制器211的移动消息发送部211d。移动消息所包含的自身主体的状态包括本次时间步中的位置、方向、速度和加速度以及下一时间步中的位置、方向、速度和加速度。另外,自身主体状态更新部221c将与更新后的自身主体的状态有关的信息输出到服务系统客户端模拟器231的服务利用信息生成部231b。
[0195]
4-1-4.服务系统客户端模拟器的详情
[0196]
在服务系统客户端模拟器231中,服务提供状态信息处理部231a从服务消息接收部211b取得服务消息。从服务消息接收部211b取得的服务消息包含服务提供状态信息。服务提供状态信息处理部231a对服务提供状态信息进行处理,取得与作为服务系统的用户的自身主体的状态有关的信息、和用户终端的向服务应用的输入项目。与自身主体作为用户的状态有关的信息是提示给用户终端的信息,输入项目是自身主体为了利用服务而被请求输入的信息。服务提供状态信息处理部231a将与自身主体作为用户的状态有关的信息、和用户终端的向服务应用的输入项目输出到模拟器核241的整体移动方针决定部241a以及服务利用行动决定部241e。
[0197]
服务利用信息生成部231b从模拟器核241的服务利用行动决定部241e取得自身主体的服务利用行动的决定结果。另外,服务利用信息生成部231b从3d物理引擎221的自身主体状态更新部221c取得3维空间中的自身主体的状态。服务利用信息生成部231b基于取得的这些信息,生成服务利用信息,并且更新自身主体的服务的利用状态。服务利用信息生成部231b将包含服务利用信息的服务消息输出到收发控制器211的服务消息发送部211e。
[0198]
4-1-5.模拟器核的详情
[0199]
在模拟器核241中,整体移动方针决定部241a从3d物理引擎221的视觉信息生成部221b取得视觉信息。另外,整体移动方针决定部241a从服务系统客户端模拟器231的服务提
供状态信息处理部231a取得与自身主体作为用户的状态有关的信息、和用户终端的向服务应用的输入项目。整体移动方针决定部241a基于取得的这些信息,决定自身主体在虚拟世界2中的整体的移动方针。整体移动方针决定部241a将决定的整体的移动方针输出到行动决定部241b。
[0200]
行动决定部241b从整体移动方针决定部241a取得整体的移动方针,并且从3d物理引擎221的视觉信息生成部221b取得视觉信息。行动决定部241b通过将整体的移动方针和视觉信息输入到移动模型241c来决定自身主体的行动。移动模型241c是基于一定的移动方针对行人怎样根据映入行人眼中的周边状况来移动进行建模而得到的仿真模型。行动决定部241b将决定的自身主体的行动输出到下一时间步状态计算部241d。
[0201]
下一时间步状态计算部241d取得由行动决定部241b决定的自身主体的行动。下一时间步状态计算部241d基于自身主体的行动,计算下一时间步中的自身主体的状态。所计算的自身主体的状态包括下一时间步中的自身主体的位置、方向、速度以及加速度。下一时间步状态计算部241d将计算出的下一时间步中的自身主体的状态输出到3d物理引擎221的自身主体状态更新部221c。
[0202]
服务利用行动决定部241e从3d物理引擎221的视觉信息生成部221b取得视觉信息。另外,服务利用行动决定部241e从服务系统客户端模拟器231的服务提供状态信息处理部231a取得与自身主体作为用户的状态有关的信息、和用户终端的向服务应用的输入项目。服务利用行动决定部241e通过将取得的这些信息输入到行动模型241f来决定自身主体的作为服务系统的用户的行动(服务利用行动)。行动模型241f是对在向用户提示了与服务有关的信息、并请求了向用户终端的服务应用的输入的情况下用户怎样根据映入用户眼中的周边状况来移动进行建模而得到的仿真模型。服务利用行动决定部241e将决定的服务利用行动输出到服务利用信息生成部231b。
[0203]
4-2.自主机器人/车辆主体用主体模拟器
[0204]
图16是表示自主机器人/车辆主体用的主体模拟器202的构成和信息流的框图。自主机器人/车辆主体是指后端服务器400在相关的服务系统中提供服务所使用的自主机器人或者自主车辆的主体。以下,对自主机器人/车辆主体用的主体模拟器202的整体构成和各部的详情、以及主体模拟器202中的信息流进行说明。
[0205]
4-2-1.自主机器人/车辆主体用主体模拟器的整体构成
[0206]
主体模拟器202具备收发控制器212、3d物理引擎222、服务系统客户端模拟器232以及模拟器核242作为其功能。在概念上,这些功能分别包含于收发控制器210、3d物理引擎220、服务系统客户端模拟器230以及模拟器核240。
[0207]
收发控制器212具备移动消息接收部212a、服务消息接收部212b以及控制消息接收部212c作为接收各种消息的功能。另外,收发控制器212具备移动消息发送部212d、服务消息发送部212e以及控制消息发送部212f作为发送各种消息的功能。再者,收发控制器212具备模拟动作控制部212h。构成收发控制器211的各部212a~212h分别是程序或程序的一部分。
[0208]
3d物理引擎222具备周围主体状态更新部222a、传感器信息生成部222b以及自身主体状态更新部222c作为其功能。构成3d物理引擎222的各部222a、222b、222c分别是程序或程序的一部分。
[0209]
服务系统客户端模拟器232具备路径计划用信息接收部232a和动作状态信息生成部232b作为其功能。构成服务系统客户端模拟器232的各部232a、232b分别是程序或程序的一部分。
[0210]
模拟器核242具备整体路径计划部242a、局部路径计划部242b、致动器操作量决定部242c以及下一时间步状态计算部242d作为其功能。构成模拟器核242的各部242a、242b、242c、242d分别是程序或程序的一部分。
[0211]
4-2-2.收发控制器的详情
[0212]
在收发控制器212中,移动消息接收部212a从移动消息分发器310接收移动消息。移动消息接收部212a将接收到的移动消息输出到3d物理引擎222的周围主体状态更新部222a。
[0213]
服务消息接收部212b从后端服务器400接收服务消息。服务消息接收部212b将接收到的服务消息输出到服务系统客户端模拟器232的路径计划用信息接收部232a。
[0214]
控制消息接收部212c从模拟编排器320接收模拟控制消息。控制消息接收部212c将接收到的模拟控制消息输出到模拟动作控制部212h。
[0215]
移动消息发送部212d从3d物理引擎222的自身主体状态更新部222c取得包含自身主体的当前状态的移动消息。移动消息发送部212d将取得的移动消息发送给移动消息分发器310。
[0216]
服务消息发送部212e从服务系统客户端模拟器232的动作状态信息生成部232b取得包含动作状态信息的服务消息。服务消息发送部212e将取得的服务消息发送给后端服务器400。
[0217]
控制消息发送部212f从模拟动作控制部212h取得包含主体模拟器202的控制状态的模拟控制消息。控制消息发送部212f将从模拟动作控制部212h取得的模拟控制消息发送给模拟编排器320。
[0218]
模拟动作控制部212h从控制消息接收部212c取得模拟控制消息。模拟动作控制部212h按照模拟控制消息所包含的指示,控制主体模拟器202的模拟动作。例如,在被指示变更模拟的时间粒度的情况下,模拟动作控制部212h将由主体模拟器202进行的模拟的时间粒度从初始值变更为所指示的时间粒度。时间粒度的初始值作为设定值存储于主体模拟器202。另外,时间粒度的上限值和下限值按主体的每个种类而存储于模拟编排器320。
[0219]
在模拟控制消息的指示内容为模拟速度的情况下,模拟动作控制部212h使3d物理引擎222和/或模拟器核242的动作频率按照所指示的模拟速度变化而使主体模拟器202的运算速度加速或者減速。在被指示停止模拟的情况下,模拟动作控制部212h使主体模拟器202的模拟停止。在被指示休止模拟的情况下使模拟休止,在被指示再次开始的情况下使模拟再次开始。模拟动作控制部212h将包含主体模拟器202的当前的控制状态的模拟控制消息输出到控制消息发送部212f。
[0220]
4-2-3.3d物理引擎的详情
[0221]
在3d物理引擎222中,周围主体状态更新部222a从移动消息接收部212a取得移动消息。从移动消息接收部212a取得的移动消息是经由移动消息分发器310从其他主体模拟器送来的移动消息。周围主体状态更新部222a基于取得的移动消息,推定在自身主体周围存在的周围主体的当前状态。
[0222]
在从周围主体的过去的状态推定当前状态的情况下,周围主体状态更新部222a使用日志中保存的周围主体的过去的状态。使用周围主体的过去的状态推定当前状态的方法如使用图3说明的那样。周围主体状态更新部222a将推定出的周围主体的当前状态输出到传感器信息生成部222b,并且更新日志。
[0223]
传感器信息生成部222b从周围主体状态更新部222a取得周围主体的当前状态。传感器信息生成部222b基于周围主体的当前状态,生成由从自身主体的观测所获得的周边信息。由于自身主体是自主机器人或者自主车辆,因此由观测获得的周边信息意味着由自主机器人或者自主车辆的传感器捕捉的传感器信息。传感器信息生成部222b将生成的传感器信息输出到模拟器核242的整体路径计划部242a以及服务系统客户端模拟器232的动作状态信息生成部232b。
[0224]
自身主体状态更新部222c从模拟器核242的下一时间步状态计算部242d取得由模拟器核242运算出的下一时间步中的自身主体的状态。自身主体状态更新部222c基于由模拟器核242得到的运算结果,将3维空间中的自身主体的状态更新。自身主体状态更新部222c将包含更新后的自身主体的状态的移动消息输出到收发控制器212的移动消息发送部212d。移动消息所包含的自身主体的状态包括本次时间步中的位置、方向、速度和加速度以及下一时间步中的位置、方向、速度和加速度。另外,自身主体状态更新部222c将与更新后的自身主体的状态有关的信息输出到服务系统客户端模拟器232的动作状态信息生成部232b。
[0225]
4-2-4.服务系统客户端模拟器的详情
[0226]
在服务系统客户端模拟器232中,路径计划用信息接收部232a从服务消息接收部212b取得服务消息。从服务消息接收部212b取得的服务消息包含用于服务系统使用自主机器人/车辆提供服务的动作指示信息和与其他服务系统有关的信息。路径计划用信息接收部232a将动作指示信息和其他服务系统信息输出到模拟器核242的整体路径计划部242a。
[0227]
动作状态信息生成部232b从模拟器核242的致动器操作量决定部242c取得自身主体的下一时间步中的致动器操作量。另外,动作状态信息生成部232b从3d物理引擎222的传感器信息生成部222b取得传感器信息,并且从自身主体状态更新部222c取得3维空间中的自身主体的状态。动作状态信息生成部232b基于取得的这些信息,生成表示提供服务所涉及的自身主体的动作状态的动作状态信息。动作状态信息生成部232b将包含动作状态信息的服务消息输出到收发控制器212的服务消息发送部212e。
[0228]
4-2-5.模拟器核的详情
[0229]
在模拟器核242中,整体路径计划部242a从3d物理引擎222的传感器信息生成部222b取得传感器信息。另外,整体路径计划部242a从服务系统客户端模拟器232的路径计划用信息接收部232a取得动作指示信息和其他服务系统信息。整体路径计划部242a基于取得的这些信息,计划虚拟世界2中的自身主体的整体的路径。整体的路径意味着从自身主体的当前位置到目标地点的路径。由于从传感器信息生成部222b和路径计划用信息接收部232a取得的信息每次会发生变化,因此整体路径计划部242a按每一时间步重新制定整体的路径计划。整体路径计划部242a将所决定的整体的路径计划输出到局部路径计划部242b。
[0230]
局部路径计划部242b从整体路径计划部242a取得整体的路径计划。局部路径计划部242b基于整体的路径计划,制定局部的路径计划。局部的路径例如意味着从当前时刻到
预定时间步后的路径、或者从当前位置到预定距离的路径。局部的路径计划例如由自身主体应该前行的位置的集合、和在各位置的速度或者加速度表示。局部路径计划部242b将所决定的局部的路径计划输出到致动器操作量决定部242c。
[0231]
致动器操作量决定部242c从局部路径计划部242b取得局部的路径计划。致动器操作量决定部242c基于局部的路径计划,决定下一时间步中的自身主体的致动器操作量。这里所说的致动器是指控制自身主体的方向、速度以及加速度的致动器。在自身主体是利用车轮行驶的自主机器人或者自主车辆的情况下,例如制动装置、驱动装置、转向装置等致动器成为操作对象。致动器操作量决定部242c将决定的致动器操作量输出到下一时间步状态计算部242d以及服务系统客户端模拟器232的动作状态信息生成部232b。
[0232]
下一时间步状态计算部242d取得由致动器操作量决定部242c决定的致动器操作量。下一时间步状态计算部242d基于致动器操作量,计算下一时间步中的自身主体的状态。所计算的自身主体的状态包括下一时间步中的自身主体的位置、方向、速度以及加速度。下一时间步状态计算部242d将计算出的下一时间步中的自身主体的状态输出到3d物理引擎222的自身主体状态更新部222c。
[0233]
4-3.vr行人主体用主体模拟器
[0234]
图17是表示vr行人主体用的主体模拟器203的构成和信息流的框图。vr行人主体是指用于真实存在的人使用vr(virtual reality)系统参加作为模拟对象的虚拟世界2的行人主体。以下,对vr行人主体用的主体模拟器203的整体构成和各部的详情、以及主体模拟器203中的信息流进行说明。
[0235]
4-3-1.vr行人主体用主体模拟器的整体构成
[0236]
主体模拟器203具备收发控制器213、3d物理引擎223、服务系统客户端模拟器233以及模拟器核243作为其功能。在概念上,这些功能分别包含于收发控制器210、3d物理引擎220、服务系统客户端模拟器230以及模拟器核240。
[0237]
收发控制器213具备移动消息接收部213a、服务消息接收部213b以及控制消息接收部213c作为接收各种消息的功能。另外,收发控制器213具备移动消息发送部213d、服务消息发送部213e以及控制消息发送部213f作为发送各种消息的功能。再者,收发控制器213具备模拟动作控制部213h。构成收发控制器213的各部213a~213h分别是程序或程序的一部分。
[0238]
3d物理引擎223具备周围主体状态更新部223a、视觉信息生成部223b以及自身主体状态更新部223c作为其功能。构成3d物理引擎223的各部223a、223b、223c分别是程序或程序的一部分。
[0239]
服务系统客户端模拟器233具备服务提供状态信息处理部233a和服务利用信息生成部233b作为其功能。构成服务系统客户端模拟器233的各部233a、233b分别是程序或程序的一部分。
[0240]
模拟器核243具备认知判断用信息提示部243a、移动操作受理部243b、下一时间步状态计算部243c以及应用操作受理部243d作为其功能。构成模拟器核243的各部243a、243b、243c、243d分别是程序或程序的一部分。
[0241]
4-3-2.收发控制器的详情
[0242]
在收发控制器213中,移动消息接收部213a从移动消息分发器310接收移动消息。
移动消息接收部213a将接收到的移动消息输出到3d物理引擎223的周围主体状态更新部223a。
[0243]
服务消息接收部213b从后端服务器400接收服务消息。服务消息接收部213b将接收到的服务消息输出到服务系统客户端模拟器233的服务提供状态信息处理部233a。
[0244]
控制消息接收部213c从模拟编排器320接收模拟控制消息。控制消息接收部213c将接收到的模拟控制消息输出到模拟动作控制部213h。
[0245]
移动消息发送部213d从3d物理引擎223的自身主体状态更新部223c取得包含自身主体的当前状态的移动消息。移动消息发送部213d将取得的移动消息发送给移动消息分发器310。
[0246]
服务消息发送部213e从服务系统客户端模拟器233的服务利用信息生成部233b取得包含服务利用信息的服务消息。服务消息发送部213e将取得的服务消息发送给后端服务器400。
[0247]
控制消息发送部213f从模拟动作控制部213h取得包含主体模拟器203的控制状态的模拟控制消息。控制消息发送部213f将从模拟动作控制部213h取得的模拟控制消息发送给模拟编排器320。
[0248]
模拟动作控制部213h从控制消息接收部213c取得模拟控制消息。模拟动作控制部213h按照模拟控制消息所包含的指示,控制主体模拟器203的模拟动作。在vr行人主体参加虚拟世界2的条件不满足的情况下,从模拟编排器320指示主体模拟器203停止模拟。
[0249]
前述的主体模拟器201、202以及后述的主体模拟器204能够根据需要变更模拟速度。然而,在模拟速度变更了的情况下,经由vr行人主体参与到虚拟世界2中的真实的参加者有可能会对与现实世界不同的时间流感到强烈的不适感(违和感)。因此,在mas系统100中,将模拟以实际时间来进行作为参加条件而容许vr行人主体参加到虚拟世界2中。在与现实世界的时间流相比模拟速度加速或者減速的情况下,模拟编排器320使主体模拟器203的模拟停止。模拟动作控制部213h将包含主体模拟器203的当前的控制状态的模拟控制消息输出到控制消息发送部213f。
[0250]
4-3-3.3d物理引擎的详情
[0251]
在3d物理引擎223中,周围主体状态更新部223a从移动消息接收部213a取得移动消息。从移动消息接收部213a取得的移动消息是经由移动消息分发器310从其他主体模拟器送来的移动消息。周围主体状态更新部223a基于取得的移动消息,推定在自身主体周围存在的周围主体的当前状态。
[0252]
在从周围主体的过去的状态推定当前状态的情况下,周围主体状态更新部223a使用日志中保存的周围主体的过去的状态。使用周围主体的过去的状态推定当前状态的方法如使用图3说明的那样。周围主体状态更新部223a将推定出的周围主体的当前状态输出到视觉信息生成部223b,并且更新日志。
[0253]
视觉信息生成部223b从周围主体状态更新部223a取得周围主体的当前状态。视觉信息生成部223b基于周围主体的当前状态,生成由从自身主体的观测所获得的周边信息。由于自身主体为行人,因此由观测获得的周边信息意味着行人的眼睛所捕捉的视觉信息。视觉信息生成部223b将生成的视觉信息输出到模拟器核243的认知判断用信息提示部243a以及移动操作受理部243b。
[0254]
自身主体状态更新部223c从模拟器核243的下一时间步状态计算部243c取得由模拟器核243运算出的下一时间步中的自身主体的状态。自身主体状态更新部223c基于由模拟器核243得到的运算结果,将3维空间中的自身主体的状态更新。自身主体状态更新部223c将包含更新后的自身主体的状态的移动消息输出到收发控制器213的移动消息发送部213d。移动消息所包含的自身主体的状态包括本次时间步中的位置、方向、速度和加速度以及下一时间步中的位置、方向、速度和加速度。另外,自身主体状态更新部223c将与更新后的自身主体的状态有关的信息输出到服务系统客户端模拟器233的服务利用信息生成部233b。
[0255]
4-3-4.服务系统客户端模拟器的详情
[0256]
在服务系统客户端模拟器233中,服务提供状态信息处理部233a从服务消息接收部213b取得服务消息。从服务消息接收部213b取得的服务消息包含服务提供状态信息。服务提供状态信息处理部233a对服务提供状态信息进行处理,取得与作为服务系统的用户的自身主体的状态有关的信息、和用户终端的向服务应用的输入项目。与自身主体作为用户的状态有关的信息是提示给用户终端的信息,输入项目是自身主体为了利用服务而被请求输入的信息。服务提供状态信息处理部233a将与自身主体作为用户的状态有关的信息、和用户终端的向服务应用的输入项目输出到模拟器核243的认知判断用信息提示部243a以及应用操作受理部243d。
[0257]
服务利用信息生成部233b从模拟器核243的应用操作受理部243d取得由经由vr行人主体参与到虚拟世界2中的真实的参加者进行的在vr上的服务应用的操作。另外,服务利用信息生成部233b从3d物理引擎223的自身主体状态更新部223c取得3维空间中的自身主体的状态。服务利用信息生成部233b基于取得的这些信息,生成服务利用信息,并且更新自身主体的服务的利用状态。服务利用信息生成部233b将包含服务利用信息的服务消息输出到收发控制器213的服务消息发送部213e。
[0258]
4-3-5.模拟器核的详情
[0259]
在模拟器核243中,认知判断用信息提示部243a从3d物理引擎223的视觉信息生成部223b取得视觉信息。另外,认知判断用信息提示部243a从服务系统客户端模拟器233的服务提供状态信息处理部233a取得与自身主体作为用户的状态有关的信息、和用户终端的向服务应用的输入项目。取得的这些信息是对于经由vr行人主体参加到虚拟世界2中的真实的参加者而言的认知判断用的信息。认知判断用信息提示部243a通过vr系统将认知判断用的信息提示给真实参加者。
[0260]
移动操作受理部243b从3d物理引擎223的视觉信息生成部223b取得视觉信息。而且,移动操作受理部243b通过vr系统将视觉信息提示给真实参加者,并且受理真实参加者在vr上进行的移动操作。移动操作受理部243b将受理到的真实参加者在vr上进行的移动操作输出到下一时间步状态计算部243c。
[0261]
下一时间步状态计算部243c从移动操作受理部243b取得真实参加者在vr上进行的移动操作。下一时间步状态计算部243c基于真实参加者在vr上进行的移动操作,计算下一时间步中的自身主体的状态。所计算的自身主体的状态包括下一时间步中的自身主体的位置、方向、速度以及加速度。下一时间步状态计算部243c将计算出的下一时间步中的自身主体的状态输出到3d物理引擎223的自身主体状态更新部223c。
[0262]
应用操作受理部243d从3d物理引擎223的视觉信息生成部223b取得视觉信息。另外,应用操作受理部243d从服务系统客户端模拟器233的服务提供状态信息处理部233a取得与自身主体作为用户的状态有关的信息、和用户终端的向服务应用的输入项目。应用操作受理部243d一边通过vr系统将取得的这些信息提示给真实参加者,一边受理真实参加者在vr上进行的服务应用的操作。应用操作受理部243d将受理到的真实参加者在vr上进行的服务应用的操作输出到服务系统客户端模拟器233的服务利用信息生成部233b。
[0263]
4-4.路侧传感器主体用主体模拟器
[0264]
图18是表示路侧传感器主体用的主体模拟器204的构成和信息流的框图。路侧传感器主体是指用于取得自主机器人/车辆主体在虚拟世界2中的位置信息的路侧传感器的主体。由路侧传感器主体取得的自主机器人/车辆主体的位置信息在后端服务器400关联的服务系统中被使用。以下,对路侧传感器主体用的主体模拟器204的整体构成和各部的详情、以及主体模拟器204中的信息流进行说明。
[0265]
4-4-1.路侧传感器主体用主体模拟器的整体构成
[0266]
主体模拟器204具备收发控制器214、3d物理引擎224以及服务系统客户端模拟器234作为其功能。在概念上,这些功能分别包含于收发控制器210、3d物理引擎220以及服务系统客户端模拟器230。主体模拟器204与其他主体模拟器不同,不具备模拟器核。
[0267]
收发控制器214具备移动消息接收部214a以及控制消息接收部214c作为接收各种消息的功能。另外,收发控制器212具备服务消息发送部214e以及控制消息发送部214f作为发送各种消息的功能。再者,收发控制器212具备模拟动作控制部214h。构成收发控制器214的各部214a~214h分别是程序或程序的一部分。
[0268]
3d物理引擎224具备周围主体状态更新部224a以及传感器信息生成部224b作为其功能。构成3d物理引擎224的各部224a、224b分别是程序或程序的一部分。
[0269]
服务系统客户端模拟器234具备服务消息生成部234a作为其功能。构成服务系统客户端模拟器234的服务消息生成部234a是程序或程序的一部分。
[0270]
4-4-2.收发控制器的详情
[0271]
在收发控制器214中,移动消息接收部214a从移动消息分发器310接收移动消息。移动消息接收部214a将接收到的移动消息输出到3d物理引擎224的周围主体状态更新部224a。
[0272]
控制消息接收部214c从模拟编排器320接收模拟控制消息。控制消息接收部214c将接收到的模拟控制消息输出到模拟动作控制部214h。
[0273]
服务消息发送部214e从服务系统客户端模拟器234的服务消息生成部234a取得包含传感器信息的服务消息。服务消息发送部214e将取得的服务消息发送给后端服务器400。
[0274]
控制消息发送部214f从模拟动作控制部214h取得包含主体模拟器204的控制状态的模拟控制消息。控制消息发送部214f将从模拟动作控制部214h取得的模拟控制消息发送给模拟编排器320。
[0275]
模拟动作控制部214h从控制消息接收部214c取得模拟控制消息。模拟动作控制部214h按照模拟控制消息所包含的指示,控制主体模拟器204的模拟动作。例如,在被指示变更模拟的时间粒度的情况下,模拟动作控制部214h将由主体模拟器204进行的模拟的时间粒度从初始值变更为所指示的时间粒度。时间粒度的初始值作为设定值存储于主体模拟器
204。另外,时间粒度的上限值和下限值按主体的每个种类而存储于模拟编排器320。
[0276]
在模拟控制消息的指示内容为模拟速度的情况下,模拟动作控制部214h使3d物理引擎224的动作频率按照所指示的模拟速度变化而使主体模拟器204的运算速度加速或者減速。在被指示停止模拟的情况下,模拟动作控制部214h使主体模拟器204的模拟停止。在被指示休止模拟的情况下使模拟休止,在被指示再次开始的情况下使模拟再次开始。模拟动作控制部214h将包含主体模拟器204的当前的控制状态的模拟控制消息输出到控制消息发送部214f。
[0277]
4-4-3.3d物理引擎的详情
[0278]
在3d物理引擎224中,周围主体状态更新部224a从移动消息接收部214a取得移动消息。从移动消息接收部214a取得的移动消息是经由移动消息分发器310从其他主体模拟器送来的移动消息。周围主体状态更新部224a基于取得的移动消息,推定在自身主体周围存在的周围主体的当前状态。
[0279]
在从周围主体的过去的状态推定当前状态的情况下,周围主体状态更新部224a使用日志中保存的周围主体的过去的状态。使用周围主体的过去的状态推定当前状态的方法如使用图3说明的那样。周围主体状态更新部224a将推定出的周围主体的当前状态输出到传感器信息生成部224b,并且更新日志。
[0280]
传感器信息生成部224b从周围主体状态更新部224a取得周围主体的当前状态。传感器信息生成部224b基于周围主体的当前状态,生成由从自身主体的观测所获得的周边信息。由于自身主体是如摄像头这样的静止型的路侧传感器,因此由观测所获得的周边信息意味着由路侧传感器捕捉的传感器信息。传感器信息生成部224b将生成的传感器信息输出到服务系统客户端模拟器234的服务消息生成部234a。
[0281]
4-4-4.服务系统客户端模拟器的详情
[0282]
在服务系统客户端模拟器234中,服务消息生成部234a从3d物理引擎224的传感器信息生成部224b取得传感器信息。服务消息生成部234a将包含所取得的传感器信息的服务消息输出到收发控制器214的服务消息发送部214e。
[0283]
5.mas系统的物理构成
[0284]
对mas系统100的物理构成进行说明。图19是表示mas系统100的物理构成的一例的图。mas系统100例如能够由配置在同一子网30上的多个计算机10构成。再者,通过利用网关40将子网30与另一子网32连接,能够将mas系统100扩大到配置在子网32上的多个计算机10。
[0285]
在图19所示的例子中,作为软件的中央控制器300安装于一个计算机10。但是,也可以使中央控制器300的功能分散于多个计算机10。
[0286]
另外,mas系统100具备多个后端服务器400。在图19所示的例子中,各个后端服务器400安装于分别的计算机10。但是,也可以使后端服务器400的功能分散于多个计算机10。另外,也可以通过将一个服务器划分为多个服务器的虚拟化技术,在一个计算机10上安装多个后端服务器400。
[0287]
在图19所示的例子中,一个计算机10上安装有多个主体模拟器200。作为使多个主体模拟器200在一个计算机10上独立工作的方法,可以利用虚拟化技术。作为虚拟化技术,既可以为虚拟机,也可以为基于容器的虚拟化。可以在一个计算机10上安装同一种类的多
个主体模拟器200,也可以安装不同种类的多个主体模拟器200。此外,也可以仅在一个计算机10上安装一个主体模拟器200。
[0288]
如上,mas系统100采用使用多个计算机10的并列分布式处理,而并非利用单个计算机的处理。由此,能够防止使虚拟世界2承载的主体的数量因计算机的处理能力而受限和/或由虚拟世界2提供的服务的数量因计算机的处理能力而受限。也即是说,根据mas系统100,能够进行基于并列分布式处理的大规模的模拟。
[0289]
6.其他
[0290]
也可以设置用于从外面观察虚拟世界2的观察用主体。观察用主体例如既可以是如街角摄像头之类的静止物体,也可以是如具备摄像头的无人机之类的移动物体。
再多了解一些

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

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

相关文献