前言:
之前在unity3d中嘗試訓練四足機械人學習奔跑前進,只是做了簡單的嘗試。在19年的寒假裡由於要寫**,所以基於強化學習提出一種分層學習演算法,實現四足機械人在腿瘸後仍可以繼續向前運動。這種是一種比較簡單的,所以也就只發表在國內的核心期刊上面。這也是我第一次寫**。個人感覺還是相比國內許多**來講,我的更加有價值些。這裡為大家介紹四足機器的案例。
在unity3d中構建機械人並不是件很困難的事情,主要還是使用hingejoint元件加上一些控制指令碼就可以完成,這方面很容易可以自己進行自我探索得到。
訓練得主要演算法還是基於ppo演算法。其實對於強化學習來講具體演算法成熟後,真正有意思得是如何將具體的任務結合到相關演算法,由於時間比較緊迫,所以我沒有在具體核心演算法上進行優化和創新。
訓練機械人由於受到了硬體的限制,我是在cpu上進行訓練。共有三個機械人進行訓練,由於控制頻率只有3hz多,所以可以進行分時進行訓練,每次以一定概率挑選獎勵最好的batch進行訓練。這裡沒有用a3c是嫌部署很麻煩,哈哈哈,我也是懶的。
很多小夥伴認為控制頻率很低怎麼跑,其實底層有自己的速度及位置控制器,神經網路只是給與乙個目標而已,所以可以在低頻率下實現控制。有很多的控制方面的都是要求計算機實現高頻控制,精度和頻率都要求極高,感覺這有點過於機械了。在以生物的角度來講,真的自然界中生物行為控制頻率和精度可以達到超高嗎?實際我想則不是這樣的。另外機械人關節運動範圍進行了限制,在我實現的機械人具體限制如下:
這裡向大家介紹初代機械人訓練 這裡
另外現在,我也在逐漸放棄unity3d的訓練環境,是因為前段時間webots2019開源後收到了大家的廣泛關注。但是綜合的教程很少可能大家都不怎麼在使用這個軟體吧!通過自學,我在這個平台上重新實現了四足機械人自平衡演算法等。webots最好的就是直接支援python,簡直棒棒噠,這樣機器學習訓練機械人就極其方便。另外,還可以進行訓練加速,有些公司在上面進行無人駕駛的模擬,簡直不能再好!
以下是在webots上實現自平衡演算法的乙個機械人,腳部有用力感測器。
強化學習 2 機械人找金幣例子
本文介紹乙個簡單的案例。目標如下 我們的機械人在上面的地圖上行走,目的是要找到寶藏,如果進入骷髏頭,遊戲就失敗。我們對地圖上的小方格進行編號 1 8 簡單表示如下 self.states 1,2,3,4,5,6,7,8 狀態空間同時定義終止狀態 self.terminate states dict ...
深度強化學習控制移動機械人
860122112 qq.com 使用深度強化學習控制移動機械人在複雜環境中避障 收集物品到指定點。所用到的演算法包括dqn deuling ddqn a3c ddpg naf。1.實驗環境 ros gazebo 2.移動機械人模型 安裝有kinect的pioneer3移動機械人 機械人從kinec...
機器學習(二十五) 強化學習(2)
為了獲得更多的獎勵,我們往往不能只看當前獎勵,更要看將來的獎勵。給定乙個mdp週期,總的獎勵顯然為 r r1 r 2 rnr r 1 r2 r n那麼,從當前時間t開始,總的將來的獎勵為 rt rt rt 1 r n rt rt r t 1 rn 但是environment往往是隨機的,執行特定的動...