基于轨迹优化的自动驾驶汽车跟随自行车模型动力学控制(Matlab代码实现)

简介: 基于轨迹优化的自动驾驶汽车跟随自行车模型动力学控制(Matlab代码实现)

💥1 概述

本次使用轨迹优化技术来控制汽车。假设汽车遵循自行车模型的动力学。为了实现稳定和安全的跟踪,我们使用了离散时间模型预测控制。

一个离散的比例控制器(基于定义为偏离赛道中心线的函数的误差)用于生成我们的赛车将遵循的近似轨迹。


复制或下载此存储库后,在系统上打开MATLAB并运行main.m。

📚2 运行结果

🎉3 参考文献

[1]李晓芳,何俊.智能自动驾驶汽车的轨迹优化[J].价值工程,2017,36(21):129-130.DOI:10.14018/j.cnki.cn13-1085/n.2017.21.055.

👨‍💻4 Matlab代码

主函数部分代码:


clear 
close all
clc
trackDataFileName = 'TestTrack';
%% Proportional Control
initialState = [287,5,-176,0,2,0];
initialTrajectoryFileName = initialTrajectoryGenerator(trackDataFileName,initialState);
disp('Initial Trajectory Generated');
%% MPC
% differentInitialState = initialState;         % to keep the same initial state
differentInitialState = [284,5,-180,0,2,0];     % to provide a different initial state
finalTrajectoryFileName = discreteMPC(initialTrajectoryFileName,differentInitialState);
disp('MPC Trajectory Generated');
%% Plots
load(trackDataFileName);
leftLine = TestTrack.bl;
rightLine = TestTrack.br;
load(initialTrajectoryFileName);
initialTraj_X = InitialTraj.states(:,1);
initialTraj_Y = InitialTraj.states(:,3);
load(finalTrajectoryFileName);
finalTraj_X = FinalTraj.states(:,1);
finalTraj_Y = FinalTraj.states(:,3);
figure(1)
title('Initial Trajectory - Using Proportional Controller')
hold on
plot(initialTraj_X, initialTraj_Y, 'r','LineWidth',2);
plot(leftLine(1,:), leftLine(2,:), 'k','LineWidth',1);
plot(rightLine(1,:),rightLine(2,:),'k','LineWidth',1);
legend('Trajectory','Left Border','Right Border','Location','NorthWest')
hold off
figure(2)
title('Final Trajectory - Using MPC Controller')
hold on
plot(finalTraj_X,   finalTraj_Y,   'r','LineWidth',2);
plot(leftLine(1,:), leftLine(2,:), 'k','LineWidth',1);
plot(rightLine(1,:),rightLine(2,:),'k','LineWidth',1);
legend('Trajectory','Left Border','Right Border','Location','NorthWest')
hold off
figure(3)
title('Comparing initial part of track')
subplot(2,1,1);
hold on
plot(initialTraj_X, initialTraj_Y, 'r','LineWidth',2);
plot(leftLine(1,:), leftLine(2,:), 'k','LineWidth',1);
plot(rightLine(1,:),rightLine(2,:),'k','LineWidth',1);
legend('Trajectory','Left Border','Right Border','Location','NorthWest')
hold off
subplot(2,1,2);
hold on
plot(finalTraj_X,   finalTraj_Y,   'r','LineWidth',2);
plot(leftLine(1,:), leftLine(2,:), 'k','LineWidth',1);
plot(rightLine(1,:),rightLine(2,:),'k','LineWidth',1);
legend('Trajectory','Left Border','Right Border','Location','NorthWest')
hold off


相关文章
|
13天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
10天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
17天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
24天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
26天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
该程序基于ACO蚁群优化算法解决VRPSD问题,使用MATLAB2022a实现,输出优化收敛曲线及路径规划结果。ACO通过模拟蚂蚁寻找食物的行为,利用信息素和启发式信息指导搜索,有效求解带时间窗约束的车辆路径问题,最小化总行程成本。
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
本项目展示了基于分组卷积神经网络(GroupCNN)和灰狼优化(GWO)的时间序列回归预测算法。算法运行效果良好,无水印展示。使用Matlab2022a开发,提供完整代码及详细中文注释。GroupCNN通过分组卷积减少计算成本,GWO则优化超参数,提高预测性能。项目包含操作步骤视频,方便用户快速上手。
|
1月前
|
机器学习/深度学习 算法 数据处理
基于最小二乘法的太阳黑子活动模型参数辨识和预测matlab仿真
本项目基于最小二乘法,利用Matlab对太阳黑子活动进行模型参数辨识和预测。通过分析过去288年的观测数据,研究其11年周期规律,实现对太阳黑子活动周期性的准确建模与未来趋势预测。适用于MATLAB2022a版本。
|
29天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。
|
1月前
|
算法 决策智能
基于GA-PSO遗传粒子群混合优化算法的TSP问题求解matlab仿真
本文介绍了基于GA-PSO遗传粒子群混合优化算法解决旅行商问题(TSP)的方法。TSP旨在寻找访问一系列城市并返回起点的最短路径,属于NP难问题。文中详细阐述了遗传算法(GA)和粒子群优化算法(PSO)的基本原理及其在TSP中的应用,展示了如何通过编码、选择、交叉、变异及速度和位置更新等操作优化路径。算法在MATLAB2022a上实现,实验结果表明该方法能有效提高求解效率和解的质量。