基于智能算法的无人机路径规划研究(Matlab代码实现)

news2025/7/27 4:01:05

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

针对自主车辆换道时对换道轨迹平稳性和效率性的要求, 设计了一种基于五次多项式模型的换道轨迹规划方法。建立车辆的五次多项式换道轨迹模型, 并为其增加调节参数。以换道轨迹的平均曲率最小和长度最短为目标设计目标函数, 同时考虑换道过程中的舒适性和平稳性, 以车辆的横向速度、横向加速度和横摆角速度为约束条件, 最后采用序列二次规划算法对参数进行优化求解。对换道轨迹进行跟踪仿真试验, 仿真结果证明, 轨迹规划的结果满足实际状况下的车辆换道要求, 验证了换道轨迹的合理性。

自主车辆技术是个集通信、检测、控制和计算机等技术为一体的综合技术,通过对自主车辆技术的研究和开发,可以提升道路交通的安全性,对构建安全交通系统具有重要的科学理论意义和实际应用价值。车道变换行为是日常行车中最常见的驾驶行为之一,车辆换道轨迹的规划是自主车辆能否安全而又高效地完成换道任务的关键,因此对换道轨迹规划的研究逐渐成为自主车辆技术研究的重点。
目前车辆换道轨迹的规划方法主要分为基于搜索的方法和基于几何的方法。基于搜索的轨迹规划方法源自机器人学,这种方法首先需要对周围环境进行描述,建立自主车辆的工作空间,之后根据约束条件及需要完成的目标,对轨迹进行搜索获得符合要求的轨迹簇,并选出最优轨迹。孙浩等提出了一种同时满足行驶安全与全局性能最优的动态轨迹规划方法,首先在识别周围交通环境的基础上,以简单车辆动力学模型为轨迹发生器建立了车辆行驶的安全搜索空间,之后根据任务目标得出最优轨迹。但是基于搜索的轨迹规划方法大多实时性较差,在自主车辆这种实时性要求较高的场合优势并不明显。基于几何的轨迹规划通常采用参数化的曲线来描述轨迹,这种方法较为直观、精确,且运算量较小,因此是目前采用的较为广泛的轨迹规划方法。Choi等利用Bezier曲线对自主车辆路径进行轨迹规划,得到的换道轨迹平滑,过渡平稳且曲率连续,但是并未对Bezier曲线控制点的选取进行分析,也没有考虑车辆的横向加速度限制。李玮等将四段式车道变换理论为基础,引入B样条理论对传统换道轨迹进行二次规划, 给定了车辆换道轨迹的性能评价函数,可以较好地克服传统换道轨迹模型的缺陷,但是仅从轨迹特性上出发,并未考虑横摆角速度等车辆动力学特性。杨志刚等通过分析传统换道模型的缺陷,提出了一种正弦函数结合等速偏移函数的换道模型,该模型具有平滑性较好的特点,但是该模型以固定车速进行分析,并未考虑不同车速对换道轨迹的影响。Shim等提出了一种基于六次多项式的轨迹规划方法,但是阶次过高,未知系数较多,计算繁琐,收敛速度较慢。

📚2 运行结果

 

部分代码:

clear;
clc;
figure(1);
clf;
cmap = [
    0 0 0; % 0 - black - 障碍
    1 1 1; % 1 - white - 空地
    1 0 0; % 2 - red - 已搜索过的地方
    0 0 1; % 3 - blue - 下次搜索备选中心
    0 1 0; % 4 - green - 起始点/终点
    1 1 0];% 5 - yellow -  到目标点的路径
colormap(cmap);
fid = "map.bmp";
tic;
map = int8(imbinarize(imread(fid)));
% image(map);

%% 参数设置
startPt = [5, 5];
endPt = [48, 48];
H = inf(size(map));
H(startPt(1), startPt(2)) = 0;% 初始点置零
curMap = zeros(size(map));
startIndex = rolCol2Index(startPt(1), startPt(2), 50);
endIndex  = rolCol2Index(endPt(1), endPt(2), 50);
map(startIndex) = 4;%标记起点
map(endIndex) = 4;%标记终点
image(map);
% print(1,'-dbmp',sprintf('image/%d',1));
fastClose = 1;% 快速结束(终点是全局最小就停止更新)
%% 主循环 BFS
direction = [
    -1, 0;
    0, 1;
    1, 0;
    0, -1];
queue = [];
queue = [queue; startIndex];%出发点ID入队列

