人工势场法(APF) —— Path Planning「建议收藏」

人工势场法(APF) —— Path Planning「建议收藏」版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接人工势场法(ArtificialPotentialField,APF)是一种将机器人的外形视为势场中的一个点,这个势场结合了对目标的吸引力和对障碍物的排斥力。得到的轨迹作为路径输出。该方法具有计算量小、容易理解等优点。然而,它们可能陷入势场的局部极小值而无法找到路径,或者无法找到最优路径。人工势场可以被视为与静电势场类似的连续方程(将机器人视为点电荷),或者通过场的运动可以使用一组语言规则进行离散…

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

版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接

 

       维基百科说:“人工势场法(Artificial Potential Field, APF)是一种将机器人的外形视为势场中的一个点,这个势场结合了对目标的吸引力和对障碍物的排斥力。得到的轨迹作为路径输出。该方法具有计算量小、容易理解等优点。然而,它们可能陷入势场的局部极小值而无法找到路径,或者无法找到最优路径。人工势场可以被视为与静电势场类似的连续方程(将机器人视为点电荷),或者通过场的运动可以使用一组语言规则进行离散化。”

       下面找了一些人工势场法的理论与公式[1],方便理解。

人工势场法(APF) —— Path Planning「建议收藏」

人工势场法(APF) —— Path Planning「建议收藏」

人工势场法(APF) —— Path Planning「建议收藏」

人工势场法(APF) —— Path Planning「建议收藏」

人工势场法(APF) —— Path Planning「建议收藏」

既然知道了合力,将合力拆分成水平X和Y两个分量,再做三角函数,就可以获得实际应该前进的方向,再给以合适的速度,便可以顺利到达目标。

下面,借用了一下 VFH 2D simulation的障碍物来做一下仿真,也可以做个对比。

① 针对下图,还是可以看出虽然起始方向有些问题,但是最终还是绕过障碍到达了目标的。这里图一最终算出的路径覆盖为12.7,从图中看,该算法的路径平滑性有点差。当然,肯定有改进的算法会优化这个问题。

                                               人工势场法(APF) —— Path Planning「建议收藏」

                                               人工势场法(APF) —— Path Planning「建议收藏」

 

②针对算法的缺点,做了一个特殊的事例,可以看出,最终机器人卡死,进入局部最小值。

                                               人工势场法(APF) —— Path Planning「建议收藏」

 

                                               人工势场法(APF) —— Path Planning「建议收藏」

把之前的静态的最终路径图更换成了动态显示的路径图,更方便理解。

[1]  李世昌.《基于 A*与人工势场的四旋翼无人机路径规划算法研究》

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

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

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


相关推荐

  • Java中八大基本数据类型详解[通俗易懂]

    Java中八大基本数据类型详解[通俗易懂]自从Java发布以来,基本数据类型就是Java语言的一部分,分别是byte,short,int,long,char,float,double,boolean.当然围绕着这些基本数据类型衍生出来了很多面试题,但是说实话,工作中基本用不到

    2022年7月7日
    37
  • traceroute和tracert原理

    traceroute和tracert原理一、Traceroutetraceroute命令用IP生存时间(TTL)字段和ICMP错误消息来确定从一个主机到网络上其他主机的路由。路由器收到TTL为1的包文减1后直接丢弃,然后回复ICMP(type=11,code=0,TTLequals0duringtransit——传输期间生存时间为0)。目标主机收到traceroute的UDP探测包回复ICMP(type=3,code=3,端口不可达)。Linux上称之为traceroute,Windos类似的功能为trace

    2022年9月24日
    0
  • 无线wifi-PJ-之在开启WPS下使用reaver

    无线wifi-PJ-之在开启WPS下使用reaverPJ简单解释:  PIN码分前4和后4,先破前4只有最多一万个组合,破后4中的前3只有一千个组合,一共就是一万一千个密码组合。10的4次方+10的3次方=11000个密码组合。  当reaver确定前4位PIN密码后,其任务进度数值将直接跳跃至90.9%以上,也就是说只剩余一千个密码组合了。总共一万一千个密码!—————————–

    2022年6月4日
    35
  • LOAM 论文及原理分析「建议收藏」

    LOAM 论文及原理分析「建议收藏」前言:由于对三维激光SLAM比较感兴趣,并且最近也在找无人驾驶激光SLAM算法的岗位,所以花了一个多月把LOAM的论文和源码好好看了一遍。发现论文还是比较容易明白,但一看代码全是坑。看论文懂了,看代码似懂非懂。为了尽快把这坑填上,所以诚邀读者一起探讨。作者始终认为填坑最好的方法是拉别人和你一起填坑。由于三千多行的源码不是一篇博客能够讲明白的,所以这篇博客主要讲一下我对LOAM论文…

    2022年5月11日
    33
  • Databus简介「建议收藏」

    Databus简介「建议收藏」1.背景在互联网架构中,数据系统通常分为真实数据(source-of-truth)系统,作为基础数据库,存储用户产生的写操作;以及衍生数据库或索引,提供读取和其他复杂查询操作。后者常常衍生自主数据存储,会对其中的数据做转换,有时还要包括复杂的业务逻辑处理。缓存中的数据也来自主数据存储,当主数据存储发生变化,缓存中的数据就需要刷新,或是转为无效。这样架构自然而然的一个问题就是如何保障基础数

    2022年10月17日
    1
  • MAC双系统如何切换_mac双系统怎么进入mac系统

    MAC双系统如何切换_mac双系统怎么进入mac系统Mac上面安装双系统是一个很常见的系统选择方案。双系统之间的切换对于使用Mac的用户都不会陌生,但是对于许多初次接触Mac系统的用户而言,也有很多并不知道如何切换双系统,以及如何设置默认进入的系统。虽然只是一个很小的技巧,但是对于新接触Mac系统的用户如果不了解这个的话,那么使用中会有一定的麻烦。双系统的切换以及设置系统默认启动也有几种方法。-w+I4g$u#H#T1K一、开机按Op…

    2022年10月6日
    0

发表回复

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

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