路径规划-人工势场法(Artificial Potential Field)

路径规划-人工势场法(Artificial Potential Field)人工势场法是局部路径规划的一种比较常用的方法。这种方法假设机器人在一种虚拟力场下运动。1.简介如图所示,机器人在一个二维环境下运动,图中指出了机器人,障碍和目标之间的相对位置。这个图比较清晰的说明了人工势场法的作用,物体的初始点在一个较高的“山头”上,要到达的目标点在“山脚”下,这就形成了一种势场,物体在这种势的引导下,避开障碍物,到达目标点。人工势场包括引力场合斥力场,其中目标点对物体产生引力,引导物体朝向其运动(这一点有点类似于A*算法中的启发函数h)。障碍物对物体产生斥力,..

大家好,又见面了,我是你们的朋友全栈君。

人工势场法是局部路径规划的一种比较常用的方法。这种方法假设机器人在一种虚拟力场下运动。

1. 简介

路径规划-人工势场法(Artificial Potential Field)
如图所示,机器人在一个二维环境下运动,图中指出了机器人,障碍和目标之间的相对位置。 

路径规划-人工势场法(Artificial Potential Field)

路径规划-人工势场法(Artificial Potential Field)这个图比较清晰的说明了人工势场法的作用,物体的初始点在一个较高的“山头”上,要到达的目标点在“山脚”下,这就形成了一种势场,物体在这种势的引导下,避开障碍物,到达目标点。

人工势场包括引力场合斥力场,其中目标点对物体产生引力,引导物体朝向其运动(这一点有点类似于A*算法中的启发函数h)。障碍物对物体产生斥力,避免物体与之发生碰撞。物体在路径上每一点所受的合力等于这一点所有斥力和引力的和。这里的关键是如何构建引力场和斥力场。下面我们分别讨论一下:

1.1. 引力场

常用的引力函数:

路径规划-人工势场法(Artificial Potential Field)

这里的ε是尺度因子,\rho(q,q_{goal})表示物体当前状态与目标的距离。引力场有了,那么引力就是引力场对距离的导数(类比物理里面W=FX):

路径规划-人工势场法(Artificial Potential Field)

路径规划-人工势场法(Artificial Potential Field)
引力场模型

1.2. 斥力场

路径规划-人工势场法(Artificial Potential Field)

公式(3)是传统的斥力场公式。公式中η是斥力尺度因子,\rho(q,q_{obs})代表物体和障碍物之间的距离。\rho_0代表每个障碍物的影响半径。换言之,离开一定的距离,障碍物就对物体没有斥力影响。

斥力就是斥力场的梯度

路径规划-人工势场法(Artificial Potential Field)

路径规划-人工势场法(Artificial Potential Field)
斥力场模型

总的场就是斥力场合引力场的叠加,也就是U=U_att+U_rep,总的力也是对对应的分力的叠加,如下图所示:

路径规划-人工势场法(Artificial Potential Field)

2. 存在的问题

  • 当物体离目标点比较远时,引力将变的特别大,相对较小的斥力在甚至可以忽略的情况下,物体路径上可能会碰到障碍物
  • 当目标点附近有障碍物时,斥力将非常大,引力相对较小,物体很难到达目标点
  • 在某个点,引力和斥力刚好大小相等,方向想反,则物体容易陷入局部最优解或震荡

3. 各种改进版本的人工势场法

  • 对于可能会碰到障碍物的问题,可以通过修正引力函数来解决,避免由于离目标点太远导致引力过大

路径规划-人工势场法(Artificial Potential Field)

和(1)式相比,(5)式增加了范围限定。d*_goal 给定了一个阈值限定了目标和物体之间的距离。对应的梯度也就是引力相应变成:

路径规划-人工势场法(Artificial Potential Field)

  • 目标点附近有障碍物导致目标不可达的问题,引入一种新的斥力函数

路径规划-人工势场法(Artificial Potential Field)

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

路径规划-人工势场法(Artificial Potential Field)

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

  • 局部最优问题是一个人工势场法的一个大问题,这里可以通过加一个随机扰动,让物体跳出局部最优值。类似于梯度下降法局部最优值的解决方案。

