ROS機器人操做系統在機器人應用領域很流行,依託代碼開源和模塊間協做等特性,給機器人開發者帶來了很大的方便。咱們的機器人「miiboo」中的大部分程序也採用ROS進行開發,因此本文就重點對ROS基礎知識進行詳細的講解,給不熟悉ROS的朋友起到一個拋磚引玉的做用。本章節主要內容:html
1.ROS是什麼python
2.ROS系統總體架構nginx
3.在ubuntu16.04中安裝ROS kineticdjango
4.如何編寫ROS的第一個程序hello_worldubuntu
5.編寫簡單的消息發佈器和訂閱器centos
9.熟練使用rvizide
(1)rviz總體界面
(圖29)rviz總體界面
rviz是ROS自帶的圖形化工具,能夠很方便的讓用戶經過圖形界面開發調試ROS。操做界面也十分簡潔,如圖29,界面主要分爲上側菜單區、左側顯示內容設置區、中間顯示區、右側顯示視角設置區、下側ROS狀態區。
(2)添加顯示內容
(圖30)設置Global Options
如圖30,啓動rviz界面後,首先要對Global Options進行設置,Global Options裏面的參數是一些全局顯示相關的參數。其中的Fixed Frame參數是全局顯示區域依託的座標系,咱們知道機器人中有不少座標系,座標系之間有各自的轉換關係,有些是靜態關係,有些是動態關係,不一樣的Fixed Frame參數有不一樣的顯示效果,在導航機器人應用中,通常將Fixed Frame參數設置爲map,也就是以map座標系做爲全局座標系。值得注意的是,在機器人的tf tree裏面必需要有map座標系,不然該選項欄會包error。至於Global Options裏面的其餘參數能夠不用管,默認就好了。
(圖31)添加地圖顯示
如圖31,在機器人導航應用中,咱們經常須要用rviz觀察機器人創建的地圖,在機器人發佈了地圖到主題的狀況下,咱們就能夠經過rviz訂閱地圖相應主題(通常是/map主題)來顯示地圖。訂閱地圖的/map主題方法很簡單,首先點擊rviz界面左下角[add]按鈕,而後在彈出的對話框中選擇[By topic],最後在列出的topic名字中找到咱們要訂閱的主題名字/map,最後點擊[OK]就完成了對/map主題的訂閱。訂閱成功後,會在rviz左側欄中看到Map項,而且中間顯示區正常顯示出地圖。
(圖32)添加tf顯示
如圖32,在機器人導航應用中,除了觀察地圖外,咱們經常還須要觀察機器人在地圖中的位置以及各個座標系的關係是否工做正常,這個時候就須要經過rviz來顯示tf。和上面添加顯示主題的方法相似,這裏添加TF這個類型主題就能夠了。說明一下,添加主題能夠按主題類型查找,也能夠按主題名稱查找。上面添加地圖主題就是按主題名稱查找的,這裏添加tf主題是按主題類型查找的。
(圖33)添加里程計顯示
如圖33,咱們能夠經過rviz訂閱里程計來觀察機器人的運動軌跡(圖中紅色箭頭鏈接起來的軌跡)。和上面添加顯示主題的方法相似,這裏添加/odom這個主題就能夠了。這裏特別說明一點,咱們須要去掉左側欄中Odometry裏面Covariance項後面後面的勾,也就是在Odometry顯示中不啓用Covariance信息。Covariance是描述里程計偏差的協方差矩陣,若是啓用Covariance來描述Odometry將致使顯示效果很難看,因此建議去掉。
(圖34)添加機器人位置粒子濾波點顯示
如圖34,在機器人導航中,一般採用AMCL粒子濾波來實現機器人的全局定位。經過rviz能夠顯示全局定位的例子點。和上面添加顯示主題的方法相似,這裏添加/particlecloud這個主題就能夠了。
(圖35)添加激光雷達顯示
如圖35,機器人SLAM和導航中用到的核心傳感器激光雷達數據,咱們能夠經過rviz顯示激光雷達數據(圖中紅色點組成的輪廓)。和上面添加顯示主題的方法相似,這裏添加/scan這個主題就能夠了。
(圖36)添加攝像頭顯示
如圖36,rviz還能夠訂閱攝像頭髮布的主題,這樣在rviz上就能夠實現遠程視頻監控了。和上面添加顯示主題的方法相似,這裏添加/usb_cam/image_raw這個主題就能夠了。
經過上面的實例,咱們已經知道在rviz中訂閱須要顯示的主題了,被訂閱的主題會在rviz左側欄中列出,而且主題的顯示與否是相互獨立的,能夠經過勾選的方式決定是否顯現該主題,主題項下拉條目中有不少參數能夠設置,這些參數決定顯示的風格等等,能夠根據須要進行設置。其餘一些不經常使用的主題訂閱實例沒有給出,有須要能夠依葫蘆畫瓢在rviz中進行訂閱顯示就好了。
(3)主界面中經常使用按鈕
(圖37)rviz顯示配置保存
在上面的添加顯示內容的實例中,咱們在rviz中添加了不少主題顯示項,並對各顯示項的參數作了相應的設置。爲了下次啓動rviz時,能直接顯示這些內容和風格,咱們須要將當前的rviz顯示風格以配置文件的方式保存,下次啓動rviz後只須要載入這個配置文件就能進入相應的顯示風格。很簡單,點擊rviz左上角[file]菜單,在下拉中選擇[Save Config As],在彈出來的對話框中給配置文件取一個名字(我取名爲my_cfg1),而後直接Save,my_cfg1.rviz配置文件會被保存到系統中rviz的默認目錄。下次啓動rviz後,經過點擊rviz左上角[file]菜單,在下拉中選擇[Open Config],打開相應的配置文件就好了。如圖37。
(圖38)機器人初始位置設定與導航目標設定
在機器人導航中,當機器人剛啓動的時候,機器人位置每每須要人爲給定一個大概的估計位置,這樣有利於AMCL粒子濾波中粒子點的快速收斂。如圖38,點擊[2D Pose Estimate]按鈕,而後在地圖中找到機器人大體的位置後再次點擊鼠標左鍵並保持按下狀態,拖動鼠標來指定機器人的朝向,最後鬆手就完成對機器人初始位置的設定了。其實就是兩步,先指定機器人的位置,再指定機器人的朝向。咱們能夠在地圖中指定導航目標點,讓機器人自動導航到咱們的指定的位置。經過[2D Nav Goal]按鈕就能夠完成。操做步驟和機器人初始位置的設定是相似的,就不累述了。
(圖39)獲取地圖中指定點的座標值
有時候咱們須要知道地圖中某個位置的座標值,好比咱們獲取地圖中各個位置的座標值並填入巡邏軌跡中,讓機器人按照指定巡邏路線巡邏。經過[Publish Point]按鈕就能夠知道地圖中的任意位置的座標值,點擊[Publish Point]按鈕,而後將鼠標放置到想要獲取座標值的位置,rviz底部顯示欄中就會出現相應的座標值。
(4)rviz啓動方法
首先須要啓動roscore,而後啓動rviz,命令以下:
#打開終端,輸入下面命令
roscore
#再打開一個終端,輸入下面命令
rviz
------SLAM+語音機器人DIY系列【目錄】快速導覽------
第1章:Linux基礎
第2章:ROS入門
第3章:感知與大腦
第4章:差分底盤設計
第5章:樹莓派3開發環境搭建
第6章:SLAM建圖與自主避障導航
2.google-cartographer機器人SLAM建圖
第7章:語音交互與天然語言處理
第8章:高階拓展
2.centos7下部署Django(nginx+uwsgi+django+python3)
----------------文章將持續更新,敬請關注-----------------
若是你們對博文的相關類容感興趣,或有什麼技術疑問,歡迎加入下面的《SLAM+語音機器人DIY》QQ技術交流羣,一塊兒討論學習^_^
關於咱們:
視頻教程: