基於Python的四足機器人RRT路徑算法仿真

2022-01-05 拉勾科研

     1 V-rep仿真平臺
  在仿真平臺上仿真相比於在真實的機器人上直接測試更能夠節省時間和科研成本,v-rep仿真平臺是一款多功能的仿真軟體,擁有逼真的3D渲染,可以用多種腳本語言進行仿真,像c++、maflab、Python等等。這裡我們使用Python進行聯合仿真。
  2仿真搭建
  首先進行客戶端配置,在v-rep的安裝文件夾找到vrep.py,vrepConst.py還有window平臺需要使用的remoteApi.dll放在控制程序的文件夾中。在控制文件中使用Vrep.simxFinish(-1)關閉現有通信,simxStart(19999)獲得v-rep中scene的clientID。
  進行服務端配置需要先導入12自由度的四足機器人模型,完成添加關節和提取凸面體結構的工作。配置完成後層級關係圖和仿真環境中的模型圖1如下。
  這裡只展示四足機器人身體和右前腿部分,其他部分大同小異。各個零件在Local respondable mask設定不同的碰撞掩碼,避免零件產生碰撞,設置四足機器人總重量為1.8kg。設定關節為力矩控制模式,打開關節的動力學屬性按照mg996r舵機的參數設置最大力矩為1.5N*m和速度上限為333.33des。


  最後在v-rep四足模型的內置腳本中添加simRemoteApi.start(19999)命令。
  3四足機器人步態規劃
  使用Xuanqi Zeng的足端軌跡規劃方案,用貝塞爾函數
  改變x和Y值對四足機器人末端x和y的坐標進行規劃,調整L值可以控制四足機器人的步長,t在零到一內取值就能得到貝塞爾函數上離散的點。當L=1,x=1,Y=O時的足端軌跡規劃如下。再運用D-H參數描述法。
  用Muhammed Arif SenL的逆運動學分析的方法對這些四足末端點進行逆運動學分析,求出側擺關節,髖關節,膝關節的角度,用vrep.simxGetObjectHandle()給要控制的關節添加控制句柄,再使用vrep.simxSetJointTargetPosition()控制關節角度。
  4構建迷宮環境並獲取信息
  在v-rep的model browser中選擇牆體模型,移入仿真界面後,選擇Scene 0bject Properties-Adjust color-Ambient/diffuse component把亮度(Luminosity)一欄的值調為零,牆體變成黑色,這樣方便opencv對地圖進行二值化處理。
  單擊滑鼠左鍵選擇Add-Vision sensor-Perspective type生成視覺傳感器,移動視覺傳感器到世界坐標為(0,0,4)的位置世界,其姿態角Alpha、Beta和Gamma分別為180度、0度和-180度,打開Scene 0bject.Properties把解析度(Resolu-tion)X/Y改為512/512。選擇四足機器人模型再打開Scene0bject.Properties-Common在Can be seen by欄中選擇[Cam-era]DefaultCamera,這樣四足機器人只能被默認攝像頭看見,就不會出現在視覺傳感器。在Python的控制文件添加攝像頭的控制句柄,然後通過vrep.simxGetVisionSensorlmage()獲取圖像信息並用opencv進行二值化、邊緣提取。把圖像轉化為512*512的柵格地圖。
  5 RRT算法規劃路徑
  使用Sertac Karaman的RRT算法,RRT算法是相對高效的路徑規劃方法,算法原理大致如下:將起點作為根節點,在工作空間中,隨機生成一個位姿點。在位姿樹上尋找位姿點的最近鄰位姿點,判斷它們是否與障礙物碰撞。如不碰撞,將位姿點加入位姿樹。如到達目標點,溯源獲得路徑。減少四足機器人碰撞障礙物的可能性,增大障礙物邊界點的半徑為30。起點為(120,120),終點為(480,480),位姿點間的距離設置為30,下圖為RRT算法的結果。位姿點保存在txt文本文件。
  6循路方案
  生成一個方塊作為四足機器人的姿態角和位置的感應器,單擊滑鼠左鍵選擇Add-Primitive-Cuboid,將其旋轉至和世界姿態角一致,這樣可以解決許多坐標轉換的麻煩。方塊移動到四足機器人的身體中心。Scene 0bject Properties-Show dynamic properties dialog,去掉Body is respondable和Body is dynamic,關閉了它的物理學屬性,避免方塊與四足機器人產生碰撞。Scene hierarehy中把方塊移動到四足機器人層級關係圖的目錄下,方塊就可以和四足機器人一起移動旋轉。在控制文件用vrep.simxGetO bjectHandle()給要方塊添加句柄。vrep.simxGetObjectOrientation()和vrep.simxGetOb-jectPosition()分別獲取方塊的姿態角和位置。由起點到終點的順序調用txt文本文件裡的柵格地圖位姿點通過以下公式坐標轉化為世界坐標。
  把柵格地圖位姿點的縱坐標和橫坐標分別帶入公式計算,算出f(a)的值分別就是對應的世界坐標的縱坐標和橫坐標。再和方塊的位置求出目標角度和與目標位姿點的距離,和方塊的當前航向軸相比較可得出四足機器人需要轉動的角度。在四足機器人到達離位姿點一定距離以內切換到下一個位姿點,因為trot步態容易走偏,所以移動時需要修正四足機器人的航向軸直到與目標角度一致。到達終點後結束任務。


  7仿真結果
  為了方便對四足機器人仿真結果的觀察,添加物體的運動軌跡,點擊Add~Graph,再選擇Scene 0 bject Properties-Add new data stream to record,Data stream type一欄分別選擇0bject:x-position;0bject:absolute y-position;0bject:absolute z-position,而0bject/items to record一欄統一選擇Graph,拖放到四足機器人層級關係圖的身體目錄下。點擊播放鍵開始仿真,仿真過程如下,紅色線為四足機器人的運動軌跡。
  四足機器人順利走到終點,耗時約1分40秒,過程中並無與障礙物碰撞,證明了代碼的可行性。
  8結論
  通過仿真軟體的幫助,在沒有真實的四足機器人和場地的情況下,不但能檢驗機構設計的合理性,而且還能很好的驗證代碼。在四足機器人的研發也是幫助莫大,通過仿真所得的數據,能夠更準確地選擇合適的硬體製作四足機器人,給四足機器人更多功能的應用奠定了基礎。

