本文参考(85条消息) 【路径规划】局部路径规划算法——人工势场法(含python实现 | c++实现)_CHH3213的博客-CSDN博客_人工势场法路径规划

路径规划与轨迹跟踪系列算法学习_第6讲_人工势场法_哔哩哔哩_bilibili

1. 算法简介

人工势场法是一种原理比较简单的移动机器人路径规划算法,它将目标点位置视做势能最低点,将地图中的障碍物视为势能高点,计算整个已知地图的势场图,然后理想情况下,机器人就像一个滚落的小球,自动避开各个障碍物滚向目标点。

2. 算法精讲

2.1 引力势场

引力势场主要与汽车和目标点间的距离有关, 距离越大, 汽车所受的势能值就越大; 距离越小, 汽车所受的势能值则越小, 所以引力势场的函数为:

2.2 斥力势场 

  • 决定障碍物斥力势场的因素是汽车与障碍物间的距离, 当汽车未进入障碍物的影响范围时, 其受到的势能值为零; 在汽车进入障碍物的影响范围后, 两者之间的距离越大, 汽车受到的势能值就越小, 距离越小, 汽车受到的势能值就越大。

  • 斥力势场的势场函数为:

相应的斥力为斥力势场的负梯度作用力:

 2.3 合力势场

根据上述定义的引力场函数和斥力场函数,可以得到整个运行空间的复合场,机器人的合力势场大小为机器人所受的斥力势场和引力势场之和,故合力势场总函数为:

所受合力为:

合力的方向决定汽车的行驶朝向,合力的大小决定汽车的行驶加速度。

3. 引力斥力推导计算

 化简后得斥力大小为

4. 算法缺陷与改进

4.1 目标不可达的问题

由于障碍物与目标点距离太近,当汽车到达目标点时,根据势场函数可知,目标点的引力降为零,而障碍物的斥力不为零,此时汽车虽到达目标点, 但在斥力场的作用下不能停下来,从而导致目标不可达的问题。

4.2 陷入局部最优的问题

车辆在某个位置时,无法向前搜索避障路径。

出现局部最优主要有两种情况:

  • 如下图,汽车受到的障碍物的斥力和目标点的引力之间的夹角近似为180°,几乎在同一条直线上,就会出现汽车在障碍物前陷入局部最优的问题。
  • 如果若干个障碍物的合斥力与目标点的引力大小相等、方向相反,则合力为0,智能汽车自身判断到达势能极小值的位置,但没有到达期望的目标点位置。由于合力为零,汽车就会陷在势能极小的位置,无法继续前进和转向,以致无法到达期望的目标点。

 4.3 解决方案

4.3.1 改进障碍物斥力势场函数

通过改进障碍物斥力势场函数来解决局部最优和目标不可达的问题;在传统人工势场法的障碍物斥力场模型中加入调节因子,使汽车只有到达目标点时, 斥力和引力才同时减小到零, 从而使局部最优和目标不可达的问题得到解决。

改进后的斥力场函数为:

为汽车与目标点的距离,式中n为可选的正常数。

的方向为障碍物指向车辆;的方向为车辆指向目标点。

改进的斥力场函数中加入了汽车与目标点间的距离,这样使汽车在驶向目标的过程中,受到的引力和斥力同时在一定程度上减小,且只有在汽车到达目标点时,引力和斥力才同时减小为零,即目标点成为势能值的最小点,从而使局部最优和目标不可达的问题得到解决。

4.3.2 道路边界斥力势场

如图,假设每一条车道宽度为d,有2条车道(故道路宽度为2d)。车辆宽度为w,故车辆在每一条车道内允许调整的横向移动范围为d−w。

通过建立道路边界斥力势场以限制汽车的行驶区域,并适当考虑车辆速度对斥力场的影响

