【路径规划】人工势场算法车辆避障路径规划【含Matlab源码 3637期】
人工势场算法车辆避障路径规划完整的代码,方可运行;可提供运行操作视频!适合小白!
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🔊博主简介:985研究生,Matlab领域科研开发者;
🏫个人主页:Matlab领域
🏆代码获取方式:
CSDN Matlab领域—代码获取方式
🚅座右铭:路漫漫其修远兮,吾将上下而求索。
更多Matlab路径规划仿真内容点击👇
①Matlab路径规划(高阶版)
②付费专栏Matlab路径规划(进阶版)
③付费专栏Matlab路径规划(初级版)
⛳️关注CSDN Matlab领域,更多资源等你来!!
⛄一、人工势场算法车辆避障路径规划简介
1 人工势场算法
人工势场法是由Khatib于1985年在论文《Real-Time Obstacle Avoidance for Manipulators and Mobile Robots》中提出的一种虚拟力法。它的基本思想是将机器人在周围环境中的运动,设计成一种抽象的人造引力场中的运动,目标点对移动机器人产生“引力”,障碍物对移动机器人产生“斥力”,最后通过求合力来控制移动机器人的运动。应用势场法规划出来的路径一般是比较平滑并且安全,但是这种方法存在局部最优点问题。
算法思想
(1)人工势场法的基本思想是在障碍物周围构建障碍物斥力势场,在目标点周围构建引力势场,类似于物理学中的电磁场。
(2)被控对象在这两种势场组成的复合场中受到斥力作用和引力作用,斥力和引力的合力指引着被控对象的运动,搜索无碰的避障路径。
(3)更直观而言,势场法是将障碍物比作是平原上具有高势能值的山峰,而目标点则是具有低势能值的低谷。
2 人工势场算法车辆避障路径规划
人工势场算法是一种基于势能场的路径规划方法,它通过构建势能场来实现车辆的避障和路径规划。具体来说,它将车辆看作一个带电粒子,将障碍物看作一个带同性电荷的粒子,通过计算粒子间的相互作用力,来实现车辆的避障和路径规划。以下是人工势场算法车辆避障路径规划的步骤:
(1)构建势能场
首先,需要构建势能场,将车辆和障碍物看作带电粒子,通过计算粒子间的相互作用力,来构建势能场。其中,车辆的势能为负,障碍物的势能为正。
(2)计算合力
根据势能场,可以计算出车辆所受到的合力,即车辆所处位置的梯度方向。合力的方向指向势能下降最快的方向。
(3)更新车辆位置
根据车辆所受到的合力,可以更新车辆的位置,使车辆向势能下降最快的方向移动。
(4)重复上述步骤
重复上述步骤,直到车辆到达目标点或者无法到达目标点。
⛄三、部分源代码
clear % Initialize memory
xmin=[0; 0]; % Set edges of region want to search in
xmax=[30;30];
Nsteps=500; % Maximum number of steps to produce
% Next set the parameters of the vehicle:
lambda=0.1; % Step size to take in chosen direction at each move
Ns=16; % Number of points on circular pattern to sense
r=1; % Sensing radius
xs=0ones(2,Ns); % Initialize
Jo(:,1)=0ones(Ns,1);
Jg(:,1)=0ones(Ns,1);
J(:,1)=0ones(Ns,1);
theta(:,1)=0ones(Ns,1);
for m=2:Ns % Compute the angles to be used around the circle
theta(m,1)=theta(m-1,1)+(pi/180)(360/Ns);
end
% Goal position of vehicle
xgoal=[25; 25];
% Initial vehicle position
x=[5; 5];
% Weighting parameters for planning (sets priority for being aggresive
% in the direction of the goal vs. avoiding obstacles
w1=1;
w2=1.0000e-04;
% Allocate memory
x(:,2:Nsteps)=0*ones(2,Nsteps-1);
% The obstacles:
figure(1)
clf
% Plot initial and final positions
plot(5,5,‘s’,25,25,‘x’)
axis([0 30 0 30])
hold on
xlabel(‘x’);
ylabel(‘y’);
title(‘Obstacles (o), initial vehicle (square) and goal (x) positions’);
hold on
% Plot obstacle positions (sets obstaclefunction)
plot(20,15,‘o’,8,10,‘o’,10,10,‘o’,12,10,‘o’,24,20,‘o’,18,20,‘o’)
hold off
⛄四、运行结果
⛄五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]吕春峰.基于人工势场法机器人小车避障的研究[J].昆明理工大学学报(自然科学版) .2005
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
更多推荐
所有评论(0)