排队行为模拟方法、装置、电子设备及存储介质



1.本发明涉及计算机模拟仿真技术领域,尤其涉及一种排队行为模拟方法、装置、电子设备及存储介质。


背景技术:



2.街边购物排队行为是一种常见的微观人行为,购物排队行为是在非应急情况下的、空旷地带或无通道约束时的、有严格行进次序要求的排队行为。
3.目前,通用的微观人行为模拟算法主要为社会力模型(social force model),社会力模型将行人向某目标行进的过程抽象为目标吸引力、行人之间的作用力、行人和障碍物之间的作用力,在上述作用力的共同作用下,控制行人逐渐向着目标行进。
4.但是,社会力模型面向的是应急状态下的无序人行为模拟,其具有无次序要求和无队形要求的特征,行人之间的通行次序由自身的速度决定,并且,人会聚集在一起,形成拱形拥挤,无法形成一列或几列纵队,自然也无法模拟后续的所有排队购物行为。可见,目前的通用的社会力模型无法模拟街边购物排队行为。


技术实现要素:



5.本发明提供一种排队行为模拟方法、装置、电子设备及存储介质,用以解决现有技术无法模拟街边购物排队行为的问题。
6.本发明提供一种排队行为模拟方法,包括:
7.确定排队队伍的队尾位置
8.控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员
9.在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;
10.基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;
11.基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。
12.根据本发明提供的一种排队行为模拟方法,所述基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度,包括:
13.基于所述前方队伍成员的位置p0,采用公式(1)和公式(2)确定虚拟障碍线的位置:
14.pc=p
0-diru·
(r0+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0015][0016]
其中,所述虚拟障碍线设置在所述当前队伍成员和所述前方队伍成员之间,pc表
征所述虚拟障碍线中与所述前方队伍成员距离最近的点的位置,diru为所述排队队伍的移动方向的单位向量,r0表征所述前方队伍成员的占用半径,d为预设间距,p2和p3分别表征所述虚拟障碍线的两个端点的位置,dir
p
表征所述虚拟障碍线的正方向,s为所述虚拟障碍线的长度;
[0017]
基于所述当前队伍成员的位置和所述虚拟障碍线的位置,通过所述orca模型确定所述当前队伍成员的移动速度。
[0018]
根据本发明提供的一种排队行为模拟方法,所述基于所述当前队伍成员的位置和所述虚拟障碍线的位置,通过所述orca模型确定所述当前队伍成员的移动速度,包括:
[0019]
基于所述当前队伍成员的位置和所述虚拟障碍线的位置,利用公式(3),确定所述orca模型的输出结果
[0020][0021]
其中,表征在所述前方队伍成员a0影响下所述当前队伍成员a1的可选速度范围,τ为预设时间窗口,v表征速度集合,表征a1的最优速度,u表征a0和a1需共同承担的避让责任,m表征a1需承担的避让责任的权重,n为orca半平面的方向;
[0022]
基于所述orca模型的输出结果确定所述当前队伍成员的移动速度。
[0023]
根据本发明提供的一种排队行为模拟方法,所述确定排队队伍的队尾位置,包括:
[0024]
利用公式(4),确定所述排队队伍的队尾位置tail
t