相關焦點

  • 【路徑規劃】基於RRT算法避障路徑規劃matlab代碼
    收錄於話題 #路徑規劃set(gca, 'XTick', 0:10:200)set(gca, 'YTick', 10:10:200)grid ONhold onrect(130,70,20,60);rect(70,135,60,20);p_start = [30;160];p_goal = [160;80];rob.x = 30;rob.y
  • 移動機器人路徑規划算法研究及仿真平臺的設計與實現
    實際上,移動機器人的路徑規劃方法是基於不同的環境和具體的移動機器人控制體系結構的,在差異較大的環境中對於性能不同的移動機器人來說,不同的路徑規劃方法各有自己的優勢與劣勢。目前還沒有一種規劃方法適合各種環境任何系統,並且有時候選擇不同的規劃方法結合雙方的優點可以取得更好的規劃效果。
  • 【路徑規劃】基於模糊控制實現機器人路徑規劃matlab代碼
    1 簡介移動機器人可以在某些環境尤其是惡劣環境下代替人類完成相應的工作,這使得移動機器人的研究在國內外受到廣泛關注
  • 47個python機器人算法集合庫 定位、地圖、SLAM、路徑規劃...
    這是機器人算法的Python代碼集合,尤其適用於自主導航。從Localization 到Mapping到 SLAM到 PathPlanning到 Path tracking全有了!如果你是做機器人的,這下可方便了!
  • 騰訊四足移動機器人Jamoca和自平衡輪式移動機器人首次對外亮相
    打開APP 騰訊四足移動機器人Jamoca和自平衡輪式移動機器人首次對外亮相 機器人技術與應用 發表於 2020-12-11 15:20:59
  • 【2021GTC】幫助四足機器人學習具有挑戰性的任務:從模擬到現實
    首先,我將描述我們的四足機器人 ANYmal,以及它的擴展臂,稱為 ALMA。接下來,我將展示我們如何使用強化學習在幾分鐘內為這些系統學習複雜的行為,這要歸功於 Isaac Gym 的高度並行化環境。然後將機器人導入數字孿生中以學習導航任務並從 A 點步行到 B 點
  • 仿真機器人「進軍」考古界
    仿真機器人現已「進軍」考古界:一個歐洲科學家團隊17日在英國《自然》雜誌在線發表論文稱,他們利用新打造的名為「OroBOT」的機器人和仿真骨架進行研究,發現史前四足動物學會在陸上更加高效地行走的時間早於此前預期,這意味著,陸上高效運動的發展先於羊膜動物的演化和分化。
  • 一文詳解基於深度強化學習的無人車自適應路徑規劃方法
    來源 | https://zhuanlan.zhihu.com/p/79712897作者 | 搬磚的旺財 地平線機器人算法工程師
  • 路徑規劃_Dijkstra算法
    問題是:在不同城市間有固定的距離,某人從A城市出發到B城市的最短路徑。C同學抱怨自己用了窮舉法花了好久的時間才搞定,當時聽完電話覺得這個問題確實難為了文科生,當時就說你可以數學建模用路徑尋優來做,分分鐘就解決了啊。腦子裡閃過的算法裡面Dijkstra算法應該算是比較簡單且實用的了,本文就來舉個例子說明下這個算法,順便寫點腳本也可以用在自己玩的汽車仿真環境裡面。
  • 研究人員開發了可以對機器人形狀進行仿真的計算機系統
    研究人員開發了可以對機器人形狀進行仿真的計算機系統 51cto 發表於 2020-12-16 09:17:01   對於研究人員來說,選擇正確的形狀對機器人穿越特定地形的能力至關重要
  • 基於Verilog HDL的SVPWM算法的設計與仿真
    基於硬體的FPGA/CPLD晶片能滿足該算法對處理速度、實時性、可靠性較高的要求,本文利用Verilog HDL實現空間矢量脈寬調製算法,設計24矢量7段式的實現方法,對轉速調節和轉矩調節進行仿真,驗證了設計的實現結果與預期相符。
  • Unitree發售 四足機器狗 A1配件 主電機
    當時世界四足機器人研究興起,有一些這方面的論文,他非常感興趣,研究之後:「我很奇怪,為何不用成本更低、被控性能更好的電機作為四足機器人的動力?而且這應該可以實現非常好的控制效果。當時發現這個點後,我認為這是中小型四足機器人發展的趨勢。」
  • 這可能是史上最全的Python算法集!
    藍線為真實路徑,黑線為導航推測路徑(dead reckoning trajectory),綠點為位置觀測(如GPS),紅線為PF估算的路徑。該算法假設機器人能夠測量與地標(RFID)之間的距離。PF本地化會用到該測量結果。
  • 基於LMS算法的回聲消除系統仿真研究
    當下最熱門的三種回聲消除算法分別是維納濾波算法,最陡下降算法,LMS算法。本文基於LMS算法,應用MATLAB進行仿真研究,並改進了LMS算法,得出更好的回聲消除系統。當下最熱門的三種回聲消除算法分別是維納濾波算法,最陡下降算法,LMS算法。本文基於LMS算法,應用MATLAB進行仿真研究,並改進了LMS算法,得出更好的回聲消除系統。
  • 騰訊、華為、德魯動力,為何眾多科技廠商入局四足機器人?
    今天我們發現,不僅像德魯動力等這樣新崛起的AI機器人研發企業在做四足機器人,華為、騰訊這樣的巨頭,以及德魯動力這樣的創新科技企業,居然也看上了四足機器人這個尚未爆發的市場。這其中的原因是什麼,四足機器人有什麼魅力,能創造什麼價值?四足機器人是怎樣的存在?分析四足機器人之前,我們還是先看看具體的產品吧,這樣會有直觀的認識。
  • 收藏 | 這可能是史上最全的 Python 算法集!
    藍線為真實路徑,黑線為導航推測路徑(dead reckoning trajectory),綠點為位置觀測(如GPS),紅線為PF估算的路徑。該算法假設機器人能夠測量與地標(RFID)之間的距離。PF本地化會用到該測量結果。
  • 【路徑規劃】蟻群算法求解機器人柵格地圖最短路徑規劃問題含matlab源碼
    1 簡介1 蟻群算法
  • golang 調用 python 實戰路徑規劃之 A* 算法
    如果$h(n)$的值比節點n到終點的代價要大,則A*算法不能保證找到最短路徑,不過此時會很快。在另外一個極端情況下,如果$h(n)$相較於$g(n)$大很多,則此時只有$h(n)$產生效果,這也就變成了最佳優先搜索。由上面這些信息我們可以知道,通過調節啟發函數我們可以控制算法的速度和精確度。因為在一些情況,我們可能未必需要最短路徑,而是希望能夠儘快找到一個路徑即可。這也是A*算法比較靈活的地方。
  • 一種新型基於多點預瞄的最優路徑跟蹤控制方法
    摘要:為在嵌入式控制器開發環境下提高智能車輛的路徑跟蹤精度,採用車輛動力學模型和多點道路預瞄模型,以 預瞄窗口內的跟蹤偏差為目標函數,結合 LQR 最優控制原理,提出了一種基於多點預瞄最優控制路徑跟蹤控制方法。針對實車應用,通過離線計算最優增益的方法,提高算法實時性。
  • 如何在Gazebo裡仿真ROS機器人的SLAM建圖和導航
    三、SLAM建圖的仿真我們先進行SLAM建圖的仿真。在這個仿真中,我們將使用Gmapping算法,需要使用USB手柄來控制機器人在場景中進行移動,遍歷所有活動區域,建立環境地圖。此時會再次出現綠色箭頭,和前面的操作一樣,按住不放在屏幕上拖動畫圈,設置機器人移動到終點後的朝向。選擇完目標朝向後,鬆開點擊,全局規劃器會自動規劃出一條紫色的路徑,這條路徑從機器人當前點出發,繞開藍色的安全邊界,一直到移動目標點結束。