clear;
clc;
figure(1);
clf;
cmap = [
    0 0 0; % 0 - black - 障碍
    1 1 1; % 1 - white - 空地
    1 0 0; % 2 - red - 已搜索过的地方
    0 0 1; % 3 - blue - 下次搜索备选中心
    0 1 0; % 4 - green - 起始点/终点
    1 1 0];% 5 - yellow -  到目标点的路径
colormap(cmap);
fid = "map.bmp";
tic;
map = int8(imbinarize(imread(fid)));
% image(map);

%% 参数设置
startPt = [5, 5];
endPt = [48, 48];
H = inf(size(map));
H(startPt(1), startPt(2)) = 0;% 初始点置零
curMap = zeros(size(map));
startIndex = rolCol2Index(startPt(1), startPt(2), 50);
endIndex  = rolCol2Index(endPt(1), endPt(2), 50);
map(startIndex) = 4;%标记起点
map(endIndex) = 4;%标记终点
image(map);
% print(1,'-dbmp',sprintf('image/%d',1));
fastClose = 1;% 快速结束(终点是全局最小就停止更新)
%% 主循环 BFS
direction = [
    -1, 0;
    0, 1;
    1, 0;
    0, -1];
queue = [];
queue = [queue; startIndex];%出发点ID入队列

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]闫尧, 李春书, 唐风敏. 基于五次多项式模型的自主车辆换道轨迹规划. 机械设计. 2019;36(8):42–7.

[2]Chen C, He Y, Bu C, Han J, Zhang X. Quartic Bézier curve based trajectory generation for autonomous vehicles with curvature and velocity constraints. In: 2014 IEEE International Conference on Robotics and Automation (ICRA). IEEE; 2014. p. 6108–6113.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker学习(4)—— 容器数据卷

数据卷是为了实现数据的持久化,完全独立于容器的生存周期,因此Docker不会在删除容器时删除其挂载的数据卷。 通过下述方式运行一个容器,会自动将docker容器内的数据保存进宿主机的磁盘中 docker run -it --privilegedtrue -v /宿主机绝对路…

都说自动化测试才是测试人员的新出路,为什么要做自动化测试?

一、自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。    个人认为,只要能服务于测试工作,能够帮助我们提升工作效率的,不管是所谓的自动化工具,还是简单的SQL 脚本、批处理脚本,还是自己…

如何使用轻量应用服务器搭建NextCloud私有云网盘?

之前有介绍过使用可道云搭建个人云网盘系统:,这个教程我将介绍使用Nextcloud搭建个人云网盘,搭建的过程很相似,都采用的是宝塔面板作为辅助,可道云搭建使用的是一件部署,这个则需要使用上传解压文件的形式部…

专用短程通讯(DSRC)技术介绍

一、DSRC系统的概述 DSRC 通信协议是 ITS 标准体系框架中的重要组成部分,是整个智能交通服务系统的基础。DSRC 系统是一种无线移动通信系统,它通过数据的双向传输将车辆和道路有机的结合起来,利用计算机网络,在智能交通系统中提供…

中小团队要怎样搭建架构?腾讯大佬来教你,直接跟着大佬吃经验!

前言 在这个瞬息万变的时代,一个合适的团队架构对于企业发展至关重要。面对时代风向,腾讯等互联网巨头逐步开始了它们的变革;那么中小团队要如何搭建自己的团队架构呢? 今天给大家分享一份被称之“成为高级架构师捷径”的实用技…

【OpenGL开发】VS2017+nuget配置OpenGL开发环境(C++)

文章目录1、简介1.1 先决条件1.2 查找并安装包1.3 卸载软件包1.4 更新包1.5 管理解决方案的包1.6 “合并”选项卡2、nuget配置程序源2.1 在线源2.2 本地源3、nuget安装nupengl4、代码测试4.1 测试代码:freeglut4.2 测试代码:freegluttea4.3 测试代码&…

简单实现Springcloud跨项目相互调用

目录 一、前置准备 二、项目准备 三、实现跨项目调用 一、前置准备 我们本次是使用的电商项目中的商品、订单、用户为案例进行讲解。 技术选型 maven:3.5.4 数据库:MySQL 5.7 持久层: SpingData Jpa/Mybatis-plus 其他: SpringCloud Alibaba 技术栈 …

浅谈智能化能源管理系统平台在企业中的应用