[0025]
tail
t
=p+dir
·
(r
l
+rn+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0026]
其中,p表征所述排队队伍中最后一名队伍成员的位置或所述排队队伍的排队目的地的位置,dir表征所述排队队伍的移动方向,r
l
表征所述最后一名队伍成员的占用半径或所述排队目的地的占用半径,rn表征所述当前行人的占用半径,d为预设间距。
[0027]
根据本发明提供的一种排队行为模拟方法,所述控制所述当前行人基于所述队尾位置进入所述排队队伍,包括:
[0028]
在确定的tail
t
不超越障碍物线的情况下,控制所述当前行人向tail
t
移动,并在到达tail
t
后进入所述排队队伍。
[0029]
根据本发明提供的一种排队行为模拟方法,所述控制所述当前行人基于所述队尾位置进入所述排队队伍,包括:
[0030]
在确定的tail
t
超越障碍物线的情况下,基于所述当前行人的位置,确定甩尾方向dir’;
[0031]
基于dir’,利用公式(5)确定更新后的队尾位置tail
t’:
[0032]
tail
t’=p+dir’·
(r
l
+rn+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0033]
控制所述当前行人向tail
t’移动,并在到达tail
t’后进入所述排队队伍。
[0034]
根据本发明提供的一种排队行为模拟方法,所述基于所述当前行人的位置,确定甩尾方向dir’,包括:
[0035]
在所述当前行人的位置在所述排队队伍的左侧的情况下,确定所述障碍物线的正方向作为所述甩尾方向dir’;
[0036]
在所述当前行人的位置在所述排队队伍的右侧的情况下,确定所述障碍物线的反方向作为所述甩尾方向dir’;
[0037]
其中,所述障碍物线的正方向,为在由所述障碍物线指向所述排队目的地的情况下沿所述障碍物线向左的方向;所述障碍物线的反方向,为在由所述障碍物线指向所述排队目的地的情况下沿所述障碍物线向右的方向。
[0038]
本发明还提供一种排队行为模拟装置,包括:
[0039]
第一确定模块,用于确定排队队伍的队尾位置;
[0040]
第一控制模块,用于控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;
[0041]
第二确定模块,用于在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;
[0042]
第三确定模块,用于基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;
[0043]
第二控制模块,用于基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。
[0044]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述排队行为模拟方法。
[0045]
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述排队行为模拟方法。
[0046]
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述排队行为模拟方法。
[0047]
本发明提供的排队行为模拟方法、装置、电子设备及存储介质,可以对需要加入排队队伍的行人进行模拟,首先确定排队队伍的队尾位置,以控制行人基于队尾位置进入排队队伍,行人在进入排队队伍后成为当前队伍成员,在当前队伍成员存在前方队伍成员的情况下,确定前方队伍成员的位置作为目标点,并基于当前队伍成员的位置和前方队伍成员的位置,通过orca模型确定当前队伍成员的移动速度,以控制当前队伍成员基于移动速度向目标点移动,这样形成的排队队伍可以满足次序要求和队形要求,因此,该方法可以模拟街边购物排队行为。
附图说明
[0048]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049]
图1是本发明提供的排队行为模拟方法的流程示意图之一;
[0050]
图2是本发明提供的排队行为模拟方法中设置的虚拟障碍线的示意图;
[0051]
图3是本发明提供的排队行为模拟方法中确定甩尾方向的示意图之一;
[0052]
图4是本发明提供的排队行为模拟方法中确定甩尾方向的示意图之二;
[0053]
图5是本发明提供的排队行为模拟方法的流程示意图之二;
[0054]
图6是本发明提供的排队行为模拟方法中行人状态转换的示意图;
[0055]
图7是本发明提供的排队行为模拟方法中排队队伍形成的过程示意图;
[0056]
图8是本发明提供的排队行为模拟方法中“走-停”行为及后向传导效应的示意图;
[0057]
图9是本发明提供的排队行为模拟装置的方框示意图;
[0058]
图10是本发明提供的电子设备的结构示意图。
具体实施方式
[0059]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060]
街边购物排队是一种常见的微观人行为,其特点为:
[0061]
(1)在非应急状态下;
[0062]
(2)在空旷地带,没有严格的通道约束;
[0063]
(3)行人有严格的次序约束,通常按照进入队伍的先后顺序依次排队行进;
[0064]
(4)出于社会秩序的需要,排队过程中,后方行人不可超越前方行人,在前方行人停止行进的时候也要停止行进,并保持一定的间距;
[0065]
(5)排队队伍在遇到障碍物的时候,需要拐弯。
[0066]
具体地,街边购物排队是以先到先得的秩序逐渐形成一列纵队,在排队过程中,后方行人不可超越前方的行人,且很多时候是在相对空旷的区域、无严格的通道约束,由排队者(顾客)自发地依据先后顺序排队。因此,不同于紧急情况下无序的拥挤通行排队,不同于有严格通道约束的排队,这种情况下的排队更多的由排队者的行为决定,队伍也会形成独特的自组织特征。
[0067]
目前,通用的微观人行为模拟算法主要有社会力模型和最优相互碰撞避免orca(optimal reciprocal collision avoidance)模型。
[0068]
其中,社会力模型将行人向某目标行进的过程抽象为目标吸引力、行人之间的作用力、行人和障碍物之间的作用力,在上述作用力的共同作用下,逐渐向着目标行进。但社会力模型需要较多的经验参数,且没有考虑行人之间的碰撞避让机制。
[0069]
orca模型以行人之间、行人和障碍物之间不发生碰撞为目标,充分考虑行人之间的避让责任分配,以求解相对最优的行进速度,进而模拟行人朝向某一目标的行进过程。orca模型充分考虑了行人之间的碰撞避让机制,这是该模型的优势。
[0070]
社会力模型和orca模型可以模拟应急状况下的、无序的人拥堵行为,可以重现经典的拱形效应、对向人分流等自组织行为特征。
[0071]
可见,就通用微观人行为模型而言,无论是社会力模型还是orca模型,面向的均是应急状态下的无序人行为模拟,其存在的问题是:
[0072]
(1)无严格的次序控制,行人之间的通行次序由自身的速度决定,速度快者,会逐渐行走在前方;
[0073]
(2)无队形控制,人会聚集在一起,形成拱形拥挤,无法形成一列或几列纵队,自
然也无法模拟后续的所有排队购物行为。
[0074]
因此,就社会力模型或orca模型等通用微观人行为模拟模型而言,无法模拟街边购物排队行为,由于orca模型具有行人的碰撞避让机制,相比于社会力模型更具优势,因此,本发明可以以orca模型为基础,对其进行改进并提出新的算法,以对购物排队行为进行模拟。
[0075]
下面结合附图描述本发明的排队行为模拟方法、装置、电子设备及存储介质。
[0076]
图1是本发明提供的排队行为模拟方法的流程示意图之一,如图1所示,该方法包括步骤101至步骤105;其中:
[0077]
步骤101、确定排队队伍的队尾位置。
[0078]
具体地,上述排队队伍的队尾位置为当前行人需排队的位置。
[0079]
对街边排队行为进行模拟,实际上是对每一个行人如何进入排队队伍,以及对每个进入排队队伍的行人如何运动进行模拟。
[0080]
以街边购物排队行为为例,排队队伍的排队目的地可以为售卖线上的任一购物点,售卖线例如为商业街,购物点例如为某一家店铺的入口。
[0081]
新来的购物者需要从队尾进入购物排队队伍,因此,需要确定出队尾的位置点,并将其作为新来的购物者行进的目标点。
[0082]
需要说明的是,排队队伍的队尾位置并不是固定不变的,而是随着行人不断进入排队队伍,或者排队队伍中的成员不断移动而相应发生变化的。
[0083]
步骤102、控制当前行人基于队尾位置进入排队队伍,以成为当前队伍成员。
[0084]
具体地,在确定排队队伍的队尾位置后,可以控制当前行人基于确定的队尾位置进入排队队伍,并在进入排队队伍后将当前行人作为当前队伍成员,这时,当前行人的状态会由待进入排队队伍的状态going_to_queue_directly,转变为在排队队伍中的状态in_queue。
[0085]
步骤103、在当前队伍成员存在前方队伍成员的情况下,确定前方队伍成员的位置作为目标点。
[0086]
步骤104、基于当前队伍成员的位置和前方队伍成员的位置,通过最优相互碰撞避免orca模型确定当前队伍成员的移动速度。
[0087]
步骤105、基于当前队伍成员的移动速度,通过orca模型控制当前队伍成员向目标点移动。
[0088]
具体地,在当前队伍成员存在前方队伍成员的情况下,即在当前队伍成员的前方存在正在排队的前方队伍成员的情况下,确定前方队伍成员的位置作为目标点,并基于orca模型,确定当前队伍成员的移动速度,以基于当前队伍成员的移动速度,通过orca模型控制当前队伍成员向目标点移动,例如通过orca模型,控制当前队伍成员以确定的当前队伍成员的移动速度向目标点移动。
[0089]
可选地,当前队伍成员可以重复上述步骤103至步骤105,直至当前队伍成员不存在前方队伍成员,即在当前队伍成员的前方不存在正在排队的前方队伍成员,这时说明当前队伍成员已成为排队队伍最前面的队伍成员,则可以更新排队队伍的排队目的地的位置作为当前队伍成员的目标点,并控制当前队伍成员向更新后的目标点移动。
[0090]
当前队伍成员在到达排队目的地的位置的情况下,可以由在排队队伍中的状态
in_queue,转变为购物或结账的状态buying,此时可以控制当前队伍成员处于站立状态,直至购物完成,当前队伍成员在该状态结束后,可以转变为离开排队队伍的状态left_queue,这时当前队伍成员从排队队伍中退出,不再是排队队伍的成员。
[0091]
可以设置上述排队队伍的移动方向,或者称为排队方向,垂直于上述售卖线,或为预先设置的其他方向。
[0092]
本发明实施例中,可以对需要加入排队队伍的行人进行模拟,首先确定排队队伍的队尾位置,以控制行人基于队尾位置进入排队队伍,行人在进入排队队伍后成为当前队伍成员,在当前队伍成员存在前方队伍成员的情况下,确定前方队伍成员的位置作为目标点,并基于当前队伍成员的位置和前方队伍成员的位置,通过orca模型确定当前队伍成员的移动速度,以控制当前队伍成员基于移动速度向目标点移动,这样形成的排队队伍可以满足次序要求和队形要求,因此,该方法可以模拟街边购物排队行为。
[0093]
可选地,基于当前队伍成员的位置和前方队伍成员的位置,通过最优相互碰撞避免orca模型确定当前队伍成员的移动速度,包括:
[0094]
基于前方队伍成员的位置p0,采用公式(1)和公式(2)确定虚拟障碍线的位置:
[0095]
pc=p
0-diru·
(r0+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0096][0097]
其中,虚拟障碍线设置在当前队伍成员和前方队伍成员之间,pc表征虚拟障碍线中与前方队伍成员距离最近的点的位置,diru为排队队伍的移动方向的单位向量,r0表征前方队伍成员的占用半径,d为预设间距,p2和p3分别表征虚拟障碍线的两个端点的位置,dir
p
表征虚拟障碍线的正方向,s为虚拟障碍线的长度;
[0098]
基于当前队伍成员的位置和虚拟障碍线的位置,通过orca模型确定当前队伍成员的移动速度。
[0099]
在实际情况下,购物排队过程要遵循严格的先后次序,由此表现出特殊的leader-follower特征,排在相邻后面的队伍成员作为follower,而排在相邻前方的队伍成员是follower的leader,leader当前时刻的位置是follower下一时刻的目标点;并且,需要设置follower不能超越leader,且follower需要与leader保持合适的间距,并在行动上与leader保持先后的一致性,即leader停止前行,follower也要及时停止前行,而当leader开始行进,follower在保持合适距离的前提下,也需要及时行进。
[0100]
具体地,图2是本发明提供的排队行为模拟方法中设置的虚拟障碍线的示意图,请参考图2,虚拟障碍线为在p2与p3之间设置的障碍线,可见,当前队伍成员a1是前方队伍成员a0的follower,换言之,前方队伍成员a0是当前队伍成员a1的leader,前方队伍成员a0的当前时刻的位置p0可以为当前队伍成员a1的目标点,d为预设间距,设置虚拟障碍线是为了使当前队伍成员a1在向前方队伍成员a0行进的过程中不发生碰撞,且在前方队伍成员a0身后至少保持d的间距,以符合排队的实际情况。
[0101]
之后可以基于orca模型,在现实世界中实际的行人、障碍物的基础上,在前方队伍成员a0和当前队伍成员a1之间增加一个虚拟障碍线,以该虚拟障碍线在预设间距d处阻止当前队伍成员a1继续向前方队伍成员a0靠近,并持续且稳定地维持该间距。
[0102]
需要说明的是,该虚拟障碍线是动态的,会随着前方队伍成员a0位置的变化而动态构建。
[0103]
虚拟障碍线的构建步骤具体如下:
[0104]
设dir为当前队伍成员a1指向前方队伍成员a0的向量,diru(xu,yu)为dir的单位向量,d为预设间距,则前方队伍成员a0身后的点pc为:
[0105]
pc=p
0-diru·
(r0+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0106]
以pc为中心,则虚拟障碍线为经过pc、正方向为dir
p
(-yu,xu)且长度为s的线段,则该线段的端点p2和p3分别可确定为:
[0107][0108]
在构建虚拟障碍线之后,可以基于前方队伍成员的位置p0,采用上述公式(1)和公式(2)确定需要设置的虚拟障碍线的位置,进而可以基于当前队伍成员的位置和虚拟障碍线的位置,通过orca模型确定当前队伍成员的移动速度,以将虚拟障碍线连同现实世界中真实存在的行人邻居、障碍物一起,使用orca最优速度确定算法,确定当前队伍成员a1的移动速度。
[0109]
当前方队伍成员a0行走的时候,虚拟障碍线相应前移,当前队伍成员a1可随之前行;当前方队伍成员a0停止的时候,虚拟障碍线也停止,当前队伍成员a1在虚拟障碍线处停止行进,因此,可使前方队伍成员a0和当前队伍成员a1在保持预设间距d的基础上,二者的停、走等行为也保持一致。
[0110]
可选地,基于所述当前队伍成员的位置和所述虚拟障碍线的位置,通过所述orca模型确定所述当前队伍成员的移动速度,包括:
[0111]
基于当前队伍成员的位置和虚拟障碍线的位置,利用公式(3),确定orca模型的输出结果
[0112][0113]
其中,表征在前方队伍成员a0影响下当前队伍成员a1的可选速度范围,τ为预设时间窗口,v表征速度集合,该速度集合可以是实时计算出来的,这里的速度集合还可以理解为可选速度集合,即满足这个不等式的所有速度集合,表征a1的最优速度,u表征a0和a1需共同承担的避让责任,m表征a1需承担的避让责任的权重,n为orca半平面的方向;
[0114]
基于orca模型的输出结果确定当前队伍成员的移动速度。
[0115]
具体地,因为当前队伍成员a1在排队的时候,不可超越前方队伍成员a0,或者说前方队伍成员a0不需要对当前队伍成员a1做任何避让行为,因此,在排队及队伍移动的过程中,当前队伍成员a1可以全部承担与前方队伍成员a0的碰撞避让责任u;而对于非排队队列中的其他行人,则可以采用完全的对等碰撞避让行为(mu=1/2u)。
[0116]
基于当前队伍成员的位置和虚拟障碍线的位置,可以得到及m等参数,基于这
些参数,利用公式(3),可以确定orca模型的输出结果
[0117][0118]
其中,是在前方队伍成员a0影响下当前队伍成员a1的可选速度范围,v表征速度集合,是前方队伍成员a1的最优速度,τ为某时间窗口,即在τ时间内需要保证前方队伍成员a0和当前队伍成员a1不发生碰撞,u为前方队伍成员a0和当前队伍成员a1需要共同承担的避让责任,即前方队伍成员a0与当前队伍成员a1不发生碰撞所需的最小相对速度变化量,m为当前队伍成员a1需承担的避让责任的权重,n为orca半平面的方向。
[0119]
其中,m可以通过以下公式(6)确定:
[0120][0121]
再基于orca模型的输出结果确定当前队伍成员a1的移动速度。
[0122]
同理,也可以确定orca模型的输出结果即在当前队伍成员a1影响下前方队伍成员a0的可选速度范围,并基于此确定前方队伍成员a0的移动速度。
[0123]
可选地,确定排队队伍的队尾位置,可以包括:
[0124]
利用公式(4),确定排队队伍的队尾位置tail
t

