资源简介
基于两轮驱动机器人的自适应轨迹跟踪算法
代码片段和文件信息
%两轮差分驱动机器人轨迹跟踪adapt
clear all;clc;
c1=3.6;c2=2.1;c3=-2.5;
dt=0.2;d=0.05; %时间间隔
xc=[2 4 10 13 15 18 23 20 6 14 18 16];
yc=[8 15 21 26 28 27 21 12 14 16 22 21]; %被跟踪轨迹(路径),以离散点表示
wr(1)=0;vr(1)=1.4; %被跟踪轨迹初始角速度、初始线速度
a=length(xc); %离散点个数
xs(1)=12;ys(1)=1;ths(1)=pi/14;ws(1)=1;vs(1)=1.2; %实际轨迹的初始点信息,即出发点位置、角度、角速度、线速度
k=1;
%将被跟踪轨迹分段作为跟踪直线处理,相邻离散点之间为一段新的被跟踪轨迹
for i=1:a-1
dy=yc(i+1)-yc(i);
dx=xc(i+1)-xc(i);
n(i)=sqrt(dy^2+dx^2)/dt; %每个分段再分为若干时间段
thr(1)=atan(dy/dx);th(1)=ths(k); %每个分段轨迹的初始角度,实际轨迹的初始角度
if dx<0
thr(1)=pi+atan(dy/dx);th(1)=pi+ths(k);
end
x(1)=xs(k);y(1)=ys(k);w(1)=ws(k); v(1)=vs(k); %每个分段实际轨迹的初始点信息,即出发点位置、角速度、线速度
xr(1)=xc(i);yr(1)=yc(i);wr=0;vr=1; %每个分段被跟踪轨迹的初始点信息,即出发点位置、角速度、线速度
for j=1:n(i)-1
%运动学模型
thr(j)=thr(1);
xr(j+1)=xr(j)+dt*vr*cos(thr(j));
yr(j+1)=yr(j)+dt*vr*sin(thr(j));
%运动学模型
th(j+1)=th(j)+dt*w(j);
x(j+1)=x(j)+dt*v(j)*cos(th(j));
y(j+1)=y(j)+dt*v(j)*sin(th(j));
%每个分段的跟踪误差
e=[ cos(th(j))*(xr(j)-x(j))+sin(th(j))*(yr(j)-y(j));
-sin(th(j))*(xr(j)-x(j))+cos(th
- 上一篇:backstepping轨迹跟踪
- 下一篇:eemd算法的matlab实现
相关资源
- 自适应卡尔曼滤波
- 语音去噪RLS自适应滤波算法
- 自适应谱熵端点检测matlab实现
- 自适应卡尔曼滤波,MATLAB
- 自适应matlab程序
- 自适应控制——带遗忘因子的递推最
- STAP仿真程序(全自由度空时自适应处
- 基于Matlab的模糊自适应PID控制器仿真
- SINR自适应波束形成器matlab代码
- 空时自适应处理3DT算法仿真
- 机器人模糊自适应控制
- 自适应滤波matlab代码
- 归一化LMS算法自适应滤波器的MATLAB仿
- 自适应平滑滤波matlab
- 自适应卡尔曼滤波,MATLAB_main
- 基于遗传算法的OFDM自适应资源分配算
- 自适应全变分图像去噪Matlab源代码
- 自适应滤波器matlab仿真246008
- 自适应门限法图像二值化(matlab)
- 压缩感知稀疏度自适应匹配追踪算法
- 在MATLAB中采用RLS算法实现FIR自适应滤
- 自适应滤波器的MATLAB与FPGA实现
- Matlab实现(KNN)自适应谱聚类
- 模糊自适应PID控制的Matlab 仿真代码
- 自动驾驶基于传感器融合的ACC功能s
- blocklms块自适应滤波器matlab代码
- 自适应模糊控制matlab实现
- 基于Matlab的二阶系统的模糊自适应P
- DBF的matlab仿真程序
- matlab 两种自适应数值积分算法
评论
共有 条评论