赞
踩
ORCA算法会把移动的物体抽象成一个圆,圆心表示实体位置,半径表示实体大小 。ORCA算法的一个特点就是会考虑未来一段时间内的情况,通常是一秒或两秒,这个值可以根据移动物体的最大速度来修改。
算法认为,避障的责任是相互的,不是只有一方改变速度,可能在未来一段时间内发生碰撞的双方都会改变速度来避障。也就是说双方预测会发生碰撞时,双方都会采取行动来修正速度
上图中假设B物体处于静止状态,A物体沿着向量v1和v2移动,刚好能和B擦肩而过,不会发生碰撞;若V1和V2的夹角再小一点的话就一定会发生碰撞。此时会产生碰撞区域:
红线画出来的锥形区域就是A相对于B的碰撞区域,也可以叫碰撞锥。那么问题来了,如果A和B都正在移动,那么怎么判定A的速度向量是不是在碰撞区域内呢?这就需要用A相对于B的速度来判定。
更专业的示意图 ,就是在速度坐标系下:
黄色涂抹区域是速度碰撞区,若A的速度点Va落在了速度碰撞区内,则在Va的单位时间内必定会发生碰撞。如果避障的话需要讲Va修正到速度碰撞区之外。
A的速度为V1,B的速度为V2,A对于B的相对速度(也就是我们把B看做静止,A的速度)就是V1-V2。
后面的有时间再写。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。