人工势场法(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)
上一篇 2022年6月17日 下午11:17
下一篇 2022年6月17日 下午11:17


相关推荐

  • 工作笔记——使用Jest时遇到的一些问题

    最近公司想要从mocha+karma的前端单元测试方式转换到Jest,然后任务就分配给我了,好吧,在这之前连单元测试是什么都不知道。硬生生的开始写单元测试了,写这篇文章的初衷是因为在配置Jest的过程

    2022年3月25日
    43
  • 静态库和动态库区别

    静态库和动态库区别转自静态库和动态库区别前言我们在编写代码的时候经常用到已有的接口 他们是以库的形式提供给我们使用的 而常见形式有两种 一种常以 a 为后缀 为静态库 另一种以 so 为后缀 为动态库 那么这两种库有什么区别呢 说明 本文主要说明 Linux 下的情况 windows 不涉及 目标文件在解释静态库和动态库之前 需要简单了解一下什么是目标文件 目标文件常常按照特定格式来组织 在 linux 下 它是 ELF 格式 ExecutableLi 可执行可链接格式 而在 windows 下是 PE P

    2025年7月6日
    9
  • 前端写项目经验

    前端写项目经验1 最近在写一个项目遇到一些问题 记录一下 首先是在做动态增加表格 tr 忽然发现设置的日期 input 不能使用 这个需要一段 js 代码初始化 datetimepick 如这段 form datetime datetimepick minView month 选择日期后 不会再跳转去选择时分秒 language zh CN

    2026年3月26日
    2
  • Word 如何取消自动编号

    Word 如何取消自动编号Word 如何取消自动编号切换到 文件 选项卡 点击 选项 按钮 弹出 Word 选项 对话框 切换到 校对 选项卡 点击 自动更正选项 按钮 弹出 自动更正 对话框 切换到 键入时自动套用格式 选项卡 取消勾选 自动编号列表 复选框 点击 确定 按钮即可完成

    2026年3月11日
    3
  • 正确姿势临时和永久开启关闭Android的SELinux

    正确姿势临时和永久开启关闭Android的SELinux      正确姿势临时和永久关闭Android的SELinux前言  自从Android4.4强制开启SELinux以后,在开发中我们经常会遇到avcdenied的问题,为了方便开发调试我们会将SELinux关闭,那么本章将带领读者怎么临时和永久关闭Android的SELinux。正确姿势临时和永久关闭Android的SELinux1.1临时关闭Andro…

    2022年6月27日
    37
  • kubernetes网络之—Calico原理解读

    kubernetes网络之—Calico原理解读nbsp Calico 简单简介 Calico 是一个纯三层的协议 为 OpenStack 虚机和 Docker 容器提供多主机间通信 Calico 不使用重叠网络比如 flannel 和 libnetwork 重叠网络驱动 它是一个纯三层的方法 使用虚拟路由代替虚拟交换 每一台虚拟路由通过 BGP 协议传播可达信息 路由 到剩余数据中心 nbsp Calico 架构 Calico 是一个三层的数据中心网络方案 而且

    2026年3月18日
    2

发表回复

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

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