人工势场法

article/2025/8/23 17:19:17

 

 

文章目录

  • 前言
  • 一、人工势场法
  • 二、简要理解
    • 1.示例
    • 2.代码
  • 总结

 


前言

       路径规划是移动机器人领域的一个重要组成部分,传统的路径规划代表算法包括 A*算法、Dijkstra 算法、人工势场法以及仿生学的蚁群算法。人工势场法是机器人路径规划算法中一种简单有效的方法。人工势场法的基本思想是在移动机器人的工作环境中构造一个人工势场,势场中包括斥力极和吸引极,不希望机器人进入的区域和障碍物定义为斥力极,目标及建议机器人进入的区域定义为引力极,使得在该势场中的移动机器人受到其目标位姿引力场和障碍物周围斥力场的共同作用,朝目标前进。


提示:以下是本篇文章正文内容,下面案例可供参考

一、人工势场法

人工势场法(Artificial Potential Field)简称 APF,属于局部路径规划中常使用的
一种方法。将传统力学中“场”的概念引入该方法,假设让智能体在这种虚拟力场下
进行运动。如何设计引力场影响着该算法的性能,同时存在容易陷入局部极小点的局
限性。 

二、简要理解

1.示例:

概念图如图 所示,人工势场就像构建了一个吸铁石,包括引力场和斥力场。黑色为障碍物,箭头为智能体要运动的方向,目标点为“Goal”。智能体按照箭头的方向到达“Goal”,目标点像有着“吸引力”一样吸引着智能体靠近。而在障碍物附近,智能体逆着箭头的方向,好像对智能体产生“排斥力”。智能体前进的方向就是这两种力的合力的方向。

机器人在工作空间中的位置为X=[x,y]T通常的目标函数势场函数(引力场函数)为:

呼呼

 

上面公式部分我借鉴了别人的博客,地址:https://me.csdn.net/weixin_43010548

 

2.代码:

下面方法也是一种路径规划算法,不过障碍物过多的时候建立势场可能比较耗时,而且容易陷入局部最优。

算法流程如下:

1. 对于栅格场景中每一个像素分别计算到终点的距离,距离越大,则对该像素赋值越大,结束得到引力场。

2. 对于栅格场景中每一个像素分别计算到所有障碍物的距离,距离越大,则对该像素赋值越小,结束得到斥力场。

3. 引力场和斥力场相加得到总人工势场。

4. 得到人工势场后,从起始位置用梯度下降或者邻域搜索法找到一条路径到结束点。

这里建立势场只用到了障碍物最外层边界,如果障碍物所有像素全部用来计算,太过于耗时了。路径寻找用了邻域搜索。

clear all;
close all;
clc;img = imread('map.png');
imshow(img);
[h,w] = size(img);img1 = 255-(img-imerode(img,ones(3)));  %求边界
figure;
imshow(img1);p = ginput();
hold on;
plot(p(:,1),p(:,2),'r.')grav = zeros(h*w,1);                    %引力场
repu = zeros(h*w,1);                    %斥力场ind=zeros(h*w,2);
indobs=zeros(sum(sum((255-img1)>0)),2);
num = 1;
for i=1:hfor j=1:wind((i-1)*w+j,:) = [j i];if img1(i,j) ==0   indobs(num,:)=[j i];num = num + 1;endd = norm([j,i]-p(2,:));             %根据距离判断,距离越小,值越小grav((i-1)*w+j) = 2*d;              %建立引力场,2是引力系数end
endfor i=1:length(indobs)t = ind - repmat(indobs(i,:),length(ind),1);    %根据距离判断,距离越小,值越大repu = repu + 5./sqrt(t(:,1).^2+t(:,2).^2);       %建立斥力场,5是斥力系数
endrepu(repu>500) = 500;
re = grav + repu;                           %综合场imgre = reshape(re,[h,w])';nei=[ -1 -1; -1 0; -1 1;0 -1; 0 0;  0 1;1 -1; 1 0;  1 1];
path=floor(p(1,:));
pre = [0 0];
while norm(path(end,:)-p(2,:))>2    pc = path(end,:);im = imgre(pc(end,2)-1:pc(end,2)+1,pc(end,1)-1:pc(end,1)+1);[~,ind] = min(reshape(im,9,1));         %八邻域找最小值pre = path(end,:);   path = [path;path(end,:)+nei(ind,:)];if  norm(path(end,:)-pre) == 0 || ...           %超出边界或陷入局部最优了path(end,1)==1 || path(end,2) ==1 || ...path(end,1)==w || path(end,2) ==h;break;end
endhold on;
plot(path(:,1),path(:,2));
figure;
mesh(imgre);

该处使用的url网络请求的数据。


总结

代码摘自:https://www.cnblogs.com/tiandsp/p/12270897.html

 

 


http://chatgpt.dhexx.cn/article/7JvITto7.shtml

相关文章

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

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

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

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

【路径规划】局部路径规划算法——人工势场法(含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)

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

美团笔试题之查找幸运星

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

美团笔试题解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 …

信奥一本通1365

1365&#xff1a;FBI树(fbi) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6443 通过数: 4366 【题目描述】 我们可以把由“0”和“1”组成的字符串分为三类&#xff1a;全“0”串称为B串&#xff0c;全“1”串称为I串&#xff0c;既含“0”又含“1”的串则称为…

信息学奥赛一本通评测系统P1336

恭喜你看到了这篇题解&#xff0c;他会让你避开很多坑(新手推荐&#xff0c;大佬提些建议嘛) 当然&#xff0c;我不想让大佬像下面这道题中大佬一样。[AHOI2017/HNOI2017]大佬 - 洛谷https://www.luogu.com.cn/problem/P3724 1336&#…

信息学奥赛一本通---1000:入门测试题目

1000&#xff1a;入门测试题目 时间限制: 1000 ms 内存限制: 32768 KB 提交数: 254022 通过数: 152601 【题目描述】 求两个整数的和。 【输入】 一行&#xff0c;两个用空格隔开的整数。 【输出】 两个整数的和。 【输入样例】 2 3 【输出样例】 5 答案如下: #…

信息学奥赛一本通(C++版)在线评测系统网址

信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/index.php

DMSP夜间灯光数据

数据和详细信息参见https://ngdc.noaa.gov/eog/dmsp/dmsp.html&#xff09; 1、美国国防气象卫星计划&#xff08;Defense Meteorological Satellite Program&#xff0c;DMSP&#xff09;由美国空军航天与导弹系统中心运作&#xff0c;卫星运行的线性扫描系统&#xff08;Oper…

大数据应用 | 关于夜间灯光数据在经济学应用的探讨

本文转载自公众号中国经济学教育科研网 原文信息&#xff1a;Gibson, J., Olivia, S., Boe-Gibson, G. and Li, C., 2021. Which night lights data should we use in economics, and where?. Journal of Development Economics, p.102602. 近年来&#xff0c;夜间灯光数据越来…

【数据】2012-2021NPP-VIIRS全球夜间灯光数据下载教程

2011年发射的新一代对地观测卫星Suomi NPP&#xff0c;该卫星搭载的可见光/红外辐射成像仪&#xff08;Visible Infrared Imaging Radiometer Suit&#xff0c;VIIRS&#xff09;能够获取新的夜间灯光遥感影像(Day/Night Band&#xff0c;DNB波段&#xff09;&#xff0c;分辨率…