ROS學習總結

環境搭建

1. ubuntu14.04 系統安裝

  • 前往官網下載鏡像文件
  • 使用燒錄工具將鏡像寫入U盤
  • 重新啓動後,若沒有grub:打開終端輸入sudo update-grub2
  • 更換源爲163
  • sudo apt-get update; sudo apt-get upgrade
  • 安裝fcitx:在應用商店安裝fcitx framework;sudo apt-get install fcitx-pinyin

2. ros系統安裝

http://wiki.ros.org/kinetic/Installation/Ubuntu

  • echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
  • source ~/catkin_ws/devel/setup.bash

3. turtlebot2安裝

https://www.ncnynl.com/archives/201705/1635.html

4. kinect v1安裝

https://www.ncnynl.com/archives/201609/794.html

先按照上面的教程安裝,不行再參考下面的鏈接。

https://blog.csdn.net/wubaobao1993/article/details/53142795

文件系統

  1. 工作空間:使用catkin_make創建工作空間,其中包行build、devel、src等文件夾。
  2. 軟件包:存放在src文件夾下,頂層的CMakefile用來遍歷各子文件夾下的CMakeLists。使用catkin_create_pkg命令創建軟件包,文件夾要有package.xml和CMakeLists.txt兩個文件。package.xml用來描述安裝和運行軟件包時需要有哪些依賴。CMakeLists.txt說明編譯生成的可執行文件名和編譯對象的路徑以及目標鏈接庫。
  3. 包集合:由衆多軟件包組成的棧,頂層只有一個package.xml。
  4. 消息:節點之間通過話題通信傳輸的數據類型。有基本類型和基本類型組成的結構體。存放在軟件包的msg文件夾下,使用時要修改CMakeLists,添加相應字段。
  5. 服務:節點之間可直接通信而不經過話題,可以看作是通信時傳輸的數據類型。有Request和Response兩種結構體類型。存放在軟件包的srv文件夾下,使用時要修改CMakeLists,添加相應字段。
  6. 動作:基於客戶端和服務器通信,與服務類似,有goal、result、feedback三種結構體類型。服務器接收到客戶端的命令,調用回調函數後將反饋結果發送回客戶端。

計算圖層

  1. 節點和nodelets:rosnode命令。一個可執行文件在ROS中就是一個節點,通過rosrun啓動。nodelets個人理解是一個進程裏的多線程,減少節點通信的開銷。
  2. 話題:rostopic命令。節點可以向話題發佈和訂閱消息。兩個節點使用相同的話題即可建立連接。實現過程和服務類似。發佈消息程序裏的advertise()是一個函數模板,使用時要定義它發佈的消息類型。訂閱消息程序裏定義一個回調函數。
  3. 服務:rosservice命令。可以使用已有的服務創建一個服務器,服務器程序裏要定義一個回調函數,即當服務器接收到客戶端發來的服務數據時,將數據傳入回調函數,並返回結果給客戶端。服務器和客戶端在定義時使用同種服務即可建立連接。服務數據類型可自定義。
  4. 消息:rosmsg命令。節點之間通過話題通信傳輸的數據類型。有基本類型和基本類型組成的結構體。
  5. 包:rosbag命令。記錄整個過程的數據。
  6. 節點管理器:roscore命令。用來管理節點。如建立節點的連接和保存節點名字等。
  7. 參數服務器:rosparam命令。向節點中傳入參數,可理解爲配置。

零碎小記

  1. ros::spin()和ros::spinOnce()的用法。
  2. 編譯後的可執行文件在lib文件夾下。
  3. 使用rqt_graph查看節點信息。
  4. rosnode list 、rostopic list查看激活的節點和話題、rosnode info [node]、rostopic info [topic]查看具體的節點和話題信息。
  5. 可以把多個運行節點命令寫入launch文件,使用roslaunch快速運行多個節點。
  6. 節點和節點之間通過話題傳輸消息。節點和節點之間通過服務傳輸服務。
  7. echo "source ~/catkin_make/devel/setup.bash" >> ~/.bashrc
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章