ROS探索總結(十三)——導航與定位架構

來源:互聯網
上載者:User

        導航與定位是機器人研究中的重要部分。
        一般機器人在陌生的環境下需要使用雷射感應器(或者深度感應器轉換成雷射資料),先進行地圖建模,然後在根據建立的地圖進行導航、定位。在ROS中也有很多完善的包可以直接使用。
        在ROS中,進行導航需要使用到的三個包是:
      (1) move_base:根據參照的訊息進行路徑規劃,使移動機器人到達指定的位置;
      (2) gmapping:根據雷射資料(或者深度資料類比的雷射資料)建立地圖;
      (3) amcl:根據已經有的地圖進行定位。

       參考連結:http://www.ros.org/wiki/navigation/Tutorials/RobotSetup

                         http://www.ros.org/wiki/navigation/Tutorials

       整體導航包的格局如所示:


        其中白色框內的是ROS已經為我們準備好的必須使用的組件,灰色框內的是ROS中可選的組件,藍色的是使用者需要提供的機器人平台上的組件。

1、sensor transforms

        其中涉及到使用tf進行感應器座標的轉換,因為我們使用的機器人的控制中心不一定是在感應器上,所以要把感應器的資料轉換成在控制中心上的座標資訊。如所示,感應器擷取的資料是在base_laser的座標系統中的,但是我們控制的時候是以base_link為中心,所以要根據兩者的位置關心進行座標的變換。


        變換的過程不需要我們自己處理,只需要將base_laser和base_link兩者之間的位置關係告訴tf,就可以自動轉換了。具體的實現可以參見:http://blog.csdn.net/hcx25909/article/details/9255001。


2、sensor sources

        這裡是機器人導航感應器資料輸入,一般只有兩種:
      (1) 雷射感應器資料
      (2) 點雲資料
      具體實現見:http://www.ros.org/wiki/navigation/Tutorials/RobotSetup/Sensors

3、odometry source

        機器人的導航需要輸入裡程計的資料(tf,nav_msgs/Odometry_message),具體實現見:
        http://www.ros.org/wiki/navigation/Tutorials/RobotSetup/Odom

4、base controller

        在導航過程中,該部分負責將之前得出來的資料轉封裝成具體的線速度和轉向角度資訊(Twist),並且發布給硬體平台。

5、map_server

       在導航過程中,地圖並不是必須的,此時相當於是在一個無限大的空地上進行導航,並沒有任何障礙物。但是考慮到實際情況,在我們使用導航的過程中還是要一個地圖的。
       具體實現見:http://www.ros.org/wiki/slam_gmapping/Tutorials/MappingFromLoggedData
       在ROS的導航中,costmap_2d這個包主要負責根據感應器的資訊建立和更新二維或三維的地圖。ROS的地圖(costmap)採用網格(grid)的形式,每個網格的值從0~255,分為三種狀態:佔用(有障礙物)、無用(閒置)、未知。具體狀態和值的對應關係如下:

        

        共分為五個部分:(下面的紅色框圖是機器人的輪廓,旁邊的黑框是的映射位置)
      (1) Lethal(致命的):機器人的中心與該網格的中心重合,此時機器人必然與障礙物衝突。
      (2) Inscribed(內切):網格的外切圓與機器人的輪廓內切,此時機器人也必然與障礙物衝突。
      (3) Possibly circumscribed(外切):網格的外切圓與機器人的輪廓外切,此時機器人相當於靠在障礙物附近,所以不一定衝突。
      (4) Freespace(自由空間):沒有障礙物的空間。
      (5) Unknown(未知):未知的空間。
       具體可見:http://www.ros.org/wiki/costmap_2d

----------------------------------------------------------------

歡迎大家轉載我的文章。

轉載請註明:轉自古-月

http://blog.csdn.net/hcx25909

歡迎繼續關注我的部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.