走路的时候如何不碰到别人是一门深奥的学科( 二 )


这样我们便将一个不规则难模拟的行人转变成了一个简单的、有着一定受影响区域的粒子 。
03
再加上力
现在我们将模拟对象简化成了简单的粒子 , 那么是什么改变了粒子的运动状态呢?
Helbing认为 , 行人运动状态的改变是由于受到外力驱动而变化 , 这个力就是社会力(SocialForce) , 在社会力作用下的行人运动模型叫做社会力模型 。 社会力并不是像什么重力、压力、弹力那样真实存在的力 , 而是描述导致行人运动状态发生改变的一种作用 。 社会力模型的基本解析方程为:
其中 , 为行人所受到的自驱动力 , 为行人间的相互作用力 , 为行人所处环境中障碍物对行人所施加的作用力 , 为特殊位置的吸引力 , 是噪声项 。
在社会力模型中 , 行人的坐标r、时间t都是连续的 。 在给定初始条件之后 , 通过上述的基本解析方程 , 就可以模拟出之后任意时刻的行人运动状态 。
04
行人为什么不会碰撞?
那么回归最开始的话题 , 行人之间是怎样避免碰撞的呢?
Corbetta等人便利用了我们在第二部分和第三部分提到的模型来研究这一问题 。
考虑两行人p、p避免碰撞的事例 , (行人密度足够稀疏可以忽略第三人的作用 , )这一事例满足的动力学方程组为:
走路的时候如何不碰到别人是一门深奥的学科
文章图片
其中 , x、y分别为沿着行人前进方向和垂直于行人前进方向的纵向和横向坐标;u、v分别为纵向和横向速度;α、β是正的模型参数;、分别是纵向和横向的高斯噪声项;是短程避免碰撞的力 , 是长程基于视野判断的力 , 这两个力分别就对应了在第二部分提到的两种相互作用 。
这么多参数小伙伴们可能和小编一样开始头疼了 。
走路的时候如何不碰到别人是一门深奥的学科
文章图片
但是没有关系 , 我们并不需要去真正利用这个方程组做计算 , 我们只需要去理解方程组描述的物理过程就好了 。
社会力模型其实是基于牛顿第二定律对行人运动过程进行描述 , 我们所看到的方程其实只是比牛二律复杂了亿点点 。
走路的时候如何不碰到别人是一门深奥的学科
文章图片
虽然多了很多参数 , 这个方程组同牛顿第二定律一样 , 描述的是行人受到的社会力与行人速度变化的关系 , 速度影响的是行人的未来路径 , 也就是说 , 行人通过改变自己未来的路径来避免碰撞 。
下面考虑两行人A、B在一走廊相向而行的具体情况 。
走路的时候如何不碰到别人是一门深奥的学科
文章图片
两个行人相向而行 , 从开始移动到并行再到分开的示意图
(图片来源:参考资料1)
A、B具有初始横向间距Δy , 当两人肩并肩时 , 有并行横向间距Δy , Δy如果小于两人肩并肩的宽度 , 就会发生碰撞 。
不同初始横向间距对应的并行横向间距关系如下图:
走路的时候如何不碰到别人是一门深奥的学科
文章图片
不同初始横向间距对应的并行横向间距
(图片来源:参考资料1)
其中黑色虚线是数据模拟结果 , 红点是从9089例避免碰撞的案例中得到的数据 , 蓝色虚线是在横向速度为0 , 即行人没有避让动作下的结果 。 我们可以看到模拟效果非常好 , 结果与实际十分接近 。
当初始横向间距为0时 , 并行横向间距为0.75m;初始横向间距小于1.4m之后 , 并行横向间距大于初始横向间距 。
因此 , 行人避免碰撞的原理是:当两行人的初始横向间距小于1.4m时 , 行人会通过横向移动 , 改变自己的预期路径 , 扩大彼此之间的间距 , 并保证在肩并肩时 , 彼此的间距至少为0.75m 。