安科瑞 时丽花 摘要:对焦化企业的智能化能源管理系统应用进行了较全面的分析,在企业节能减排、提升经济效益、优化生产组织等方面具有较高的应用价值,智能化能源管理系统在企业转型升级改造中具有广阔的前景。 关键词:智能化&am…

少样本苹果分类机器深度学习

场景: 样本少,且只有部分进行了标注。负样本类别(不是被标注的那些)不可穷尽,图像处理 步骤: 1,数据增强,扩充确认为普通苹果的样本数量 2,特征提取,使用VGG16模型提取图像特征 3…

国内优秀的多用户商城系统盘点(2022年整理)

电商战略时代,越来越多的企业或商家选择将消费者引入自己建设的独立商城,如零食行业的良品铺子、三只松鼠,从而打造属于自己的IP形象。此时,挑选一款优秀的商城源码是企业的不二之选,既降低了电商从业者和创业者的入门…

Dubbo

致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 使用zookeeper作为注册中心registry dubbo.config.annotation下相关注解 Service:被该注解修饰的类,会对外发布,包括IP、端口、路径到注册中心Reference&am…

深度学习之路=====10=====>>Resnext(tensorflow2)

简介 类型:2017CVPR 作者: Kaiming He组 和其他轻量级网络特点一样,Resnext也是通过降低参数量来改进模型,提高模型精度的。该模型基于Inception的split-transform-merge范式和VGG堆叠网络,将Resnet的单路卷积变成多…

程序员注意!35岁前,别靠死工资过日子

《2022程序员职场洞察报告》显示,六成受访者的职级和薪酬原地踏步,仅38.3%程序员群体的工作发生过变动,升职加薪、搞副业、自由工作等。 近两年,伴随疫情及行业发展的不确定性,企业招聘以及人才求职双方都变得谨慎。越…

MFC程序设计——用button更改静态文本+显示内容并弹出新内容+静态文本动态打开位图

目录 一、新建基于对话框的MFC编程项目 二、设计界面 2.设置启动项 2.找到资源视图和Dialog 3.拖入控件 三、创建变量(关联对话框与静态文本) 四、写入控件代码 1.在文本上的应用 2.在图像上的应用 2.1初始化的方法 2.2控件导入的方法 3.控件…

TSC TTP244Pro 打码机出现的问题及解决方案

背景: 最近在使用TSC的TTP 244 Pro 打码机的过程中,出现了几个小问题,最后请教了专业的人员才解决了问题,现把需要注意的点记录如下: 准备: 先去TSC的** 官网 **上找关于适用于你的打码机和使用环境的驱…

数据结构(高阶)—— AVL树

目录 一、AVL树的基本概念 二、AVL树的结点定义 三、AVL树的插入 四、AVL树的旋转 1. 右单旋 2. 左单旋 3. 右左双旋 4. 左右双旋 五、AVL树的验证 六、AVL树的性能 七、源代码 一、AVL树的基本概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或…

CXL 2.0 Device配置空间寄存器组成

目录 1 配置空间 1.1 PCI Power Management Capability Structure 1.2 PCI Express Capability Structure 2 扩展配置空间 2.1 PCIe DVSEC for CXL Device 2.2 GPF DVSEC for CXL Devices 2.3 PCIe DVSEC for Flex Bus Port 2.4 Register Locator DVSEC CXL设备配置空间…

ThinkPHP架构

文章目录一、架构总览1.1、有关常用的一些概念入口文件应用模块控制器操作模型视图驱动行为命名空间【全限定类名】1.补充二、生命周期三、入口文件四、URL访问五、模块设计六、命明空间七、自动加载八、Traits引入九、API友好一、架构总览 ThinkPHP5.0应用基于MVC(…

前后端分页插件

PageHelper 是一个 MyBatis 的分页插件,支持多种数据库,可查看官网&#xff0c;负责将已经写好的 SQL 语句&#xff0c;进行SQL分页加工。无需你自己去封装以及关心 SQL 分页等问题&#xff0c;支持多种分页方式,如从第0或第一页开始, 使用很方便。 添加依赖 <dependency&…

线代 | 【提神醒脑】自用笔记串联二 —— 向量组 · 线性方程组 · 特征值与特征向量

本文总结参考于 kira 2023 线代提神醒脑技巧班。 笔记均为自用整理。加油!ヾ(◍∇◍)ノ゙ 四、向量组 4.1、向量组的线性相关性 ----------------------------------------------------------------------------------------------------------…