首页 > 编程语言 >matlab练习程序(Pure Pursuit路径跟踪)

matlab练习程序(Pure Pursuit路径跟踪)

时间:2024-04-05 17:34:20浏览次数:34  
标签:curp length matlab Pure ind path dt sin Pursuit

当时写stanley就实现了,贴上来记录一下。

方法示意图:

控制率公式:

其中L为轴距,e为横向误差,v为车辆速度,lambda和c为控制参数。

算法步骤如下:

1. 根据当前定位结果找到路径最邻近点。

2. 计算该点与定位结果横向误差e。

3. 根据控制率公式计算出前轮转角。

4. 将前轮转角转化为航向角,带入运动模型计算出下一时刻的位姿。

matlab代码如下:

clear all;close all;clc;

v = 1;
dt = 0.1;
L=2.5;
lambda = 1;
c = 1;
curp=[0 0 0];

x = 0:0.1:50;
y = sin(x/5);
path = [x' y'];
for i=2:length(path)
    dx = path(i,1)-path(i-1,1);
    dy = path(i,2)-path(i-1,2);
    path(i-1,3) = atan2(dy,dx);
end
path(length(path),3) = path(length(path)-1,3);
plot(path(:,1),path(:,2),'r.');
hold on;

for i=1:length(path)
    
    d = path(:,1:2) - curp(1:2);
    dis = d(:,1).^2 + d(:,2).^2;
    [~,ind] = min(dis);                                     %找路径最近点索引
    
    ind = ind + 20;                                         %预瞄点
    if ind >=length(path)
       ind = length(path); 
    end
    
    R = [cos(curp(3)) -sin(curp(3)) curp(1);
         sin(curp(3)) cos(curp(3)) curp(2);
         0 0 1];
    e = inv(R)*[path(ind,1);path(ind,2);1.0];
    ey = e(2);                                              %横向偏差
     
    u = atan2(2*L*ey,(lambda*v+c)^2);                                  %期望前轮转角
    
    curp(1) = curp(1) + dt*v*cos(curp(3));
    curp(2) = curp(2) + dt*v*sin(curp(3));
    curp(3) = curp(3) + dt*v*tan(u)/L;
    
    plot(curp(1),curp(2),'g.');
end

结果如下:

绿色为跟踪路径,红色为已知路径。

参考:

https://windses.blog.csdn.net/article/details/103502743

标签:curp,length,matlab,Pure,ind,path,dt,sin,Pursuit
From: https://www.cnblogs.com/tiandsp/p/18114520

相关文章

  • MATLAB入门教程(带详细注释的MATLAB代码)
    使用方法将mlx文件在MATLAB上运行,即可得到下列结果:完整代码给出mlx文件的全文MATLAB软件入门分析Date:2023年3月13日Author:Evand入门综述使用matlab编程时,通常使用.m文件,把所有代码编好后,统一运行or调试。如果想运行一两行代码,可以使用“命令行窗口”,一般在MATLAB主......
  • MATLAB | 基础知识
    专题一:MATLAB数值数据1.数值数据类型的分类(1)整型: 无符号整数:无符号8位整数,无符号16位整数,无符号32位整数,无符号64位整数 带符号整数:带符号8位整数,带符号16位整数,带符号32位整数,带符号64位整数无符号8位整数数据范围:00000000~11111111(0~2^8-1)带符号8位整数数据范......
  • 分类预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小支持向量机数据分类预测
    分类预测|Matlab实现CPO-LSSVM冠豪猪算法优化最小支持向量机数据分类预测目录分类预测|Matlab实现CPO-LSSVM冠豪猪算法优化最小支持向量机数据分类预测分类效果基本介绍程序设计参考资料分类效果基本介绍1.Matlab实现CPO-LSSVM冠豪猪算法优化最小支持......
  • 回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测
    回归预测|Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测目录回归预测|Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测预测效果基本介绍程序设计参考资料预测效果基本介绍Matlab基于CPO-GPR基于......
  • 【基于LSTM的多输出回归预测】MATLAB代码分享
    文章目录前言一、LSTM的基本原理二、多输出回归预测模型架构三、示例代码1.读入数据并划分数据集2.运行结果总结前言`在当前的数据驱动时代,预测未来的趋势、需求、资源分配等成为了许多行业关键决策的基石。长短期记忆网络(LongShort-TermMemory,LSTM)作为一种特......
  • Matlab|储能辅助电力系统调峰的容量需求研究
    目录1 主要内容目标函数约束条件2 部分代码3 程序结果4下载链接1 主要内容该程序参考文献《储能辅助电力系统调峰的容量需求研究》,主要是对火电、风电和储能等电力设备主体进行优化调度,在调峰能力达不到时采用弃负荷,程序以发电成本、投资运维成本、弃风惩罚、......
  • SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环
    SCI一区|Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测目录SCI一区|Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介......
  • 基于Volterra级数的DFE判决反馈均衡器可见光通信系统误码率matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述      Volterra级数是一种描述非线性系统行为的强大工具。在一个非线性系统中,输出信号y(t)可以通过输入信号x(t)的多个卷积和来表示,形成所谓的Volterra级数。第一阶Volterra核(线性部......
  • m基于深度学习的肉类新鲜度检测系统matlab仿真,带GUI操作界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       数据采集:获取肉类样品在不同新鲜度阶段的图像数据,通常使用高分辨率相机拍摄并标注对应的新鲜度等级。       GoogleNet模型因其独特的“inception”模块而得名,这种模块设计......
  • MATLAB实战 | 仓库选址问题
    MATLAB实战|仓库选址问题(附视频)https://mp.weixin.qq.com/s/uIEmBJGcIm7AK4qsW0n2Aw  01应用实战【例7-19】仓库选址问题。某公司有A、B、C、D、E共5个工厂,分别位于xy平面上的坐标点(10,10)、(30,50)、(16.667,29)、(0.555,29.888)和(22.2221,49.988)处。设两点之间的距离表......