ROS【機器人操作系統】新手攻略

第一步、我們要使用ROS首先要知道ROS是什麼?

ROS—(Robot Operating System)是一個機器人軟件平臺,提供一些標準操作系統服務,例如硬件抽象,底層設備控制,常用功能實現,進程間消息以及數據包管理。ROS是基於一種圖狀架構,從而不同節點的進程能接受,發佈,聚合各種信息(如傳感,控制,狀態,規劃等等)。目前ROS主要支持Ubuntu,是開源軟件,並能免費用於研究和商業用途。

第二步、掌握ROS的基本操作

ROS基本操作方法這裏就不介紹了,網上有很多比較詳細的教程,下面列舉一些比較好的ROS學習網站,建議先按這些教程操作一遍,對ROS的一些基本概念與操作有一個瞭解,比如什麼是ROS節點、怎麼創建ROS程序包,怎麼發佈訂閱話題、怎麼查看發佈的話題內容等等

  1. ROS教程
    這是ROS官網,上面介紹了ROS環境搭建與配置,ROS程序包、節點、話題、服務與參數的基本概念,ROS基本指令的使用,以及簡單的消息發佈與訂閱,ROS相關工具的介紹,通過這個網站的學習ROS就基本入門了
  2. ROS源碼
    這是GitHub上的源碼,怎麼快速使用ROS看看源碼就知道了,後續開發可以參照這些源碼,能更快的上手
  3. ROS視頻教程
    這是中國大學慕課,是ROS視頻講解,給不想看文檔的同仁提供了另一個選擇,內容大同小異,這是它的講義地址:https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/
  4. https://www.ncnynl.com/
    這個網站關於ROS的資料比較多,有跟語言相關的、有跟開發平臺相關的、也有跟各種傳感器相關的,有興趣的上去看看就知道
  5. https://blog.csdn.net/hcx25909
    這是我覺得比較好的個人博客,圖文並茂,看看也許能提供些幫助

第三步、機器人上玩轉ROS

這一步我只說個大概,有興趣的可以不看,因爲細說的話需要大量篇幅~~
現在假如你手頭有臺使用了ROS的機器人

  1. 像我們通常是使用Teamviewer通過IP遠程連上機器人(連同一個wifi更穩定)

  2. 進入機器人後,開啓ros服務
    終端1:roscore
    終端2:roslaunch 你自己的啓動腳本.sh
    開啓所有結點後ROS就在機器人上運行起來了,可以用指令查看訂閱與發佈的相關信息

  3. 用手機APP控制運動
    安裝Teleop, 連接到相應的wifi上,打開APP
    Master URL:http://192.168.1.99:11311/,然後CONNECT
    之後就可以在手機上進行遙控,可查看手機下發話題:rostopic echo /cmd_vel

  4. 可視化工具:rviz
    可以直接在終端中輸入rviz即可打開,這個工具可以看到各種各樣的傳感器可視化信息,用tf轉換一下rviz可識別的數據,比如超聲波:rosrun tf static_transform_publisher 0.18 0 0 0 0 0 base_link sonar_link1 100

注意事項

  1. 環境初始化:如:source ~/.bash,有些是source ~/.zshrc
    這個很重要,像你代碼更新重新編譯之後,因爲結點更新了,你如果用roslaunch指令啓動,你就需要
    source一下環境,不然你啓動的可能就不是最新結點

  2. 單獨編譯某個node
    我們知道整體編譯,是在根目錄下如:/catkin_ws下:catkin_make一下,不過當結點多了你只想編譯其中一個結點,同樣在:/catkin_ws下,使用該指令:catkin_make -DCATKIN_WHITELIST_PACKAGES=“kinco” //””中跟的是包名

  3. 單獨運行某個node
    運行某個node的方式有多種,比如到node當前目錄./運行,或者rosrun 包名 node名運行,
    還有就是用roslaunch文件運行,我們使用的是第三種,如:roslaunch base.launch

  4. 模擬導航發佈數據
    rostopic pub -r 10 /cmd_nav geometry_msgs/Twist “linear:
    x: 100.0
    y: 0.0
    z: 0.0
    angular:
    x: 0.0
    y: 0.0
    z: 0.0”
    其中-r 10表示以10hz的頻率一直髮布

5.測試,可參考ROS指令總結
rostopic list //查看有哪些話題
rosropic echo //查看某個話題的發佈內容
rosnode list //查看開啓了哪些節點
rosnode info //查看某節點的信息

目前我們YYD機器人上所用的版本是Ubuntu16.04 + Kinetic,雷達是倒裝的,需要用到tf轉換.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章