深度强化学习下移动机器人导航避障
前言
-
這篇博客不是試圖去創造輪子,而是運用現有的技術更好的解決問題,或者說僅僅是解決問題,同時也是對自己現階段工作記錄,以便日后查看。
一、運行環境
- 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语言标准