基於RRT的機器人自主探索建圖


一、方法講解:

    本項目分為三個部分:機器人周圍一定范圍內基於RRT的全局檢測,

                                       根據上一步檢測的未知區域點執行sklearn.cluster.MeanShift聚類,獲取聚類中心;

                                       根據聚類中心計算各點增益,取最大增益點為目標,調用move_base規划路徑和控制機器人行走。

           

二、各部分詳解:

         2.1 基於RRT的全局檢測:檢測未知區域點並發布

                   以機器人為中心,激光采樣范圍為半徑的正方形區域內,采用RRT算法計算未知區域點:如果RRT計算的某點在要計算的地圖范圍內,並且該點在地圖內的狀態為空閑區域點,則將該點加入RRT樹;如果該點在地圖的狀態為未知狀態區域,則該點不加入RRT樹,並將該點發布出去;

        2.2 根據上一步檢測的未知區域點執行sklearn.cluster.MeanShift聚類,獲取聚類中心:

                該部分訂閱全局檢測的未知區域點,並利用MeanShift算法獲取聚類中心;

       2.3 根據聚類中心計算各點增益,取最大增益點為目標,調用move_base規划路徑和控制行走。

              根據設定的信息半徑,和上一步的聚類中心,結合聚類中心離機器人的距離,計算各個聚類中心的信息增益,然后取信息增益最大的點作為目標點,調用move_base來向該點移動;新的聚類中心和增益不停被計算,因此在運動過程中目標點可能會改變,或者因為移動地圖中原來的目標點變為空閑區域,則新的目標點會被計算。

   

三、效果展示:

       建圖算法采用gmapping,激光角度220度.,激光范圍14米。

       藍色線:全局RRT樹;

       綠色點:地圖狀態未知區域點

       綠色線:move_base全局規划

       紫色線:機器人移動軌跡。

例一:

 

 

 例二、

 

仿真環境下:左下角、底部及右下角圖建歪了。

仿真模型大小:70米*64米

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM