基于CNN-BiLSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码

路径规划是移动机器人领域主要研究内容之一,移动机器人路径规划即机器人在所处环境下选择一条从起点到终点的无碰撞路径。传统路径规划方法过分依赖环境地图,随着深度学习(Deep Learning,DL)和强化学习(Reinforcement Learning,RL)的快速发展,深度强化学习(Deep Reinforcement Learning,DRL)算法广泛应用于移动机器人路径规划和避障。

一、网络建立

1. 输入层 (input)

  • 输入尺寸:10×10×1 图像,表示输入是一个 10×10 的灰度图像。
  • 归一化:使用 "zerocenter" 归一化,即将输入数据的均值调整为零,通常用于加速训练和提高模型性能。

2. 卷积层 (con1)

  • 卷积核:16 个 3×3 的卷积核,步幅为 [1, 1],填充为 [0, 0, 0, 0]。
  • 输出尺寸:8×8×16。
  • 可学习参数
    • 权重:3×3×1×16(每个卷积核有 3×3×1 个参数,共 16 个卷积核)。
    • 偏置:1×1×16(每个卷积核有一个偏置)。
  • 作用:提取图像的局部特征,如边缘、纹理等。

3. ReLU 激活函数 (relu1)

  • 激活函数:ReLU(Rectified Linear Unit),将负值置零,保留正值。
  • 输出尺寸:8×8×16。
  • 作用:引入非线性特性,避免梯度消失问题。

4. 全连接层 (fc1)

  • 输出尺寸:1×1×64。
  • 可学习参数
    • 权重:64×1024(将 8×8×16 的特征映射到 64 个神经元)。
    • 偏置:64×1。
  • 作用:将卷积层提取的特征映射到更高维度的空间,用于更复杂的特征表示。

5. ReLU 激活函数 (relu3)

  • 激活函数:ReLU。
  • 输出尺寸:1×1×64。
  • 作用:引入非线性特性。

6. 扁平化层 (flatten)

  • 输出尺寸:64×1。
  • 作用:将多维数据展平为一维,以便输入到后续的 BiLSTM 层。

7. 双向 LSTM 层 (BiLSTM)

  • 隐藏单元:20 个隐藏单元。
  • 输出尺寸:40×1。
  • 可学习参数
    • 输入权重:160×...(具体取决于输入和隐藏单元的维度)。
    • 循环权重:160×...(用于处理时间序列的循环连接)。
    • 偏置:160×...。
  • 作用:处理序列数据,捕捉时间序列的前后依赖关系。双向 LSTM 可以同时利用过去和未来的上下文信息。

8. ReLU 激活函数 (relu)

  • 激活函数:ReLU。
  • 输出尺寸:40×1。
  • 作用:引入非线性特性。

9. 全连接层 (fc2)

  • 输出尺寸:8×1。
  • 可学习参数
    • 权重:8×40(将 40 个特征映射到 8 个输出)。
    • 偏置:8×1。
  • 作用:将 BiLSTM 的输出映射到最终的预测结果。

10. 输出层 (output)

  • 输出类型:回归输出。
  • 损失函数:均方误差(Mean Squared Error, MSE),响应为 "Response"。
  • 输出尺寸:8×1。
  • 作用:输出最终的回归结果,通常用于预测连续值。

这个网络结构结合了卷积神经网络(CNN)和双向 LSTM(BiLSTM),共包含79.6k个学习参数,用于近似Q值函数。网络输入是地图状态,输出是8个方向动作的Q值,用于指导机器人选择最优动作。

二、部分MATLAB代码及结果

bash 复制代码
close all
clear all;
clc;
%% 地图map
global map;
map=[0	0	0	0	0	0	1	0	0	0;
0	0	0	0	0	0	1	0	0	1;
0	0	0	0	0	0	0	0	0	1;
0	1	1	0	0	0	0	0	0	0;
0	1	0	0	0	1	0	0	0	0;
0	0	0	0	0	1	1	0	0	1;
1	0	0	0	0	0	1	0	0	1;
0	0	0	0	0	0	0	0	0	0;
0	0	0	0	0	0	0	0	0	0
0	1	1	1	0	0	0	0	0	0];

%% 画图
analyzeNetwork(dqn_net)

figure
plot(curve,'r-',LineWidth=2);
saveas(gca,'11.jpg')

figure
imagesc(~map)
hold on
plot(state_mark(:,2),state_mark(:,1),'c-',LineWidth=2);
colormap('gray')
scatter(start_state_pos(2) ,start_state_pos(1),'MarkerEdgeColor',[0 0 1],'MarkerFaceColor',[0 0 1], 'LineWidth',1);%start point
scatter(target_state_pos(2),target_state_pos(1),'MarkerEdgeColor',[0 1 0],'MarkerFaceColor',[0 1 0], 'LineWidth',1);%goal point
text(start_state_pos(2),start_state_pos(1),'起点','Color','red','FontSize',10);%显示start字符
text(target_state_pos(2),target_state_pos(1),'终点','Color','red','FontSize',10);%显示goal字符
title('基于DQN的机器人路径规划')
saveas(gca,'12.jpg')


三、完整MATLAB代码见下方名片

相关推荐
深圳南柯电子14 分钟前
深圳南柯电子|EMC电磁兼容测试系统:5G时代应对频段的干扰挑战
网络·人工智能·互联网·实验室·emc
w陆压20 分钟前
2.TCP三次握手、四次挥手
网络·网络协议·计网知识点
知乎的哥廷根数学学派27 分钟前
基于高阶统计量引导的小波自适应块阈值地震信号降噪算法(MATLAB)
网络·人工智能·pytorch·深度学习·算法·机器学习·matlab
DeepFlow 零侵扰全栈可观测28 分钟前
DeepFlow 实践:利用 eBPF 实现覆盖从网关到数据库的全栈分布式追踪
网络·分布式·云原生·云计算
墨北小七29 分钟前
CNN深度学习模型在小说创作领域的应用
人工智能·深度学习·cnn
松涛和鸣31 分钟前
51、51单片机
c语言·网络·单片机·嵌入式硬件·tcp/ip·51单片机
cici1587435 分钟前
基于光流场的Demons算法MATLAB实现
人工智能·算法·matlab
aini_lovee40 分钟前
基于判别码的深度神经网络快速自适应语音识别 MATLAB实现
matlab·语音识别·dnn
CHENKONG_CK41 分钟前
晨控CK-FR09EIP与汇川H5U系列PLC配置EtherNet/IP通讯连接手册
网络·网络协议·自动化·rfid
上海云盾安全满满43 分钟前
面对T级大流量攻击,业务如何确保稳定可用
网络