1 简介
在 1986 年,专家 Oussama Khatib 提出了实时性好、改进空间很大、应用领域也极其广泛的人工势场法去解决机器人避障及路径规划问题,人工势场法的工作原理是:将机器人所在的工作空间虚拟为充满引力势场和斥力势场的空间。目标点与机器人产生的相互作用场为引力势场,障碍物与机器人产生的相互作用场为斥力场,机器人在引力势场和斥力势场的合势场作用下,沿着势函数下降的方向运动,搜索无碰撞最优路径。具体的实现方法是对虚拟的引力场和斥力场分别求负梯度之后,可以得到引力和斥力的大小和方向,机器人在引力和斥力的合力作用下行进至目标点。基于人工势场法的机器人避障最大的特点就是边行走边利用传感器探测可行的避障路径,算法本身的特点就奠定了其相对于其他避障算法对未知环境的适应性较强的优势,并且人工势场法的计算量小、速度快、便于其他人理解,把抽象的机器人避障算法通过建模表现为受力分析、数学计算、向量求解等问题,便于改进和优化,避障轨迹平滑,缺点是会出现目标不可达,局部极小值两种问题,图 1.10 为人工势场法避障原理图,所以人工势场法非常适合应用于未知环境下对避障的实时性要求较高的避障问题求解中去。
2 部分代码
%
% TestScript for Assignment APF
%
%% Define a small map
%设置试验地图
InputMap = zeros(100);
% InputMap(rand(100)<0.1) = 1;
% InputMap(40,1:30) = 1;
% InputMap(20:70,30) = 1;
% InputMap(60,30:70) = 1;
% InputMap(50:80,70) = 1;
% InputMap(30,60:100) = 1;
% InputMap(70:100,50) = 1;
InputMap(20:50,20:30) = 1;
InputMap(70:80,10:40) = 1;
InputMap(10:60,50:60) = 1;
InputMap(75:80,75:80) = 1;
%设置起止点坐标、生成的随机点数、点之间最大的连线距离
StartNode = [7,8];
GoalNode = [90,90];
%%
close all;
[route] = APF(InputMap,StartNode,GoalNode);
3 仿真结果
4 参考文献
[1]邓学强, DENG, Xue-qiang, School, of, & Computer等. (2014). 基于改进人工势场法的移动机器人路径规划. 山东理工大学学报(自然科学版), 01(v.28;No.134), 42-45.
5 MATLAB代码与数据下载地址
见博客主页