✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
针对目前关于Dubins路径的研究未考虑速度约束的情况,根据Dubins路径的特点,提出了速度控制算法实现无人机对Dubins路径的有效跟踪.首先为机器人生成满足要求的Dubins路径,随后采用速度控制方法对机器人跟踪Dubins路径进行控制,并通过设置虚拟位姿点的方法,使机器人完成速度大小的调整,以期望速度大小到达任务点,实现了机器人在路程,速度约束条件下的运动控制.最后利用matlab平台验证,实验及仿真结果表明了该方法简便可行,易于实现.
⛄ 部分代码
%程序入口
clear all;
close all;
% 设置AUV工作区域
xmin = [0; 0];
xmax = [50;50];
%!!!通用参数设置!!!%
% 设置AUV和目标点的参数
% 设定目标
Target = [
15 24;
10.5 11;
4 3;
18 6;
4 20;
20 13;
% 9 8;
% 20 20;
% 7 14;
]';
% 设定机器人矢量,速度、与X正半轴夹角
TargetV = [
0 1*pi/4;
0 2*pi/4;
0 2*pi/4;
0 2*pi/4;
0 3*pi/4;
0 2*pi/4;
0 2*pi/4;
0 3*pi/4
]';
% 设定机器人
Robot = [
% 20 20;
% 16 23;
12 21;
% 11 16;
4 10;
% 24 1;
% 23 16;
% 9 8;
% 20 20;
% 7 14;
]';
% 设定机器人矢量,速度、与X正半轴夹角
RobotV = [
0 3*pi/4;
0 2*pi/4;
0 1*pi/4;
0 1*pi/4;
0 2*pi/4;
0 1*pi/4;
0 1*pi/4;
0 1*pi/4;
0 1*pi/4
]';
% 设定障碍物
%0-不显示 1-显示
ObstacleFlag = 1;
%障碍物矩阵
Obstacle = [
-1 0;
7.5 15;
% 22 15;
% 4 5
]';
ObstacleR = 1; %障碍物半径
%效验四个矩阵数据
Mat1 = size(Target);
TarNum = Mat1(1,2);
Mat2 = size(Robot);
RorNum = Mat2(1,2);
Mat3 = size(TargetV);
TarVNum = Mat3(1,2);
Mat4 = size(RobotV);
RorVNum = Mat4(1,2);
if(TarNum~=TarVNum||RorNum~=RorVNum)
% error('初始化数组长度错误')
end
%根据机器人的数量初始化记录任务和距离的数组
%第一行记录对应号码机器人的任务数量
%第二行记录对应号码机器人的行走距离(单位长度)
RobortMonitor = zeros(2,RorNum);
%负载设定上限:向上取整
taskMax=ceil(TarNum/RorNum)+1;
% taskMax=3;
%最大行走距离判断
maxDis=taskMax*100;
%洋流参数
currentFlag=0;%洋流参数启用标志 0-不启用;1-启用
vc=1;%偏移长度
ai=30*pi/180;
%!!!轨迹参数!!!%
%直线dubins参数
%0-直线
%1-dubins(目标和机器人都有速度向量)
%2-dubins(机器人带速度向量)
lineFlag=1;
⛄ 运行结果
⛄ 参考文献
[1] 刘流, 梁晓龙, 何吕龙,等. 考虑速度约束的无人机Dubins路径规划[J]. 火力与指挥控制, 2018, 43(12):6.
[2] 李浩, 郭剑东, 梁辰雨,等. 一种基于Dubins动态路径规划的多无人机一致性集结方法:, CN202111410988.5[P]. 2022.
[3] 张骁, 韩云涛, 许振,等. 基于Dubins曲线和遗传算法的AUV路径规划方法[J]. 自动化技术与应用, 2020, 39(12):5.
[4] 宋国浩, 黄晋英, 兰艳亭. 基于Dubins路径的智能车辆路径规划算法[J]. 火力与指挥控制, 2016, 41(6):5.