路径规划算法:基于正余弦算法的路径规划算法- 附代码

news2024/11/26 15:28:57

路径规划算法:基于正余弦优化的路径规划算法- 附代码

文章目录

  • 路径规划算法:基于正余弦优化的路径规划算法- 附代码
    • 1.算法原理
      • 1.1 环境设定
      • 1.2 约束条件
      • 1.3 适应度函数
    • 2.算法结果
    • 3.MATLAB代码
    • 4.参考文献

摘要:本文主要介绍利用智能优化算法正余弦算法来进行路径规划。

1.算法原理

正余弦算法具体原理请参照:https://blog.csdn.net/u011835903/article/details/107762654

1.1 环境设定

在移动机器人的路径优化中,每个优化算法的解代表机器人的一条运动路径。优化算法会通过优化计算在众多路径中找出一条最优路径。
优化算法的设定必须和机器人运动环境模型相对应。不失一般性,假设在用栅格法对机器人运动环境建模后得出的结果是 m×n 的矩形区域,坐标值从 1 开始,如图1 。其中坐标原点栅格代表机器人的初始位置,坐标 (m,n)对应的栅格代表机器人的移动目标位置。优化算法设定的一个重要内容是确定优化算法的数学表达形式,在这里这个问题转化为用一个向量表示机器人的移动路径。经过分析发现,尽管栅格法建立的模型对空间进行了离散化,但本质上机器人的移动路径依然是连续的。

在这里插入图片描述

图1.栅格地图

1.2 约束条件

对于机器人的路径优化来说,其运动路径必须局限在栅格空间内,即搜索不能越过栅格的矩形边界。此外,还应受障碍物的限制,即机器人的运动轨迹不能穿过存在障碍物的栅格区域。

1.3 适应度函数

在本文的建模方法中,本文路径规划目标是路径长度最短。路径的长度可以表示为:

L ( P a t h ) = ∑ i = 0 n − 1 ( x l i + 1 − x l i ) 2 + ( y l i + 1 − y l i ) 2 (1) L(Path) = \sum_{i=0}^{n-1}\sqrt{(xl_{i+1} - xl_i)^2 + (yl_{i+1} - yl_{i})^2}\tag{1} L(Path)=i=0n1(xli+1xli)2+(yli+1yli)2 (1)
其中(x,y)是路径中间点的坐标

利用正余弦算法对上式进行寻优,找到最短路径。正余弦算法参数设定如下:

%% 正余弦算法参数设置
dim=length(noLM);%维度,即为非障碍物个数。
numLM0=round((EndPoint(1)-StartPoint(1))/4);%每次迭代选取的的中间路径点个数,可调
lb=0;%下边界
ub=1;%上边界
Max_iteration = 100;%最大迭代次数
SearchAgents_no = 30;%种群数量
fobj = @(x)fun(x,noS,noE,numLM0,net);%适应度函数

2.算法结果

在这里插入图片描述

3.MATLAB代码

本程序中,支持1.地图任意创建保存。2.其实点任意更改。

4.参考文献

[1]罗阳阳,彭晓燕.基于改进PSO的四轮移动机器人全局路径规划[J].计算机仿真,2020,37(07):373-379.

[2]鲁丹. 粒子群算法在移动机器人路径规划中的应用研究[D].武汉科技大学,2009.

-379.

[2]鲁丹. 粒子群算法在移动机器人路径规划中的应用研究[D].武汉科技大学,2009.

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

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

相关文章

Java【网络编程2】详解基于 TCP 协议的 Socket API, 逐行代码解析如何服务器客户端通信(附代码)

文章目录 前言一、认识 Socket(套接字), TCP 协议和 UDP 协议1, 什么是 Socket(套接字)2, 浅谈 TCP 协议和 UDP 协议的区别和特点 二、基于 TCP 协议的 Socket API1, ServerSocket 类2, Socket 类 三、逐行代码解析网络编程1, 逐行解析客户端1.1, 核心成员方法 start() 2, 逐行…

三维空间与位姿变换

在使用相机或者机械臂的过程中,经常会用到三维空间变换,大部分时候我们可以使用TF去获取空间中的位姿关系,但是也存在一些时候无法使用现有TF表示的情况,例如:使用相机识别工件时,已知通过图像确定了相机到…

C++ - RBTree

前面的文章中我们讲述了以二叉搜索树为基础的AVL树,本文中我们将继续讲一种二叉搜索树为基础的红黑树。 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条…

冲量在线出席2023鲲鹏昇腾开发者峰会,联合鲲鹏打造可信AIGC一体机,共筑产业数字根基

近日,以“创未来 享非凡”为主题的2023鲲鹏昇腾开发者峰会在东莞松山湖举办。鲲鹏昇腾开发者峰会是面向ICT领域开发者的技术盛会,旨在打造生态伙伴、开发者学习、交流的平台,帮助开发者深入了解鲲鹏、昇腾全栈技术,加速行业技术、…

超聚变携手冲量在线打造可信AIGC计算联合解决方案:软硬件高效协同之跃