[0125]
tail
t
=p+dir
·
(r
l
+rn+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0126]
其中,p表征排队队伍中最后一名队伍成员的位置或排队队伍的排队目的地的位置,dir表征排队队伍的移动方向,r
l
表征最后一名队伍成员的占用半径或排队目的地的占用半径,rn表征当前行人的占用半径,d为预设间距。
[0127]
具体地,在实际情况下,如果一个新的购物者在t时刻期望进入排队队伍中时,新的购物者会根据当前时刻的排队队伍的走向,确定出最后一个成员身后一段距离d后的位置作为队尾位置tail
t
,并朝该位置行进,故在控制新的购物者的进行这一行为前,需要先确定队尾位置tail
t

[0128]
其中,p和dir的确定方法如下:
[0129]
(1)在排队队伍中没有成员的情况下,以排队目的地的位置为p,例如以购物点的位置为p,以垂直于售卖线的方向为dir,此时r
l
为0;
[0130]
(2)在排队队伍中有1个成员的情况下,以该成员的位置为p,以垂直于购物线的方向为dir;
[0131]
(3)在排队队伍中有2个及以上成员的情况下,以最后一位成员的位置为p,以p与p之前队伍成员连线的方向为dir,此时dir为排队队伍的移动方向。
[0132]
可选地,控制当前行人基于队尾位置进入排队队伍,包括:
[0133]
在确定的tail
t
不超越障碍物线的情况下,控制当前行人向tail
t
移动,并在到达tail
t
后进入排队队伍。
[0134]
具体地,上述障碍物线例如为盲道或墙壁等,在确定的tail
t
不会使排队队伍超越盲道或墙壁等障碍物线的情况下,可以直接控制当前行人向tail
t
移动,并在当前行人到达
tail
t
后进入排队队伍。
[0135]
需要说明的是,当tail
t
不超越障碍物线时,当前行人pn以tail
t
为目标移动,并在后续向队尾行进的过程中,每一个时刻都重新确定位置tail
t
,直至到达队尾,进入排队队伍。由于排队队伍随时可能移动,故tail
t
也可能随时变化。
[0136]
可选地,控制当前行人基于队尾位置进入队伍,包括:
[0137]
在确定的tail
t
超越障碍物线的情况下,基于当前行人的位置,确定甩尾方向dir’;
[0138]
基于dir’,利用公式(5)确定更新后的队尾位置tail
t’:
[0139]
tail
t’=p+dir’·
(r
l
+rn+d)
ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0140]
控制当前行人向tail
t’移动,并在到达tail
t’后进入排队队伍。
[0141]
具体地,可以在队尾附近有障碍物、且确定的tail
t
会使排队队伍超越盲道或墙壁等障碍物线的情况下,需要重新确定符合实际情况的队尾位置tail
t’,这时排队队伍就需要甩尾,即排队队伍的走向需要避开障碍物线。
[0142]
首先可以基于当前行人的位置,确定甩尾方向dir’,并基于甩尾方向dir’,利用公式(5)确定更新后的队尾位置tail
t’。
[0143]
这里确定的更新后的队尾位置tail
t’,可以认为是进行甩尾后确定的排队队伍的队尾位置,这个队尾位置是不会使排队队伍超越障碍物线的,因此,控制当前行人向tail
t’移动,并在当前行人到达tail
t’后进入排队队伍,这时当前行人的状态会由待进入排队队伍的状态going_to_queue_directly,转变为即将进行甩尾动作的状态bending。
[0144]
需要说明的是,即将进行甩尾动作的状态bending也可以表征当前行人已经进入排队队伍,与在排队队伍中的状态in_queue的区别在于,当前队伍成员不是以前方队伍成员的位置作为目标点移动的,而是以预先设置的甩尾控制位置作为目标点移动的,这可以保持排队队伍的甩尾形状不会变成一个半弧形。
[0145]
举例来说,在当前行人pn以需要甩尾的状态bending进入排队队伍时,我们假设,当前行人pn仍会遵循排队队伍的行进轨迹,即他在t时刻进入模拟场景时,会记下排队队伍中最后一名队伍成员p
l
在t时刻的位置l
t
,在到达队尾位置后,会以l
t
作为自己的第一个目标点,而在到达l
t
后,当前行人pn会以自己的前方队伍成员作为leader,并以leader的位置为目标点行进,真正进入排队状态;而此时,如果当前行人pn的后面还有自己的后方队伍成员follower,则将当前行人pn转化为bending状态,当前行人pn后续的follower,也会依次参照当前行人pn,在排队队伍拐弯时,先到达l
t
,然后再以leader为目标点行进,以此保持排队队伍的形态。
[0146]
还需要说明的是,在当前行人进入排队队伍之前的每一个时刻,排队队伍都可能前移,即使在t时刻tail
t
可能超越障碍物,但在t+1时刻,如果排队队伍向前移动,也可能重新确定的tail
t
不再超越障碍物,此时不出现甩尾现象。
[0147]
可选地,基于当前行人的位置,确定甩尾方向dir’,包括:
[0148]
在当前行人的位置在排队队伍的左侧的情况下,确定障碍物线的正方向作为甩尾方向dir’;
[0149]
在当前行人的位置在排队队伍的右侧的情况下,确定障碍物线的反方向作为甩尾方向dir’;
[0150]
其中,障碍物线的正方向,为在由障碍物线指向排队目的地的情况下沿障碍物线向左的方向;障碍物线的反方向,为在由障碍物线指向排队目的地的情况下沿障碍物线向右的方向。
[0151]
具体地,甩尾方向dir’的确定,具体可以参考障碍物线的方向和行人来向。
[0152]
在实际情况下,行人更倾向于将排队队伍向自己的来向甩尾,以便自己可以行走更短的距离,即若当前行人从排队队伍右侧来,则排队队伍会向右侧甩尾;若当前行人从排队队伍左侧来,则排队队伍会向左侧甩尾。
[0153]
基于此,本发明实施例中,在当前行人的位置在排队队伍的左侧的情况下,确定障碍物线的正方向作为甩尾方向dir’;在当前行人的位置在排队队伍的右侧的情况下,确定障碍物线的反方向作为甩尾方向dir’。
[0154]
其中,障碍物线的正方向,为在由障碍物线指向排队目的地的情况下沿障碍物线向左的方向;障碍物线的反方向,为在由障碍物线指向排队目的地的情况下沿障碍物线向右的方向。
[0155]
举例来说,图3是本发明提供的排队行为模拟方法中确定甩尾方向的示意图之一,图4是本发明提供的排队行为模拟方法中确定甩尾方向的示意图之二。请参考图3和图4,假设pn为当前行人的位置,p
l
为排队队伍中最后一名队伍成员的位置,确定的tail
t
为图中虚线框对应的位置,此时需要当前行人进行甩尾动作。
[0156]
图3是pn位于排队队伍的左侧的情况,可见,在这种情况下,可以确定障碍物线的正方向作为甩尾方向dir’,在图3中,障碍物线的正方向即为沿障碍物线向左的方向,可见,此时更新后的队尾位置为tail
t’;
[0157]
图4是pn位于排队队伍的右侧的情况,可见,在这种情况下,可以确定障碍物线的负方向作为甩尾方向dir’,在图4中,障碍物线的负方向即为沿障碍物线向右的方向,可见,此时更新后的队尾位置为tail
t’。
[0158]
下面以模拟行人购物排队的过程为例,对本发明提供的排队行为模拟方法进行说明。图5是本发明提供的排队行为模拟方法的流程示意图之二,如图5所示,该方法包括步骤501至步骤506;其中:
[0159]
步骤501、生成新的虚拟行人。
[0160]
具体地,在任一位置p处生成一个待加入排队队伍的行人a。
[0161]
步骤502、基于虚拟行人确定新的队尾位置。
[0162]
具体地,对于当前排队队伍,步骤502包括的步骤5021和步骤5022;其中:
[0163]
步骤5021、若排队队伍相对于障碍物o已经甩尾,设排队队伍最后一位成员为a
l
,执行以下步骤:
[0164]
(1)若a
l
是甩尾后的第一位成员,则以a
l
为起点,以障碍物o的走向为参考走向,以距离lg为人际间隔,以距离a的最近位置为标准,确定队尾位置p
tail
,以p
tail
为目标点,引导a向排队队伍行进;
[0165]
(2)若a
l
前仍有其他甩尾后的成员(设为q),则以q与a
l
连线的方向为参考方向,以距离lg为人际间隔,确定队尾位置p
tail
,以p
tail
为目标点,引导a向排队队伍行进。
[0166]
步骤5022、如果排队队伍尚未遇到障碍物o甩尾,需要执行以下步骤:
[0167]
(1)确定队尾位置
[0168]
1)若排队队伍中没有成员,则以购物点sg为起点,以默认购物方向dirg为参考,以距离lg确定队尾的位置p
tail

