人工势场法

原理

人工建立势场,将障碍物设置成斥力,目标设置成吸引力,进行力的矢量相加,最后算出合力的方向。
在这里插入图片描述
在这里插入图片描述

引力场

常用的引力函数:
在这里插入图片描述
这里的ε是尺度因子.ρ(q,q_goal)表示物体当前状态与目标的距离。引力场有了,那么引力就是引力场对距离的导数(类比物理里面W=FX):

在这里插入图片描述在这里插入图片描述

斥力场

在这里插入图片描述
公式(3)是传统的斥力场公式。公式中η是斥力尺度因子,ρ(q,q_obs)代表物体和障碍物之间的距离。ρ_0代表每个障碍物的影响半径。换言之,离开一定的距离,障碍物就对物体没有斥力影响。

斥力就是斥力场的梯度
在这里插入图片描述
在这里插入图片描述
总的场就是斥力场合引力场的叠加,也就是U=U_att+U_rep,总的力也是对对应的分力的叠加,如下图所示:

在这里插入图片描述

优点:

简单实用,有良好的实时性
结构简单,便于底层的实时控制,在实时壁障和平滑的轨迹控制方面得到广泛的应用

缺点:
  1. 当目标点距离较远的话,引力将变得特别大,相对较小的斥力下,物体路径可能会碰到障碍物
  2. 当目标点附近有障碍物时,斥力将非常大,引力相对较小,物体很难到达目标点
  3. 在某个点,引力斥力刚好相等,方向相反,物体容易陷入局部最优解或震荡
  4. 容易陷入局部最优解
改进:
  1. 对于碰到障碍物的问题,可以通过修正引力函数来解决,避免距离过大导致引力过大。
    在这里插入图片描述和(1)式相比,(5)式增加了范围限定。d*_goal 给定了一个阈值限定了目标和物体之间的距离。对应的梯度也就是引力相应变成:
    在这里插入图片描述
  2. 目标点附近有障碍物导致目标不可达的问题,引入一种新的斥力函数

在这里插入图片描述
这里在原有斥力场的基础上,加上了目标和物体距离的影响,(n是正数,我看到有篇文献上n=2)。直观上来说,物体靠近目标时,虽然斥力场要增大,但是距离在减少,所以在一定程度上可以起到对斥力场的拖拽作用
相应斥力变成:
在这里插入图片描述

所以可以看到这里引力分为两个部分,编程时要格外注意

  1. 局部最优问题是一个人工势场法的一个大问题,这里可以通过加一个随机扰动,让物体跳出局部最优值。类似于梯度下降法局部最优值的解决方案。
  • 11
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值