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

article/2025/8/23 17:25:44

目录

传统人工势场

引力势场

斥力势场

 合力势场

 传统人工势场法存在的问题

 改进的人工势场函数

 Matlab代码实现


参考链接:

[1]朱伟达. 基于改进型人工势场法的车辆避障路径规划研究[D]. 江苏大学, 2017.

1986年Khatib首先提出人工势场法,并将其应用在机器人避障领域。该方法的基本思想是在障碍物周围构建障碍物斥力势场,在目标点周围构建引力势场,类似于物理学中的电磁场。被控对象在这两种势场组成的复合场中受到斥力作用和引力作用,斥力和引力的合力指引着被控对象的运动,搜索无碰的避障路径。

这种方法结构简单,便于低层的实时控制,在实时避障和平滑的轨迹控制方面,得到了广泛应用,其不足在于存在局部最优解,目标不可达、与障碍物碰撞等现象。

传统人工势场

引力势场

斥力势场

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

 合力势场

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

 传统人工势场法存在的问题

 改进的人工势场函数

 

 Matlab代码实现

main主函数

%main主函数
%created by MW
%date: 2023/2/28
%func: Artificial Potential Field(APF) avoiding obstacleclc;
clear;%% 创建并绘制障碍物
obstacle = [2 5;3 8;7 9;4 2;6 6;9 3];
figure(1);
scatter(obstacle(:,1),obstacle(:,2),'r')
axis equal;%% 创建并绘制初始位置和目标位置
start = [0 0];
goal = [10 10];
hold on;
scatter(start(1),start(2),'filled','g');
scatter(goal(1),goal(2),'filled','g');%% 图片标注
text(start(1),start(2),'起点');
text(goal(1),goal(2),'终点');
grid on;
axis equal;
axis([0 10 0 10]);
xlabel('x');
ylabel('y');
title('人工势场法生成避障路径')%% 生成并绘制避障路径
path = APF2D(start, goal, obstacle);
hold on;
plot(path(:,1), path(:,2),'LineWidth',1,'Color','b');

人工势场法主函数:

function path = APF2D(start,goal,obstacle)
% Artificial Potential Field(APF)avoiding obstacle path
%%APF参数初始化
%如果不能实现预期目标,可能也与初始的增益系数,Po设置的不合适有关。
att = 35;%引力增益系数
req = 10;%斥力增益系数
p0 = 5;%障碍物产生影响的最大距离,当障碍与移动目标之间距离大于Po时,斥力为0。
step = 2;%步长
maxIter = 200;%最大循环迭代次数
n = length(obstacle(:,1));%障碍物个数path = start;%路径初始化
newNode = start;
for i = 1:maxIter%% 引力计算V_att = goal - newNode;%路径点到目标点的向量r_att = sqrt(V_att(1)^2 + V_att(2)^2);%路径点到目标点的欧氏距离P_att = att * V_att;%引力%% 斥力计算%改进的人工势场法,将斥力分散一部分到引力方向。通过添加随机扰动r_att^n实现,r_att为路径点到目标点的欧氏距离,本文n取2。V_req = zeros(n,2);for j =1:nV_req(j,:) = [obstacle(j,1) - newNode(1), obstacle(j,2) - newNode(2)];%路径点到各个障碍物的向量r_req(j) = sqrt(V_req(j,1)* V_req(j,1) + V_req(j,2)* V_req(j,2));%路径点到各个障碍物的欧氏距离end   P_req = 0;for k = 1:nif r_req(k) <= p0P_req1 = req * (1 / r_req(k) - 1 / p0) * r_att^2 / r_req(k)^2;%斥力分量1:障碍物指向路径点的斥力P_req2 = req * (1 / r_req(k) - 1 / p0)^2 * r_att;%斥力分量2:路径点指向目标点的分引力P_reqk = P_req1 / r_req(k) * V_req(k,:) + P_req2 / r_att * V_att;%合力分散到x,y方向P_req = P_req + P_reqk;%斥力end     end%% 合力计算P = P_att + P_req;newNode = newNode + step * P / norm(P);path = [path; newNode];   
endend

结果:

需要注意的是,引力、斥力增益、步长的选择都会影响到结果,可以进行适当调整。

特别地,人工势场法容易陷入局部最小值,即使是加入了调节因子进行改进,在某些情况下仍然无法避免。 


http://chatgpt.dhexx.cn/article/DEElwb1L.shtml

相关文章

【控制】人工势场法及人工势场函数

目录 人工势场法-维基百科路径规划-人工势场法&#xff08;Artifical Potential Field&#xff09;引力场 (attractive/gravitation field)斥力场 (repulsive field)总场 【机器人路径规划】人工势场法PaperMatlab 代码自己编写的 Matlab1. 仅考虑引力的情况 人工势场法-维基百…

移动机器人路径规划:人工势场法

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

人工势场法matlab讲解_【机器人路径规划】人工势场法

阅读本文需要的基础知识为: 理解机器人的构型空间。建议阅读:机器人运动规划中的C space怎样理解?为什么不直接在笛卡尔坐标系下运算呢? 本文的实现程序与使用说明见我的学习工具箱:小明工坊:【个人开源】机器人运动规划学习工具箱使用说明 基本原理 1.概述 我们打两个比…

学习笔记:人工势场法

一、算法简介 1986年Khatib首先提出人工势场法&#xff0c;并将其应用在机器人避障领域&#xff0c;而现代汽车可以看作是一个高速行驶的机器人&#xff0c;所以该方法也可应用于汽车的避障路径规划领域。 二、算法思想 1、人工势场法的基本思想是在障碍物周围构建障碍物斥力…

人工势场法matlab讲解,传统人工势场法(matlab)