[0169]
2)若排队队伍中有成员,则以最后一位成员a
l
的位置为起点,以a
l
与a
l
的leader构成的方向为基准方向,当leader为空时,则以a
l
与购物点sg构成的方向为基准方向,以a
l
身后的距离lg为标准,确定新的队尾位置p
tail

[0170]
(2)判断队尾位置是否需要甩尾
[0171]
以障碍物o为基准,判断队尾位置p
tail
是否已经超越了障碍物,并执行以下步骤:
[0172]
1)不需要甩尾,即p
tail
未超越障碍物,则将其作为行人a的目标点,引导a向队伍行进;
[0173]
2)需要甩尾,即p
tail
超越了障碍物,则将当前时刻a
l
的位置保存为甩尾控制位置pc,同时,以a
l
为起点,以障碍物o的方向为参考,以距离a的最近位置为标准,确定排队队伍的甩尾位置p
tail’,并将其作为a的目标点,引导a向排队队伍行进。
[0174]
步骤503、控制行人向队尾行进并加入排队队伍。
[0175]
具体地,控制行人a以队尾位置为目标点,向排队队伍行进,在行人a的移动期间,每一步都需要重复一次步骤502,以确定当前时刻最新的队尾位置,直至到达队尾位置并加入排队队伍。
[0176]
在行人加入排队队伍后,将a
l
作为a的leader,将a作为a
l
的follower。并执行以下步骤:
[0177]
(1)若a以正常状态,即以非甩尾状态加入排队队伍,则以a的leader—a
l
的位置为下一时刻的目标点,引导a前行;
[0178]
(2)若a以甩尾状态加入排队队伍,则以甩尾控制位置pc为下一时刻的目标点,引导a前行,直至到达甩尾控制位置pc后,再以a的leader—a
l
的位置为目标点,引导a前行。
[0179]
步骤504、控制行人在排队队伍中移动。
[0180]
具体地,当行人a加入排队队伍后,按如下规则选择特定的目标点,控制行人a沿排队队伍移动:
[0181]
(1)若a有leader,则以leader的位置为目标点;
[0182]
(2)若a没有leader,则以购物点为目标点;
[0183]
在leader后构建特定间距的虚拟障碍线,使a与leader至少保持特定的间距,并控制a在队伍中的行、停过程。
[0184]
步骤505、控制行人购物结账。
[0185]
具体地,当a到达购物点或一定阈值附近时,控制其停留特定的时间后,完成购物结账的过程。
[0186]
步骤506、控制行人离开排队队伍。
[0187]
具体地,当控制a停留达到购物结账的时长后,a即从排队队伍中离开,并设置a的follower的leader为空。
[0188]
需要说明的是,在多数情况下,作为follower的a在t+1时刻的目标点是t时刻a的leader的位置,当其leader从队伍中完成购物退出后,follower即以购物点为目标点行进;当行人a行进至购物点一定阈值范围内时,即进入购物/结账状态,并在该位置处停留一段时间,在这段时间内,a不更新位置,直至购物付款完成,a从队伍中退出,同时解除a与自己
follower之间的跟随关系,后续的follower则成为队伍首位,以购物点为目标点行进,并重复购物结账等行为。
[0189]
下面根据行人与排队队伍之间的状态关系,将行人的状态定义为几种状态,请参考表1,表1是行人状态及定义表格。
[0190]
表1行人状态及定义表格
[0191][0192]
图6是本发明提供的排队行为模拟方法中行人状态转换的示意图,如图6所示,几种状态之间的转换规则为:行人进入场景时,默认为

