深度强化学习下移动机器人导航避障
前言
-
这篇博客不是试图去创造轮子,而是运用现有的技术更好的解决问题,或者说仅仅是解决问题,同时也是对自己现阶段工作记录,以便日后查看。
一、运行环境
- macOS High Sierra 10.13.6
- Python 2.7.17 :: Anaconda, Inc.
- tensorflow-1.8.0-cp27-cp27m-macosx_10_13_x86_64
二、配置环境
官网下载Anaconda https://www.anaconda.com
为了方便下载资源,推荐更换清华conda镜像
conda config --prepend channels
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
创建虚拟环境
conda create -n tensorflow python=2.7
-
创建成功如下图
-
启动虚拟环境:conda activate tensorflow
-
关闭虚拟环境:conda deactivate
下载基于macOS CPU优化的tensorflow框架
https://github.com/lakshayg/tensorflow-build
选择对应版本下载.whl文件
安装tensorflow
pip install --ignore-installed --upgrade /path/to/binary.whl —user
验证tensorflow是否安装成功
ps:在使用Homebrew过程中 我发现一个有趣的现象
这时会一直卡在update中
解决方案:不要关闭这个终端 打开新的终端界面 输入相同指令 即可跳过update 正常下载
三、算法设计
-
深度强化学习算法整体结构:
-
神经网络结构:
-
交互式展示应用核心业务:
四、具体实现
-
基础知识
DQN算法
Double DQN
Dueling DQN
经验优先回放
-
环境信息处理
自身状态信息
包括自身 速度 角速度 到目标点距离 以及与目标点方向夹角 四维信息
雷达信息
一次探测360维信息
探测范围360度全视野
因为其产生的点云属于长序列信息,比较难直接拆分成一个个独立的样本来通过CNN进行训练。所以采用LSTM网络来处理LIDAR点云信息,其中cell单元为512个
-
参数设置
| 0 | 4m/s | -1rad/s |
| 1 | 4m/s | -0.5rad/s |
| 2 | 4m/s | 0.0rad/s |
| 3 | 4m/s | 0.25rad/s |
| 4 | 4m/s | 1.0rad/s |
| 5 | 2m/s | -1.0rad/s |
| 6 | 2m/s | 0.0rad/s |
| 7 | 2m/s | 1.0rad/s |
| 8 | 0m/s | -1.0rad/s |
| 9 | 0m/s | 0.0rad/s |
| 10 | 0m/s | 1.0rad/s |
[注: 以上参数仅作为参考 根据实际情况可以成比例修改]
| 衰减系数 | 0.99 |
| 学习率 | 0.001 |
| 贪婪策略阈值 | 0.1 |
| 记忆池大小 | 5000 |
| 训练步数阈值 | 50000 |
| 训练回合阈值 | 1200 |
| Q-现实更新步数 | 500 |
| 最小batchsize | 32 |
| 经验回放终止阈值 | 0.00001 |
3. 奖励参数
-
训练结果
第一轮训练 无障碍条件下两次训练
第二轮训练 八个静态障碍条件下训练
第三轮训练 十个动态障碍条件下训练
-
交互式三维展示
脚手架 简化Spring配置
总结
以上是生活随笔为你收集整理的深度强化学习下移动机器人导航避障的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: GBase 8s HAC高可用方案
- 下一篇: 如何更改C语言标准