matlab实现纯跟踪算法
对《Pure Pursuit纯跟踪算法Python/Matlab算法实现》该博客matlab算法提升:
该博客链接:https://blog.csdn.net/gophae/article/details/102761138
该博客算法跑的效果:
- 路径没有完整跟下来,可以看出尾部少一块
我在该博客提供算法的基础上做了改进:
下面展示一些 内联代码片
。
// An highlighted block
k = 0.1; % look forward gain
Lfc = 1; % look-ahead distance
Kp = 1.0 ; % speed propotional gain
dt = 0.1 ;% [s]
L = 2.9 ;% [m] wheel base of vehicle
cx = 0:0.1:50;
cx = cx';
for i = 1:length(cx)
cy(i) = sin(cx(i)/5)*cx(i)/2; %曲线函数
% cy(i)=(3.75/(3.^5))*(6*i.^5-15*3*i.^4+10*3^2*i.^3);
% cy(i) = i;
endi = 1;
target_speed = 3;
T = 80;
lastIndex = length(cx); %lastIndex=501
x = 0; y = -3; yaw = 0; v = 2; %初始状态
time = 0;
Lf = k * v + Lfc; %相当于预瞄距离
figurewhile T > time [target_ind,~]= calc_target_index(x,y,cx,cy,Lf) %找到预瞄点ai = PIDcontrol(target_speed, v,Kp); %pid控速度[~,After_Lf]= calc_target_index(x,y,cx,cy,Lf) di = pure_pursuit_control(x,y,yaw,v,cx,cy,target_ind,k,Lfc,L,After_Lf);[x,y,yaw,v] = update(x,y,yaw,v, ai, di,dt,L)time = time + dt;pause(0.05)plot(cx,cy,'b',x,y,'r-*')drawnowhold on
endfunction [x, y, yaw, v] = update(x, y, yaw, v, a, delta,dt,L) %更新状态x = x + v * cos(yaw) * dt;y = y + v * sin(yaw) * dt;yaw = yaw + v / L * tan(delta) * dt;v = v + a * dt;
endfunction [a] = PIDcontrol(target_v, current_v, Kp)
a = Kp * (target_v - current_v);
endfunction [delta] = pure_pursuit_control(x,y,yaw,v,cx,cy,ind,k,Lfc,L,Lf) %纯跟踪tx = cx(ind);ty = cy(ind);%alpha = atan((ty-y)/(tx-x))-yaw; %实际点的夹角-航向角alpha=atan2((ty-y),(tx-x))-yaw;%预瞄距离delta = atan(2*L * sin(alpha)/Lf) ;
endfunction [ind,After_Lf] = calc_target_index(x,y, cx,cy,Lf) %找到最近的那个
N = length(cx); %N=501
Distance = zeros(N,1);
for i = 1:N
Distance(i) = sqrt((cx(i)-x)^2 + (cy(i)-y)^2);
end
[distance, location]= min(Distance);
ind = location; %第几个数
Relative_distance=distance; %实际的数
% LL = 0;
% while Lf > LL && (ind + 1) < length(cx)
% dx = cx(ind + 1 )- cx(ind);
% dy = cx(ind + 1) - cx(ind);
% LL = LL + sqrt(dx * 2 + dy * 2);
% ind = ind + 1;
% end
%
h=sqrt(Lf^2-Relative_distance^2);
sum=0;
z=1;while z<(length(cx)-ind-1)sum=sum+sqrt((cx(ind+z+1)-cx(ind+z))^2+(cy(ind+z+1)-cy(ind+z))^2);z=z+1;if (sum>=h)break;endend After_Lf=sqrt(sum^2+Relative_distance^2);
% if After_Lf>=3
% After_Lf=3
% else
% After_Lf=After_Lf
% endind=z+ind;
end
实现效果:
matlab实现纯跟踪算法相关推荐
- Pure Pursuit纯跟踪算法Python/Matlab算法实现
本文的python源代码来自: https://github.com/gameinskysky/PythonRobotics/blob/master/PathTracking/pure_pursuit ...
- 自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.阿克曼转向模型 1.1 模型理解 1.2 模型表达 二.纯跟踪算法(Pure Pursuit) 2.1 算法理解 ...
- 无人车采用纯跟踪算法跟随离线路径(ROS,C++实现)第一部分
一 前言 最近是由于实验室需求,做了一个简单的无人车轨迹跟踪算法,最主要要完成的功能还是希望无人车能够跟随离线轨迹动起来,因为自己也是在学习阶段,第一次接触这一块的知识,所以就写了这个博客,希望自己能 ...
- 自动驾驶纯跟踪算法仿真 基于Carsim-ros-simulink联合仿真平台的pp算法仿真
自动驾驶纯跟踪算法仿真 基于Carsim-ros-simulink联合仿真平台的pp算法仿真 pure pursuit纯跟踪算法 轨迹跟踪仿真 可用于两个PC端或者虚拟机 支持Carsim2018和m ...
- 纯跟踪算法用于无人车自动泊车
目的 使用简单的"纯跟踪算法"实现无人车自动泊车或者位姿调整.在泊车或者工业场景,如果空间不够,那么车辆经常需要做一些大角度的转向或者倒车,例如叉车.这些场景与一般的道路行驶场景可 ...
- dst matlab,DSTcode DST跟踪算法MATLAB代码,复杂环境中仿多目标 实现的单 Other systems 其他 272万源代码下载- www.pudn.com...
文件名称: DSTcode下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 82 KB 上传时间: 2017-03-17 下载次数: 0 提 供 者: Mar ...
- matlab运行LCT跟踪算法代码
可以参考的链接是https://blog.csdn.net/qq_32734095/article/details/86652360 至于opencv的版本,博主说opencv3.0.0没问题,我试的 ...
- 计算机视觉中,目标跟踪算法的综述
作者:YaqiLYU 链接:https://www.zhihu.com/question/26493945/answer/156025576 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...
- 路径跟踪算法之PID路径跟踪与PP跟踪
路径跟踪算法之PID路径跟踪与PP跟踪 1路径跟踪原理 2 常见的路径跟踪算法 2.1 Pure puresuit(pp)纯跟踪 2.2 PID 跟踪 1路径跟踪原理 在运用好的路径规划算法,规划好一 ...
最新文章
- 2018-3-25论文(Grey Wolf Optimizer )以及(The Whale Optimizer Algorithm)笔记一 -----作者网站+两论文摘要比对比
- wide_and_deep 思维导图和代码
- 理解一条语句:SELECT difference(sum(value)) FROM mq_enqueue WHERE channel =~ /ActiveMQ_TEST/ AND $tim...
- 【小白学习C++ 教程】十二、C++面向对象编程中的构造函数和析构函数
- 微信小程序图片上传(文字识别)
- 按键中断异步通知实现
- [状压dp]洛谷 P2157 学校食堂
- Linux 的 top 命令平均负载
- 1月29日以后需要做的事情
- python语言是一种胶水语言吗_Python是唯一被称为“胶水语言”的编程语言?事实并非如此...
- python生成倒计时图片_用Python自动化生成新年倒计时图片
- win7 计算机 地址栏扫描,Win7系统添加地址栏的两种方法
- 有长度,有角度,有点积,有人性
- 2013 B 碎纸片拼接与复原
- 科达出征珠海航展,共筑蓝天梦想
- 欢迎大家加入Xcode公社
- bzoj1208: [HNOI2004]宠物收养所 SBTSplay
- MT6762 datasheet,MT6762规格书,MT6762芯片参数资料
- 杜克大学计算机世界排名,国本美本多背景的他竟拿杜克大学保底!轻松收获21年CS录取!...
- 利用R语言制作好看的Meta分析文献偏倚风险图
热门文章
- python、oracle、linux、mysql、大数据及其它内容学习导航站
- excel 导出导入
- 中国同步带轮市场趋势报告、技术动态创新及市场预测
- 招聘数据分析师,月薪30k,这个要求高吗?
- ubuntu svn服务重启
- 秒变专家,三招教你选高品质移动电源
- PHP 7 vs HHVM性能对比 – 运维生存时间
- linux安装powerline字体,CentOS 7.3安装配置Powerline
- SSM毕设项目校园一卡通系统n659f(java+VUE+Mybatis+Maven+Mysql)
- 后缀数组 java_Java后缀数组-求sa数组