状态,以队尾为目标点行进,当判断排队队伍遇到障碍物无法容纳自己而需要甩尾时,转换为

状态,向队尾行进;在向排队队伍行进的过程中,若排队队伍由于前移而不再需要甩尾时,该行人的状态重新切换为

,并在后续反复在



之间转换,直至到达队尾;当以状态

进入排队队伍时,直接切换为状态

;当以状态

进入排队队伍时,需要先经过

,即进入甩尾过程,当经过弯道后,再进入
状态

;当到达了购物点时,进入购物状态

,在购物或结账完成后,离开排队队伍,进入状态


[0193]
行人在行进时(无论是进入排队队伍之前还是进入排队队伍之后),都需要确定下一时刻的目标点,以便以合适的速度持续向该目标点行进,下表2为当前行人在行进时目标点的确定表格。
[0194]
表2当前行人在行进时目标点的确定表格
[0195][0196]
本发明实施例中,将不具备次序特征的orca模型改造成了有严格先后次序和跟随特征的模型,还将orca模型中行人彼此避让的算法改造成了允许以特定间距保持站立的算法,并提出了排队队伍遇到障碍物后的甩尾算法。基于本发明实施例,可以模拟有序、常态下、无通道约束的排队购物行为,包括:
[0197]
(1)可以模拟行人进入排队队伍、跟随行走、走停行为、购物等待、离开排队队伍的全过程;
[0198]
(2)可以模拟排队队伍中后方行人跟随前方行人行走、停止、并与前方行人走停行为保持一致的行为;
[0199]
(3)可以模拟前方行人停止行走时,后方行人在前方行人身后保持一定间距站立的行为;
[0200]
(4)可以模拟排队队伍遇到障碍物边界转弯、并随着时间演进,转弯处逐渐演进成弧形的现象;
[0201]
(5)可以模拟排队队伍的走停行为的后向传播效应。
[0202]
下面对本发明实施例的排队行为模拟方法的模拟效果及相似性分析进行说明。
[0203]
将模拟结果与实际排队行为进行对比,本发明实施例的方法可以非常相似地还原现实排队购物行为:
[0204]
(1)模拟可以重现典型的个体行为及排队队伍形成过程:典型的个体行为,包括进入排队队伍、站立等待、排队向前、购物、离开排队队伍等,而多个个体的行为涌现,重现了
排队队伍的形成过程,在排队过程中,行人严格遵循进入排队队伍的先后顺序行进,不超越前方行人,并与前方行人保持一定的距离。
[0205]
(2)可以重现排队队伍拐弯的自组织特征,排队队伍遇到障碍物时会拐弯,并沿障碍物线的走向继续排队;现实排队过程中,由于与售卖窗口垂直的空间较小,在排队队伍排到盲道时,排队队伍出现了拐弯,并沿着盲道继续延伸,而本技术很好地模拟了这一行为,在遇到盲道的时候,模拟的排队队伍也出现了拐弯并沿盲道边界继续延伸的现象;
[0206]
(3)可以模拟排队队伍的“走停”行为,当排队队伍最前方的行人停止行进并进行购物、结账的时候,后方行人依次在后等待,在前方行人完成购物、结账并离开排队队伍后,后续行人继续依次向前行进。这种走停行为与现实的走停行为相似,并且,这种走停行为具有明显的向后传导特征;
[0207]
(4)此外,本发明实施例还可重现排队购物队形上的一些特殊自组织行为,如排队队伍拐弯时并非呈现规则的直角,而是随着行人的行走,在排队队伍的拐弯处演进出弧形的特征;而在模拟的队形中,随着时间的演进,在拐角处也出现了这种特征。
[0208]
下面对本发明实施例的排队行为模拟方法的排队队伍形成过程的模拟效果进行说明。
[0209]
图7是本发明提供的排队行为模拟方法中排队队伍形成的过程示意图,如图7所示,整个排队队伍形成的过程是:
[0210]
(1)行人1从0s时刻从起始位置出发,向购物窗口行进,在39s时刻到达购物窗口处,开始停止行进购物;行人2在40s时刻从起始位置出发,在75s排在行人1身后,等待行人1购物完成;
[0211]
(2)在280s时刻,行人1、2、3均已完成购物离开排队队伍,行人4、5、6在垂直于购物窗口的方向排队,行人7向排队队伍行进,但由于此时行人6的身后距离盲道的距离已不足以满足间隔的需要,行人7开始选择朝向自己、沿着盲道的方向将排队队伍进行甩尾,由于盲道方向垂直于由窗口延伸出来的排队队伍,因此,甩尾后的排队队伍与先前排队队伍垂直;
[0212]
(3)行人7并在310s的时刻到达队尾;
[0213]
(4)在426s时刻,行人6到达窗口开始购物,行人7排在其身后,后续的行人依次沿着甩尾后的排队队伍保持队形站立,此时排队队伍甩尾形状仍以垂直为主;
[0214]
(5)在621s时刻,由于后方行人以前方行人的位置为目标位置,随着行人的不断走动,排队队伍的甩尾部分开始出现弧形;
[0215]
(6)在1138s时刻,排队队伍中出现更多的排队行人,排队队伍进一步增长,同时,排队队伍始终保持队形。
[0216]
下面对本发明实施例的排队行为模拟方法的走停行为及后向传导效应进行说明。
[0217]
图8是本发明提供的排队行为模拟方法中“走-停”行为及后向传导效应的示意图,如图8所示,本发明实施例可重现行人在排队购物过程中的“走-停”行为及后向传导效应。
[0218]
(1)当队首行人20到达购物点站立购物时,后方行人依次在其身后站立等待,当其完成购物转身离开排队队伍的时刻,后方行人仍在站立等待;
[0219]
(2)当行人20离开一段距离后,后方行人21由静止开始向购物点行走,而行人22、23及后续行人仍处于站立状态;
[0220]
(3)行走状态逐渐向后方传导,队伍中的行人逐渐进入走动状态,而队伍最后一位行人仍处于站立状态;
[0221]
(4)行人21到达窗口,开始站立购物,而后方行人仍处于走动状态;
[0222]
(5)站立状态逐渐向排队队伍后方传导,部分行人(如行人22)开始站立等待;
[0223]
(6)站立状态向后方传导完成,所有行人都出于静止站立等待状态,直至行人21完成购物离开队伍,并且这种“走-停”行为及后向传导过程在后续的排队过程中重复出现。
[0224]
下面对本发明提供的排队行为模拟装置进行描述,下文描述的排队行为模拟装置与上文描述的排队行为模拟方法可相互对应参照。
[0225]
图9是本发明提供的排队行为模拟装置的方框示意图,如图9所示,排队行为模拟装置900包括:
[0226]
第一确定模块901,用于确定排队队伍的队尾位置;
[0227]
第一控制模块902,用于控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;
[0228]
第二确定模块903,用于在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;
[0229]
第三确定模块904,用于基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;
[0230]
第二控制模块905,用于基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。
[0231]
可选地,第三确定模块904具体用于基于所述前方队伍成员的位置p0,采用公式(1)和公式(2)确定虚拟障碍线的位置:
[0232]
pc=p
0-diru·
(r0+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0233][0234]
其中,所述虚拟障碍线设置在所述当前队伍成员和所述前方队伍成员之间,pc表征所述虚拟障碍线中与所述前方队伍成员距离最近的点的位置,diru为所述排队队伍的移动方向的单位向量,r0表征所述前方队伍成员的占用半径,d为预设间距,p2和p3分别表征所述虚拟障碍线的两个端点的位置,dir
p
表征所述虚拟障碍线的正方向,s为所述虚拟障碍线的长度;
[0235]
基于所述当前队伍成员的位置和所述虚拟障碍线的位置,通过所述orca模型确定所述当前队伍成员的移动速度。
[0236]
可选地,第三确定模块904还具体用于基于所述当前队伍成员的位置和所述虚拟障碍线的位置,利用公式(3),确定所述orca模型的输出结果
[0237][0238]
其中,表征在所述前方队伍成员a0影响下所述当前队伍成员a1的可选速度范围,τ为预设时间窗口,v表征速度集合,表征a1的最优速度,u表征a0和a1需共
同承担的避让责任,m表征a1需承担的避让责任的权重,n为orca半平面的方向;
[0239]
基于所述orca模型的输出结果确定所述当前队伍成员的移动速度。
[0240]
可选地,第一确定模块901具体用于利用公式(4),确定所述排队队伍的队尾位置tail
t