金融行业作为全球经济的核心引擎,不断变革和创新是其发展的常态,在算力这一日趋成为数字经济时代的新型生产力的趋势下,围绕金融业数字化,业界展开了新一轮探索。 近日,2023中国国际金融展(简称&#xff1…

uniapp app 实现qq登录、微信登录

一、申请 uniapp qq登录流程: 开通 | uni-app官网 申请微信登录可前往微信开发平台:微信开放平台 uniapp 微信登录流程: uni-app官网 申请qq登录可前往qq互联:QQ互联官网首页 这些都可以请运维同学帮我们申请,前…

【Linux】驱动内核调试,是需要几板斧的

目录 前言: 一、基础打印工具 (1)printk---最常用 ①Log Buffer: ②Console: ③RAM Console: (2)动态打印 ①动态打印与printk之间的区别联系 ②动态打印常用的例子 ③动态打印转为pri…

推荐系统---AUC / NDGG

目录: ROC / AUC1:坐标含义(横坐标)FPR:伪阳性率,分类器 “分类错误的负样本个数” 占 “总负样本个数” 的比例。(纵坐标)TPR:真阳性率,分类器 “分类正确的…

centos 7.6 安装mysql 5.7.35

centos 7.6 安装mysql 5.7.35 1、下载mysql安装包2、安装文档3、安装MySQL包4、安装后形成的配置文件和程序位置5、安装后设置5.1、修改MySQL root账户默认密码5.2、关闭系统防火墙 6、使用mysql 5.7.35 数据库6.1、命令行登录MySQL 5.7.35 数据库6.2、navicat连接mysql 5.7.35…

酒精和肠内外健康:有帮助还是有害?

谷禾健康 酒精与健康 饮酒作为一种特殊的文化形式,在我们国家有其独特的地位,在几千年的发展中,酒几乎渗透到日常生活、社会经济、文化活动之中。 据2018年发表的《中国饮酒人群适量饮酒状况》白皮书数据显示,中国饮酒人群高达6亿…

MS5208数模转换器可pin对pin兼容DAC128S085

DAC128S085 是一款功能齐全的通用八通道 12 位电压输出数模转换器 (DAC),可采用 2.7V 至 5.5V 单电源供电,3V 时功耗为 1.95mW,5 V 时功耗为 4.85mW。DAC128S085 采用 16 引脚 WQFN 封装和 16 引脚 TSSOP 封装。WQFN 封…

Convolutional Neural network(卷积神经网络)

目录 Why CNN for Image? The whole CNN structure Convolution(卷积) Max Pooling Flatten CNN in Keras What does CNN learn? what does filter do what does neuron do what about output Deep Dream Application Pla…

数据库缓存服务——NoSQL之Redis配置与优化

一、缓存概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存…

测试用例的设计方法

目录 测试用例的设计方法 等价类: 等价类分为有效等价类与无效等价类 分类树 边界值: 语法测试 正面测试: 负面测试: 判定表测试 因果图: 场景法: 随机测试: 希望能起到帮助&#xf…

关于使用pyinstaller来打包PySide2程序中的问题

打包 pyinstaller 02.py --noconsole --hidden-import PySide2.QtXml 报错0:The ‘pathlib‘ package is an obsolete backport of a standard library package 分析:这个是因为笔者使用的conda的集成环境,这里面自带了打包程序&#xff0c…

Cocos creator小游戏实现套牛小游戏资源及代码

Cocos creator实现套牛小游戏资源及代码 一 安装CocosDashBoard二 新建2D项目RunCow1、管理项目目录2、搭建界面 三 上线微信小游戏1、上线微信小游戏2、Cocos Creator代码打包上传3、上线微信小游戏出现问题 Cocos creator小游戏实现套牛小游戏资源及代码 最近在学习Cocos Cre…

23案例P135-员工部门增删改查实现

一、准备工作 需要完成tlias的部门管理和员工管理 创建tlias数据库,导入 -- 部门管理 create table dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null commen…

软件I2C读写MPU6050代码

1、硬件电路 SCL引到了STM32的PB10号引脚,SDA引到了PB11号引脚软件I2C协议: 用普通GPIO口,手动反转电平实现协议,不需要STM32内部的外设资源支持,故端口是可以任意指定MPU605在SCL和SDA自带了两个上拉电阻,…

漏刻有时地理信息系统说明文档(LOCKGIS、php后台管理、三端一体PC-H5-微信小程序、百度地图jsAPI二次开发、标注弹窗导航)

漏刻有时地理信息系统LOCKGIS 前言一、运行环境(一)环境检查(二)权限检查(三)函数支持(四)域名相关 二、核心代码(一)坐标展示(二)实时…

Excel快捷键大全(2023最新版总结)

案例:Excel快捷键大全 【作为一名打工人,我总是要用到Excel表格,大家平常在使用Excel时都有什么比较好用的快捷键推荐吗?】 Excel是一款功能强大的电子表格软件,可以用于数据管理、计算、分析和报表生成等多种任务。…