路径规划算法:基于广义正态分布优化的路径规划算法- 附代码

news2024/12/23 14:57:51

路径规划算法:基于广义正态分布优化的路径规划算法- 附代码

文章目录

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

摘要:本文主要介绍利用智能优化算法广义正态分布算法来进行路径规划。

1.算法原理

广义正态分布算法原理请参考:https://blog.csdn.net/u011835903/article/details/126110880

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.

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

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

相关文章

关于博客更新的二三事

原文链接:关于博客更新的二三事 前言 很显然,正如大家所见到的,这一版本主题v4.7.0进行了大量的删减工作。可能正如 “大道至简” 吧,相比于前一版本 v3.7.1 ,个人认为可能有点花哨(仅个人认为&#xff09…

uni-app使用plus本地推送通知栏信息,不使用第三方个推实现消息在线统一推送、消息通知(MQTT、WebSocket、setInterval定时器)

plus.push.createMessage() 因项目一直是运行在内网,所以不支持使用uni-push等运行在公网的第三方个推渠道。 那就只能使用plus.push.createMessage(),示例代码如下: let content "您有一条新的消息~"; let options {"cov…

玩转CSS基础:CSS盒模型

CSS盒模型 什么是CSS盒模型? 完整的 CSS 盒模型应用于块级盒子,内联盒子只使用盒模型中定义的部分内容。模型定义了盒的每个部分 —— margin, border, padding, and content ,合在一起就是在页面上看到的内容。为了增加一些额外的复杂性&a…

操作系统Linuxday04

Linux用户相关 Linux是多用户多任务,可以支持多个用户同时登录,并且多个用户可以执行不同的任务,互不影响。 不同的用户,有不同的权限,可以完成权限以内的不同的任务 用户组 如果一次性用户太多,分别给…

【嵌入式Linux项目】基于Linux的全志H616开发板智能垃圾桶项目

目录 一、功能需求 二、涵盖的知识点 1、wiringPi库下的相关硬件操作函数调用 2、线程(未使用互斥锁和条件) 3、父子进程 4、网络编程(socket套接字) 5、进程间通信(共享内存和信号量) 三、开发环境…

[MySQL]MySQL内置函数

[MySQL]MySQL内置函数 文章目录 [MySQL]MySQL内置函数1. 日期函数2. 字符串函数3. 数学函数4. 其他函数 1. 日期函数 常用日期函数如下: 函数名称描述current_date()获取当前日期current_time()获取当前时间current_timestamp()获取当前时间戳now()获取当前日期时…

Redis_安装配置(2)

目录 一、安装redis 1、安装gcc依赖 2、下载并解压安装包 3、编译 4、安装 5、设置全局命令 二、启动redis 1、前台启动 2、后台启动 2.1 修改redis.conf文件 2.2 使用指定配置启动redis 2.3 kill redis的进程 3、开机启动 三、配置redis 远程访问设置 设置密码…

Magic3D: High-Resolution Text-to-3D Content Creation(高分辨率文本到3d内容创建)

Magic3D: High-Resolution Text-to-3D Content Creation(高分辨率文本到3d内容创建) Paper:https://readpaper.com/pdf-annotate/note?pdfId4738271534435532801&noteId1848084184935912192 Project:https://research.nvidia…

InstructGPT:语言模型的人类反馈指令对齐

论文标题:Training language models to follow instructions with human feedback论文链接:https://arxiv.org/abs/2203.02155论文来源:OpenAI 一、概述 大型语言模型(Large language models,LLMs)可以通过…

TortoiseGit的安装和使用

1、TortoiseGit的下载安装 安装说明:因为TortoiseGit 只是一个程序壳,必须依赖一个 Git Core,所以安装前请确定已完成git安装和配置。 TortoiseGit下载地址 https://download.tortoisegit.org/tgit/ ,最新稳定版本2.11.0.0。 点进去下载程序包和语言包(非必须),安装时…

【网络】网络基础(一)

目录 一、网络协议初识 1、协议分层 2、OSI七层模型 3、 TCP/IP五层(或四层)模型 4、对网络协议栈的理解 二、网络传输基本流程 1、网络传输流程图 1.1、同一个网段内的两台主机进行文件传输 1.2、跨网段的主机的文件传输 三、数据包封装和分用 四、网络中的地址管理…

配置微服务负载均衡的两种方式

说明:在微服务开发中,每个服务是通过服务名称来区分的,当两个微服务名称相同时,注册中心会视为这两个服务是相同的。配置对应的负载均衡策略,当其他服务发送请求过来的时,可以对这两个微服务进行规则访问。…

Linux的起源

UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥&…

Prompt本质解密及Evaluation实战与源码解析(二)

9.4 Evaluation for Agents源码解析 如图9-4所示,转过来,我们再看一下LangChain框架代理评估(Evaluation for Agents)的源代码。 图9- 4 LangChain的evaluation agents目录 在trajectory_eval_prompt.py文件里面,写了一个非常经典的提示词。 1. """提示…

抽象轻松有点使用的JavaScript

数据类型转换 定义概念:将一种数据类型通过用特定的方法转换成另一种数据类型 拆分: 数据类型转换 A1(一种数据类型) A2(方法) A3(转换成另一种数据类型) 理解:A1 &…

使用STM32 再实现电动车防盗钥匙扣

实现目标 1. 点击遥控器 A 按键,系统进入警戒模式,一旦检测到震动(小偷偷车),则喇叭发出声响报警 2. 点击遥控器 B 按键,系统退出警戒模式,再怎么摇晃系统都不会报警 硬件介绍 1. 震动传感器…

安装orcle报错:指定的 Oracle 系统标识符 (SID) 已在使用

安装orcle报错:[INS-35075]指定的 Oracle 系统标识符 (SID) 已在使用 说明前面的orcle没有彻底删除 解决这个问题: 搜索框 —— > 输入:regedit ——> 回车 运行regedit,选择HKEY_LOCAL_MACHINE SOFTWARE ORACLE&#xff…

【Android】从零搭建组件化项目

组件化系列文章介绍的内容稍微多了点,本着研究透这玩意的精神,从组件化的简介开始说起。 目录 简介组件化、模块化与插件化开始创建配置共享文件打包模式配置APT与JavaPoet 简介 什么是组件化? 将多个功能模板拆分、重组的过程。 为什么要使…

GEE入门学习,遥感云大数据分析、管理与可视化以及在林业应用丨灾害、水体与湿地领域应用丨GPT模型应用

目录 ①海量遥感数据处理与GEE云计算技术实践应用 ②GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用 ③GEE遥感云大数据林业应用典型案例实践及GPT模型应用 ④遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用 ①海量遥感…

78. 左旋转字符串

目录 链接: 题目: 思路: 代码: 图片: 链接: 原题链接 题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作的功能。 比如输入字…