机器人路径规划:基于Q-learning算法的移动机器人路径规划,可以自定义地图,修改起始点,提供MATLAB代码

一、Q-learning算法

Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的结果,因此在Q-learning算法中更新Q表就是机器人与环境的交互过程。机器人在当前状态s(t)下,选择动作a,通过环境的作用,形成新的状态s(t+1),并产生回报或惩罚r(t+1),通过式(1)更新Q表后,若Q(s,a)值变小,则表明机器人处于当前位置时选择该动作不是最优的,当下次机器人再次处于该位置或状态时,机器人能够避免再次选择该动作action. 重复相同的步骤,机器人与环境之间不停地交互,就会获得到大量的数据,直至Q表收敛。QL算法使用得到的数据去修正自己的动作策略,然后继续同环境进行交互,进而获得新的数据并且使用该数据再次改良它的策略,在多次迭代后,Agent最终会获得最优动作。在一个时间步结束后,根据上个时间步的信息和产生的新信息更新Q表格,Q(s,a)更新方式如式(1):

式中:st为当前状态;r(t+1)为状态st的及时回报;a为状态st的动作空间;α为学习速率,α∈[0,1];γ为折扣速率,γ∈[0,1]。当α=0时,表明机器人只向过去状态学习,当α=1时,表明机器人只能学习接收到的信息。当γ=1时,机器人可以学习未来所有的奖励,当γ=0时,机器人只能接受当前的及时回报。

每个状态的最优动作通过式(2)产生:

Q-learning算法的搜索方向为上下左右四个方向,如下图所示:

Q-learning的训练过程如下:

  1. 初始化Q值函数,将所有状态-动作对的Q值初始化为0。

  2. 在每个时间步,根据当前状态选择一个动作。可以使用ε-greedy策略来平衡探索和利用。

  3. 执行选择的动作,并观察环境返回的奖励和下一个状态。

  4. 根据Q值函数的更新规则更新Q值。Q值的更新公式为:Q(s, a) = Q(s, a) + α * (r + γ * max(Q(s', a')) - Q(s, a)),其中α是学习率,γ是折扣因子,r是奖励,s是当前状态,a是选择的动作,s'是下一个状态,a'是在下一个状态下选择的动作。

  5. 重复步骤2-4,直到达到停止条件。

Q-learning算法基本原理参考文献:

1\]王付宇,张康,谢昊轩等.基于改进Q-learning算法的移动机器人路径优化\[J\].系统工程,2022,40(04):100-109. ### 二、部分代码 close all clear clc global maze2D; global tempMaze2D; NUM_ITERATIONS =500; % 最大训练次数(可以修改) DISPLAY_FLAG = 0; % 是否显示(1 显示; 0 不显示)注意:设置为0运行速度更快 CurrentDirection = 4; % 当前机器人的朝向(1-4具体指向如下) 机器人只能上下左右移动,且每次只能移动一格,移动前需要判断是否转向 % 1 - means robot facing up % 2 - means robot facing left % 3 - means robot facing right % 4 - means robot facing down %% 起始点 坐标 startX=20;startY=1; goalX=1;goalY=20; %% 导入地图 data1=load('data.txt'); data1(find(data1==0))=50; data1(find(data1==1))=0; data1(startX,startY)=70; data1(goalX,goalY)=100; maze2D=data1; orgMaze2D = maze2D; tempMaze2D = orgMaze2D; CorlorStr='gray'; ### 三、部分结果 (1)第一次运行结果 白色栅格表示无障碍物,黑色栅格则表示有障碍物 ![](https://file.jishuzhan.net/article/1779802112784338946/75e4bd6e8db0e3acd8b9b10cbd9491de.webp) ![](https://file.jishuzhan.net/article/1779802112784338946/9a1b146db03092755b0b6afb25a4adcc.webp) 机器人最终路径: 20 1 19 1 19 2 18 2 17 2 17 3 17 4 17 5 16 5 15 5 14 5 13 5 13 6 12 6 11 6 10 6 10 7 9 7 9 8 9 9 9 10 8 10 7 10 7 11 7 12 6 12 5 12 4 12 3 12 3 13 2 13 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 机器人最终路径长度为 38 机器人在最终路径下的转向及移动次数为 71 (2)第二次运行结果 白色栅格表示无障碍物,黑色栅格则表示有障碍物 ![](https://file.jishuzhan.net/article/1779802112784338946/0c61ca2f20841fd95394d9d029b7724c.webp) ![](https://file.jishuzhan.net/article/1779802112784338946/d40c5714178bcc029d5a0748ef4e2e41.webp) 机器人最终路径: 20 1 19 1 18 1 18 2 17 2 17 3 17 4 17 5 17 6 16 6 15 6 15 7 15 8 15 9 15 10 14 10 14 11 14 12 13 12 12 12 11 12 10 12 9 12 9 13 9 14 9 15 8 15 8 16 8 17 8 18 8 19 7 19 6 19 5 19 4 19 4 20 3 20 2 20 1 20 机器人最终路径长度为 38 机器人在最终路径下的转向及移动次数为 68 ### 四、完整MATLAB代码 [机器人路径规划:基于Q-learning算法的移动机器人路径规划的,可以自定义地图,修改起始点,提供MATLAB代码](https://mbd.pub/o/bread/mbd-ZZ6Wkptr "机器人路径规划:基于Q-learning算法的移动机器人路径规划的,可以自定义地图,修改起始点,提供MATLAB代码")

相关推荐
GIOTTO情10 分钟前
媒介宣发的技术革命:Infoseek如何用AI重构企业传播全链路
大数据·人工智能·重构
阿里云大数据AI技术19 分钟前
云栖实录 | 从多模态数据到 Physical AI,PAI 助力客户快速启动 Physical AI 实践
人工智能
小关会打代码26 分钟前
计算机视觉进阶教学之颜色识别
人工智能·计算机视觉
IT小哥哥呀32 分钟前
基于深度学习的数字图像分类实验与分析
人工智能·深度学习·分类
机器之心1 小时前
VAE时代终结?谢赛宁团队「RAE」登场,表征自编码器或成DiT训练新基石
人工智能·openai
机器之心1 小时前
Sutton判定「LLM是死胡同」后,新访谈揭示AI困境
人工智能·openai
大模型真好玩1 小时前
低代码Agent开发框架使用指南(四)—Coze大模型和插件参数配置最佳实践
人工智能·agent·coze
jerryinwuhan1 小时前
基于大语言模型(LLM)的城市时间、空间与情感交织分析:面向智能城市的情感动态预测与空间优化
人工智能·语言模型·自然语言处理
落雪财神意1 小时前
股指10月想法
大数据·人工智能·金融·区块链·期股
中杯可乐多加冰1 小时前
无代码开发实践|基于业务流能力快速开发市场监管系统,实现投诉处理快速响应
人工智能·低代码