机器人路径优化:基于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-learning算法的移动机器人路径优化[J].系统工程,2022,40(04):100-109.
二、Q-learning算法求解移动机器人路径优化
部分代码:提供5个参考地图,地图数值可以修改,最大训练次数等次数即可自己修改。
部分结果:
(1)6*6的地图结果:地图中绿色为通道,蓝色为障碍物,黑线为得到的路径,起始点均标注。
机器人最终路径:
1 1
2 1
2 2
2 3
2 4
3 4
4 4
4 3
5 3
6 3
6 4
6 5
6 6
机器人最终路径长度为 12
机器人在最终路径下的转向及移动次数为 23


(2)7*7的地图结果:地图中绿色为通道,蓝色为障碍物,黑线为得到的路径,起始点均标注。
机器人最终路径:
3 2
2 2
2 3
2 4
3 4
4 4
5 4
6 4
6 5
6 6
7 6
机器人最终路径长度为 10
机器人在最终路径下的转向及移动次数为 20


(3)8*8的地图结果:地图中绿色为通道,蓝色为障碍物,黑线为得到的路径,起始点均标注。
机器人最终路径:
2 1
2 2
2 3
2 4
3 4
4 4
5 4
6 4
7 4
8 4
8 5
8 6
8 7
8 8
机器人最终路径长度为 13
机器人在最终路径下的转向及移动次数为 20


(4)9*9的地图结果:地图中绿色为通道,蓝色为障碍物,黑线为得到的路径,起始点均标注。
机器人最终路径:
2 2
2 3
2 4
3 4
4 4
4 5
4 6
4 7
4 8
5 8
6 8
6 7
6 6
7 6
8 6
8 7
9 7
9 8
9 9
8 9
机器人最终路径长度为 19
机器人在最终路径下的转向及移动次数为 39


(5)10*10的地图结果:地图中绿色为可行通道,蓝色为障碍物,黑线为得到的路径,起始点均标注。
机器人最终路径:
1 1
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
3 8
4 8
4 9
4 10
5 10
6 10
7 10
8 10
9 10
10 10
机器人最终路径长度为 18
机器人在最终路径下的转向及移动次数为 28


三、完整MATLAB代码
Q-learning求解机器人路径规划的完整MATLAB代码请添加up主的主页联系方式。