机器人路径规划:基于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代码")

相关推荐
摘星编程7 分钟前
CANN内存管理机制:从分配策略到性能优化
人工智能·华为·性能优化
likerhood14 分钟前
3. pytorch中数据集加载和处理
人工智能·pytorch·python
Robot侠15 分钟前
ROS1从入门到精通 10:URDF机器人建模(从零构建机器人模型)
人工智能·机器人·ros·机器人操作系统·urdf机器人建模
haiyu_y16 分钟前
Day 46 TensorBoard 使用介绍
人工智能·深度学习·神经网络
阿里云大数据AI技术21 分钟前
DataWorks 又又又升级了,这次我们通过 Arrow 列存格式让数据同步速度提升10倍!
大数据·人工智能
做科研的周师兄22 分钟前
中国土壤有机质数据集
人工智能·算法·机器学习·分类·数据挖掘
IT一氪23 分钟前
一款 AI 驱动的 Word 文档翻译工具
人工智能·word
lovingsoft26 分钟前
Vibe coding 氛围编程
人工智能
百***074532 分钟前
GPT-Image-1.5 极速接入全流程及关键要点
人工智能·gpt·计算机视觉
yiersansiwu123d1 小时前
AI二创的版权迷局与健康生态构建之道
人工智能