日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深度强化学习下移动机器人导航避障

發布時間:2024/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度强化学习下移动机器人导航避障 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  • 這篇博客不是試圖去創造輪子,而是運用現有的技術更好的解決問題,或者說僅僅是解決問題,同時也是對自己現階段工作記錄,以便日后查看。

一、運行環境

  • 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 正常下載


    三、算法設計

  • 整體結構
  • LSTMLSTMCNNconcat環境信息DRL移動機器人路徑規劃決策深度學習實時雷達點云信息自身狀態信息掃描地圖圖像信息強化學習路徑規劃方案測試驗證
  • 技術實現
    • 深度強化學習算法整體結構:

    • 神經網絡結構:

    • 交互式展示應用核心業務:


    四、具體實現

    • 基礎知識
  • DQN算法

  • Double DQN

  • Dueling DQN

  • 經驗優先回放

    • 環境信息處理
  • 自身狀態信息

    包括自身 速度 角速度 到目標點距離 以及與目標點方向夾角 四維信息

  • 雷達信息

  • 一次探測360維信息

    探測范圍360度全視野

    因為其產生的點云屬于長序列信息,比較難直接拆分成一個個獨立的樣本來通過CNN進行訓練。所以采用LSTM網絡來處理LIDAR點云信息,其中cell單元為512個

    • 參數設置
  • 控制運動指令集
  • 指令編號速度角速度
    04m/s-1rad/s
    14m/s-0.5rad/s
    24m/s0.0rad/s
    34m/s0.25rad/s
    44m/s1.0rad/s
    52m/s-1.0rad/s
    62m/s0.0rad/s
    72m/s1.0rad/s
    80m/s-1.0rad/s
    90m/s0.0rad/s
    100m/s1.0rad/s

    [注: 以上參數僅作為參考 根據實際情況可以成比例修改]

  • 算法參數
  • 參數名大小
    衰減系數0.99
    學習率0.001
    貪婪策略閾值0.1
    記憶池大小5000
    訓練步數閾值50000
    訓練回合閾值1200
    Q-現實更新步數500
    最小batchsize32
    經驗回放終止閾值0.00001


    3. 獎勵參數

    # 假如上一時刻到目標的距離<這一時刻到目標的距離就會有負的獎勵if self.d_last < self.d:reward = reward - 0.1 * (self.d - self.d_last)if self.d_last >= self.d:reward = reward + 0.1 * (self.d_last - self.d)# 速度發生變化就會有負的獎勵reward = reward - 0.01 * (abs(self.w_last - self.cmd[1]) + abs(self.v_last - self.cmd[0]))# 到達目標點有正的獎勵if self.d < self.dis:reward = reward + 20# 碰撞障礙物以及邊界有負的獎勵for i in range(len(self.obs_pos)):if math.sqrt((self.robotstate[0] - self.obs_pos[i][0]) ** 2 + (self.robotstate[1] - self.obs_pos[i][1]) ** 2) < 2:reward = reward - 1self.done_list = Trueif self.robotstate[0] >= 19.5 or self.robotstate[0] <= -19.5:reward = reward - 1self.done_list = Trueif self.robotstate[1] >= 19.5 or self.robotstate[1] <= -19.5:reward = reward - 1self.done_list = True
  • 移動障礙運動規則
  • for i in range(2):a=random.uniform(0,0.2)b=random.uniform(0,0.2)for h in range(1,6): self.obs_pos[i][0] =self.obs_pos[i][0] +aself.obs_pos[i][1] =self.obs_pos[i][1] +bfor i in range(2):a=random.uniform(0,0.2)b=random.uniform(0,0.2)self.obs_pos[i+2][0] =self.obs_pos[i+2][0] - aself.obs_pos[i+2][1] =self.obs_pos[i+2][1] - bfor i in range(2):a=random.uniform(0,0.1)b=random.uniform(0,0.1)self.obs_pos[i+4][0] =self.obs_pos[i+4][0] - aself.obs_pos[i+4][1] =self.obs_pos[i+4][1] + bfor i in range(2):a=random.uniform(0,0.2)b=random.uniform(0,0.2)self.obs_pos[i+6][0] =self.obs_pos[i+6][0] + aself.obs_pos[i+6][1] =self.obs_pos[i+6][1] - bfor i in range(2):a=random.uniform(-0.1,0.2)b=random.uniform(-0.1,0.2)self.obs_pos[i+8][0] =self.obs_pos[i+8][0] + aself.obs_pos[i+8][1] =self.obs_pos[i+8][1] + b
    • 訓練結果

    第一輪訓練 無障礙條件下兩次訓練

    第二輪訓練 八個靜態障礙條件下訓練
    第三輪訓練 十個動態障礙條件下訓練

    • 交互式三維展示
  • 主要技術及基本原理


  • 腳手架 簡化Spring配置

  • 頁面效果展示
  • 總結

    以上是生活随笔為你收集整理的深度强化学习下移动机器人导航避障的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。