路劲规划与轨迹跟踪学习4——人工势场法相关推荐

  1. 自动驾驶路径规划五大常用算法(Dijkstra/人工势场/图搜索等)

    编辑 | 希骥智能网联汽车 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[规划控制]技术交流群 后台回复[规划控制综述]获取自动驾驶 ...

  2. matlab人工势场法三维演示图,人工势场法(Artificial Potential Field Method)的学习

    最近的工作重心回到到算法上之后,陆陆续续开始学习一些自动驾驶的控制算法.目前工作的方向主要是online trajectory generation和底层控制. 对于在线路径规划,一个重要的概念是其应 ...

  3. 机器人路径规划_人工势场法

    机器人路径规划_人工势场法 原理 人工势场法是由Khatib提出的一种虚拟力法.原理是:将机器人在环境中的运动视为一种机器人在虚拟的人工受力场的运动.障碍物对机器人产生斥力,目标点对机器人产生引力,引 ...

  4. 路径规划算法3 改进的人工势场法(Matlab)

    目录 传统人工势场 引力势场 斥力势场 合力势场 传统人工势场法存在的问题 改进的人工势场函数 Matlab代码实现 参考链接: [1]朱伟达. 基于改进型人工势场法的车辆避障路径规划研究[D]. 江 ...

  5. matlab人工势场法三维演示图,运动规划入门 | 5. 白话人工势场法,从原理到Matlab实现...

    如何利用人工势场进行运动规划? 1.1 引力势场(Attractive Potential Field) 人工势场这个特殊的势场并不是一个单一的场,其实它是由两个场叠加组合而成的,一个是引力场,一个是 ...

  6. 人工势场法路径规划算法(APF)

       本文主要对人工势场法路径规划算法进行介绍,主要涉及人工势场法的简介.引力和斥力模型及其推导过程.人工势场法的缺陷及改进思路.人工势场法的Python与MATLAB开源源码等方面    一.人工势 ...

  7. 基于人工势场法的二维平面内无人机的路径规划的matlab仿真,并通过对势场法改进避免了无人机陷入极值的问题

    目录 1.算法描述 2.matlab算法仿真效果 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 人工势场法原理是:首先构建一个人工虚拟势场,该势场由两部分组成,一部分是目标点对移动机器 ...

  8. 基于人工势场法的路径规划

    基于人工势场法的路径规划 \qquad 路径规划是移动机器人领域的一个重要组成部分,人工势场法是机器人路径规划算法中一种简单有效的方法. \qquad 势场法的基本思想是在移动机器人的工作环境中构造一 ...

  9. 【全局规划】人工势场法(APF)

    人工势场法APF clc clear close all%% 初始化车的参数 d = 3.5; % 道路标准宽度 W = 1.8; % 汽车宽度 L = 4.7; % 车长P0 = [0,-d/2,1 ...

最新文章

  1. php codeigniter 语言,php – codeigniter模板引擎,包括语言解析器
  2. c语言输入姓名比较是否同性,C语言基础--选择题
  3. R语言ggplot2可视化对图形进行纹理填充实战及启示:遇到问题首先去思考有没有现成的包(ggpattern)可以去解决这个问题
  4. python小程序-python好玩的小程序
  5. 全球及中国无服务器应用程序行业应用调研与投资前景规划报告2022版
  6. bool c语言_C/C++编程笔记:C语言结构体—位域,如何指定成员变量所占Bit?
  7. docker run后台启动命令_Docker-第五部分:15个 Docker 命令
  8. 6-51单片机ESP8266学习-AT指令(8266TCP服务器--做自己的AndroidTCP客户端发信息给单片机控制小灯的亮灭)...
  9. 7-55 列车调度 (25 分)
  10. mediawiki 编辑php代码,mediawiki_1.25配置wikieditor编辑器
  11. SHELL编写NGINX自动部署脚本
  12. DELL T410服务器U盘安装Centos7
  13. jQuery Event.delegateTarget 属性详解
  14. 关于智能手机的基本知识
  15. mysql 1032 1062_MySQL 1032和1062跳过错误总结
  16. win7 eclipse调用虚拟机ubuntu部署的hadoop2.2.0伪分布(1)
  17. [CodeForces]CodeForces - 1025F Disjoint Triangles
  18. 新手入门AI (Adobe Illustrator)软件工具详解(一)
  19. linux下面安装和配置nginx
  20. AGV控制系统的6大优势介绍

热门文章

  1. 四旋翼飞行器13——欧拉中的俯仰、横滚、偏航角
  2. python中的除法、取整和求模_python中的除法,取整和求模-Go语言中文社区
  3. Linux iperf 用法介绍
  4. Pytorch基础打卡01
  5. FM-分解机模型详解
  6. 操作系统 (二): 进程与线程
  7. 解决Linux无法创建新用户和/home目录下无法创建新目录的问题,或者无权限创建用户目录问题mkdir: cannot create directory ‘ ’: Permissi
  8. 计算机大数据的前景方向_大数据十大发展方向!
  9. Oracle计算偏差率的方法
  10. css判断iPhone样式