[0241]
tail
t
=p+dir
·
(r
l
+rn+d)
ꢀꢀꢀꢀꢀꢀꢀ
(4)
[0242]
其中,p表征所述排队队伍中最后一名队伍成员的位置或所述排队队伍的排队目的地的位置,dir表征所述排队队伍的移动方向,r
l
表征所述最后一名队伍成员的占用半径或所述排队目的地的占用半径,rn表征所述当前行人的占用半径,d为预设间距。
[0243]
可选地,第一控制模块902具体用于在确定的tail
t
不超越障碍物线的情况下,控制所述当前行人向tail
t
移动,并在到达tail
t
后进入所述排队队伍。
[0244]
可选地,第一控制模块902还具体用于在确定的tail
t
超越障碍物线的情况下,基于所述当前行人的位置,确定甩尾方向dir’;
[0245]
基于dir’,利用公式(5)确定更新后的队尾位置tail
t’:
[0246]
tail
t’=p+dir’·
(r
l
+rn+d)
ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0247]
控制所述当前行人向tail
t’移动,并在到达tail
t’后进入所述排队队伍。
[0248]
可选地,第一控制模块902还具体用于在所述当前行人的位置在所述排队队伍的左侧的情况下,确定所述障碍物线的正方向作为所述甩尾方向dir’;
[0249]
在所述当前行人的位置在所述排队队伍的右侧的情况下,确定所述障碍物线的反方向作为所述甩尾方向dir’;
[0250]
其中,所述障碍物线的正方向,为在由所述障碍物线指向所述排队目的地的情况下沿所述障碍物线向左的方向;所述障碍物线的反方向,为在由所述障碍物线指向所述排队目的地的情况下沿所述障碍物线向右的方向。
[0251]
本发明实施例中,装置可以对需要加入排队队伍的行人进行模拟,首先由第一确定模块确定排队队伍的队尾位置,以由第一控制模块控制行人基于队尾位置进入排队队伍,行人在进入排队队伍后成为当前队伍成员,在当前队伍成员存在前方队伍成员的情况下,由第二确定模块确定前方队伍成员的位置作为目标点,并由第三确定模块基于当前队伍成员的位置和前方队伍成员的位置,通过orca模型确定当前队伍成员的移动速度,以由第二控制模块控制当前队伍成员基于移动速度向目标点移动,这样形成的排队队伍可以满足次序要求和队形要求,因此,该装置可以模拟街边购物排队行为。
[0252]
图10是本发明提供的电子设备的结构示意图,如图10所示,该电子设备1000可以包括:处理器(processor)1010、通信接口(communications interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行排队行为模拟方法,该方法包括:
[0253]
确定排队队伍的队尾位置;
[0254]
控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;
[0255]
在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;
[0256]
基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避
免orca模型确定所述当前队伍成员的移动速度;
[0257]
基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。
[0258]
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0259]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的排队行为模拟方法,该方法包括:
[0260]
确定排队队伍的队尾位置;
[0261]
控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;
[0262]
在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;
[0263]
基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;
[0264]
基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。
[0265]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的排队行为模拟方法,该方法包括:
[0266]
确定排队队伍的队尾位置;
[0267]
控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;
[0268]
在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;
[0269]
基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;
[0270]
基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。
[0271]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0272]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可
借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0273]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:


1.一种排队行为模拟方法,其特征在于,包括:确定排队队伍的队尾位置;控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。2.根据权利要求1所述的排队行为模拟方法,其特征在于,所述基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度,包括:基于所述前方队伍成员的位置p0,采用公式(1)和公式(2)确定虚拟障碍线的位置:p
c
=p
0-dir
u
·
(r0+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,所述虚拟障碍线设置在所述当前队伍成员和所述前方队伍成员之间,p
c
表征所述虚拟障碍线中与所述前方队伍成员距离最近的点的位置,dir
u
为所述排队队伍的移动方向的单位向量,r0表征所述前方队伍成员的占用半径,d为预设间距,p2和p3分别表征所述虚拟障碍线的两个端点的位置,dir
p
表征所述虚拟障碍线的正方向,s为所述虚拟障碍线的长度;基于所述当前队伍成员的位置和所述虚拟障碍线的位置,通过所述orca模型确定所述当前队伍成员的移动速度。3.根据权利要求2所述的排队行为模拟方法,其特征在于,所述基于所述当前队伍成员的位置和所述虚拟障碍线的位置,通过所述orca模型确定所述当前队伍成员的移动速度,包括:基于所述当前队伍成员的位置和所述虚拟障碍线的位置,利用公式(3),确定所述orca模型的输出结果模型的输出结果其中,表征在所述前方队伍成员a0影响下所述当前队伍成员a1的可选速度范围,τ为预设时间窗口,v表征速度集合,表征a1的最优速度,u表征a0和a1需共同承担的避让责任,m表征a1需承担的避让责任的权重,n为orca半平面的方向;基于所述orca模型的输出结果确定所述当前队伍成员的移动速度。4.根据权利要求1至3任一项所述的排队行为模拟方法,其特征在于,所述确定排队队伍的队尾位置,包括:利用公式(4),确定所述排队队伍的队尾位置tail
t

tail
t
=p+dir
·
(r
l
+r
n
+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)其中,p表征所述排队队伍中最后一名队伍成员的位置或所述排队队伍的排队目的地的位置,dir表征所述排队队伍的移动方向,r
l
表征所述最后一名队伍成员的占用半径或所述排队目的地的占用半径,r
n
表征所述当前行人的占用半径,d为预设间距。5.根据权利要求4所述的排队行为模拟方法,其特征在于,所述控制所述当前行人基于所述队尾位置进入所述排队队伍,包括:在确定的tail
t
超越障碍物线的情况下,基于所述当前行人的位置,确定甩尾方向dir’;基于dir’,利用公式(5)确定更新后的队尾位置tail
t’:tail
t’=p+dir’·
(r
l
+r
n
+d)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)控制所述当前行人向tail
t’移动,并在到达tail
t’后进入所述排队队伍。6.根据权利要求5所述的排队行为模拟方法,其特征在于,所述基于所述当前行人的位置,确定甩尾方向dir’,包括:在所述当前行人的位置在所述排队队伍的左侧的情况下,确定所述障碍物线的正方向作为所述甩尾方向dir’;在所述当前行人的位置在所述排队队伍的右侧的情况下,确定所述障碍物线的反方向作为所述甩尾方向dir’;其中,所述障碍物线的正方向,为在由所述障碍物线指向所述排队目的地的情况下沿所述障碍物线向左的方向;所述障碍物线的反方向,为在由所述障碍物线指向所述排队目的地的情况下沿所述障碍物线向右的方向。7.一种排队行为模拟装置,其特征在于,包括:第一确定模块,用于确定排队队伍的队尾位置;第一控制模块,用于控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;第二确定模块,用于在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;第三确定模块,用于基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免orca模型确定所述当前队伍成员的移动速度;第二控制模块,用于基于所述当前队伍成员的移动速度,通过所述orca模型控制所述当前队伍成员向所述目标点移动。8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述排队行为模拟方法。9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述排队行为模拟方法。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述排队行为模拟方法。

技术总结


本发明提供一种排队行为模拟方法、装置、电子设备及存储介质,其中方法包括:确定排队队伍的队尾位置;控制当前行人基于所述队尾位置进入所述排队队伍,以成为当前队伍成员;在所述当前队伍成员存在前方队伍成员的情况下,确定所述前方队伍成员的位置作为目标点;基于所述当前队伍成员的位置和所述前方队伍成员的位置,通过最优相互碰撞避免ORCA模型确定所述当前队伍成员的移动速度;基于所述当前队伍成员的移动速度,通过所述ORCA模型控制所述当前队伍成员向所述目标点移动。本发明实施例中模拟形成的队伍可以满足次序要求和队形要求,因此,该方法可以模拟街边购物排队行为。该方法可以模拟街边购物排队行为。该方法可以模拟街边购物排队行为。


技术研发人员:

李文航 龚建华 胡新礼 肖江领 樊鸿奎 黄琳 张冬 张国永

受保护的技术使用者:

中国科学院空天信息创新研究院

技术研发日:

2022.09.01

技术公布日:

2022/12/26

本文发布于:2024-09-20 14:22:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/49064.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:队伍   所述   成员   位置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议