参考文献

路径规划算法初探_森林宝贝的博客-CSDN博客_局部路径规划算法

Artificial Potential Field Approach and its Problems – General Discussions – RobotShop Community

解决人工势场法局部极小问题的一种新方法 – 道客巴巴

matlab改进人工势场法模拟机器人路径规划,避障_人工势场法改进领航跟随法的控制算法实现-Matlab文档类资源-CSDN下载

http://www.cs.cmu.edu/~motionplanning/lecture/Chap4-Potential-Field_howie.pdf

帮忙分析一下人工势场法的局部路径规划程序 – MATLAB中文论坛

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151072.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 回归模型中的u_什么是面板回归模型

    回归模型中的u_什么是面板回归模型文章目录最简单的RNN回归模型入门(PyTorch版)RNN入门介绍PyTorch中的RNN代码实现与结果分析版权声明:本文为博主原创文章,转载请注明原文出处!写作时间:2019-03-0212:46:15本文部分图片素材来自互联网,如有侵权,请联系作者删除!最简单的RNN回归模型入门(PyTorch版)RNN入门介绍至于RNN的能做什么,擅长什么,这里不赘述。如果不清楚,请先维基一…

    2022年10月20日
    0
  • java构造函数可以重载么_Java 构造函数和函数重载「建议收藏」

    java构造函数可以重载么_Java 构造函数和函数重载「建议收藏」构造函数:⑴方法名和类名相同,而且没有返回类型(包括void也没有);⑵没有返回值;⑶如果没有输入构造函数,jvm会自动帮我们创建一个不带参数,没有任何函数体的的构造函数;如果我们手动的创建了其他构造函数,就不会帮我们创建这个不带参数的构造函数了;⑷一般情况下,如果想要实现自己的构造方法,最好重载一个不带参数的构造方法。函数重载:指多个函数可以使用同一个函数名,只要它们参数列表不同,将意义相近…

    2022年6月18日
    44
  • eclipse SVN插件的缓存清理[通俗易懂]

    eclipse SVN插件的缓存清理[通俗易懂]工具原料:SVN客户端;windowxp;eclipse中的缓存清理主要有: eclipse清理网页缓存; eclipse清理XSD文件缓存; eclipse清理svn账号缓存; 情况一:eclipse清理网页缓存。修改了代码多次刷新页面[已经清除过浏览器缓存]后页面调试仍显示源代码解决步骤:①停止tomcat的运行;②在eclipse中的Servers下找到并选中tomcat,右键选择”clean…”;③重新启动tomcat,刷新页面;④设置b

    2022年10月14日
    0
  • Origin Pro2022教育版官方申请、安装及汉化、续期

    Origin Pro2022教育版官方申请、安装及汉化、续期OriginLab官网简介绝大多数学生都使用过Origin来绘图,并将这些图作为自己设计报告或者论文中的重要组成部分,这一点也是源于Origin在数据显示专业性。教育版有一些限制,比如序列号仅6个月有效期,窗口限制12个(窗口限制表示Origin项目中可访问的窗口数,包括所有类型的窗口-WorkBook,Matrix,Graph,Notes,Layout等总共限制为12个)。但是6个月后可重复文章步骤重新申请新的序列号与激活码(可以使用相同邮箱),且12个窗口可以在多数情况下能够满足需要。

    2022年5月18日
    154
  • ocker nginx 配置反向代理和负载均衡[通俗易懂]

    ocker nginx 配置反向代理和负载均衡

    2022年4月2日
    39
  • web后端开发php,web后端开发主要做什么?

    web后端开发php,web后端开发主要做什么?应用程序或web服务可以分为两大部分:前端和后端。从这些名字可以猜出他们的角色。前端是你可以“看到”的部分。它是让你与应用程序或服务交互的部分。颜色、动画、布局以及所有其他增加你使用应用或网站体验的酷东西就是前端。前端通常称为用户界面(UI)。后端是你看不到的部分。它是应用程序或网站的内部工作。这包括服务器、数据库等。比如你正在本网站上读一篇文章。字体、颜色、图案等构成这一页的正面。但是,本文的网…

    2022年6月17日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号