【实例简介】 人工势场法路径规划是由Khatib提出的一种虚拟力法(Oussama Khatib,Real-Time obstacle Avoidance for Manipulators and Mobile Robots. Proc of The 1994 IEEE.)。它的基本思想是将机器人在周围环境中的运动,设计成一种抽象的人造引力场中的运动,目标点对移动…

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

人工势场法是局部路径规划的一种比较常用的方法。这种方法假设机器人在一种虚拟力场下运动。 一、简介 如图所示&#xff0c;机器人在一个二维环境下运动&#xff0c;图中指出了机器人&#xff0c;障碍和目标之间的相对位置。 这个图比较清晰的说明了人工势场法的作用&#…

人工势场法

文章目录 前言一、人工势场法二、简要理解 1.示例2.代码总结 前言 路径规划是移动机器人领域的一个重要组成部分&#xff0c;传统的路径规划代表算法包括 A*算法、Dijkstra 算法、人工势场法以及仿生学的蚁群算法。人工势场法是机器人路径规划算法中一种简单有效的方法。人工势…

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

人工势场法是局部路径规划的一种比较常用的方法。这种方法假设机器人在一种虚拟力场下运动。 1. 简介 如图所示&#xff0c;机器人在一个二维环境下运动&#xff0c;图中指出了机器人&#xff0c;障碍和目标之间的相对位置。 这个图比较清晰的说明了人工势场法的作用&#xf…

路径规划算法3.1 人工势场法APF

路径规划算法3.1 人工势场法APF 前言电场与电势场人工势场人工势场的构建梯度下降与局部最小问题后记 前言 人工势场法APF(Artificial Potential Field)&#xff0c;是非场经典的寻路方法&#xff0c;常用于移动机器人的局部路径规划&#xff0c;其主要思想是通过目标的引力与…

【路径规划】局部路径规划算法——人工势场法(含python实现 | c++实现)

文章目录 参考资料1. 算法简介2. 算法精讲2.1 引力势场2.2 斥力势场2.3 合力势场 3. 引力斥力推导计算4. 算法缺陷与改进4.1 目标不可达的问题4.2 陷入局部最优的问题4.3 解决方案4.3.1 改进障碍物斥力势场函数4.3.2 道路边界斥力势场 5. python实现6. c实现 参考资料 路径规划…

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

本文主要对人工势场法路径规划算法进行介绍&#xff0c;主要涉及人工势场法的简介、引力和斥力模型及其推导过程、人工势场法的缺陷及改进思路、人工势场法的Python与MATLAB开源源码等方面 一、人工势场法简介 人工势场法是由Khatib于1985年在论文《Real-Time Obstacle Avoidan…

美团笔试题之查找幸运星

美团笔试题之查找幸运星 题目其实很简单&#xff0c;特别简单&#xff0c;当时看一眼题目我心中就有思路了&#xff0c;问题就是我卡在了如何循环输入上了&#xff0c;简直是不可思议&#xff0c; 当时我想复杂了&#xff0c;现在看来如此简单的问题我卡了这么久&#xff0c;…

美团笔试题解2022-3-12号

第一题 签到 题目大意 n组数据&#xff0c;判断每组是否可以被11整除或者还有两个数位1 两个条件满足其一输出yes 否则输出no 第二题 双指针 题目大意 输入一个序列 只含1 输出连续子序列乘积为正的数目 #include<bits/stdc.h> using namespace std; const int N…

美团笔试题及解析(时间:2022年9月3号)

最新美团笔试题及解析&#xff08;时间&#xff1a;2022年9月3号&#xff09; T1 乒乓球 乒乓球&#xff0c;被称为中国的“国球”&#xff0c;是一种世界流行的球类体育项目。一局比赛的获胜规则如下&#xff1a; 当一方赢得至少11分&#xff0c;并且超过对方2分及以上时&…

春招秋招--忆美团笔试

请看https://mp.weixin.qq.com/s/LKIHHOWAT_nRsD6D9Sma3Q ** **

2023校招美团笔试

这两天状态不是很好&#xff0c;美团笔试的题比较常规&#xff0c;五个编程&#xff0c;没有选择填空&#xff0c;做的一般&#xff0c;A了两道多&#xff0c;脑子感觉因为天天熬夜有点迟钝&#xff0c;最后几个题直接摆烂了。 第一题&#xff1a;送外卖 这道题当时思路出了点…

美团笔试题_20220409

前言 笔试一共五道编程题&#xff08;四一&#xff09;&#xff0c;一为专项编程题&#xff0c;估计不同岗位有题目不一样&#xff0c;使用的是赛码网&#xff0c;允许跳出界面使用自己的IDE。 在此感谢筱羊冰冰提供的部分题目及题解。 题目一&#xff1a;数圈游戏 给定一个…

美团笔试记录

美团笔试 今天下午参加了美团校招的笔试&#xff08;web前端/移动端&#xff09;&#xff0c;题型如下&#xff1a;20道选择题、20道专项选择题、2道编程题、1道论述题。但是我肯定不能说出具体是什么题目&#xff0c;毕竟好像要保护题目的隐私。 选择题 选择题难度有点大&a…

美团2023年春招在线前端笔试题回忆版

提示&#xff1a;题目不一定完全正确&#xff0c;只能说给大家参考会考察哪些知识点。 文章目录 前言一、单选&#xff08;计算机基础知识&#xff09;二、专项选择三、编程题1. 某地有一个火车站如下图所示&#xff0c;小红很好奇火车是怎么驶进驶出的&#xff0c;然后每天记录…

关于信息学奥赛一本通(C++版)在线评测系统 1153 绝对素数

信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统网址&#xff1a;信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn) 1153&#xff1a;绝对素数 时间限制: 1000 ms 内存限制: 65536 KB …