1. 理解ros節點
圖概念概述:
nodes:節點,乙個節點為乙個可執行檔案,可以通過ros與其他節點通訊
messages:訊息,一種ros資料型別,可以訂閱或發布到乙個話題
topics:話題,節點可以發布訊息到話題,也可以訂閱話題接收訊息
master:節點管理器,ros名稱服務
rosout:相當於 stdout/stderr
roscore:主機 + rosout + 引數伺服器
客戶端庫:
允許使用不同程式語言編寫的節點之間進行通訊
● rospy = python 客戶端庫
● roscpp = c++ 客戶端庫
使用 rosnode
檢視當前正在執行的節點:
檢視具體節點資訊:
使用rosrun
使用包名直接執行乙個包內的節點:
可以直接改變節點名稱
改變節點名稱後,可以再次通過rosnode list 檢視執行的節點列表
並通過rosnode 命令 ping 測試節點
2. 理解ros話題
任何時候,只需有乙個roscore執行,否則會報錯。
節點之間通過話題通訊,乙個節點在乙個話題上發布訊息,另乙個節點訂閱該話題以接收訊息。
使用rqt_graph建立顯示當前系統運**況的動態圖形。
使用rqt_plot 命令可以顯示發布到某一話題上的資料變化情況。
使用 rostopic echo 命令列工具,可以檢視話題發布的資料
使用 rostopic list 可以檢視發布和訂閱的話題及其型別的詳細資訊
發布器與訂閱器之間的通訊,必須傳送和接收相同型別的訊息,也就意味著話題型別是由發布在它上面的訊息型別決定的。使用 rostopic type 命令可以檢視發布在某個話題上的訊息型別。
使用 rosmsg 命令檢視訊息的詳細情況
使用 rostopic pub 命令可以發布資料到當前某個正在廣播的話題上。
使用 rostopic hz 可以檢視資料發布的頻率
3. 理解ros服務和引數
服務允許節點傳送乙個請求(request)並獲得乙個響應(response)
rosservice常用命令:
rosservice list —— 輸出可用服務的資訊
rosservice call —— 呼叫帶引數的服務
rosservice type —— 輸出服務型別
rosservice find —— 根據型別尋找服務
rosservice url —— 輸出服務的rosrpc url
可以使用 rosparam 儲存和操作ros引數伺服器上的資料。
常用命令:
rosparam set —— 設定引數
rosparam get —— 獲取引數
rosparam load —— 從檔案讀取引數
rosparam dump —— 向檔案中寫入引數
rosparam delete —— 刪除引數
rosparam list —— 列出引數名
4. 使用 rqt_console 和 roslaunch 進行除錯
rqt_console 屬於ros日誌框架的一部分,用於顯示節點的輸出資訊。
rqt_logger_level 允許修改節點執行時輸出資訊的日誌等級。
使用 roslaunch 啟動定義在 launch 檔案中的多個節點。
在工作空間下建立 launch資料夾,在資料夾下建立 .launch 字尾的配置檔案,然後執行。
可同時執行多個節點和模仿節點。
ROS2學習筆記之了解ros2doctor篇
總結學習目標 學會使用ros2doctor工具分析出現的問題 當ros2沒有安裝我們預期的設定執行的時候,我們可以用ros2doctor工具檢查ros2的設定。ros2doctor對ros2全面的檢查,包括平台 版本 連線情況 環境 執行的系統等等。然後給出可能的錯誤和原因。ros2doctor是乙...
ROS 學習筆記(2)ROS 命令列工具
古月居 命令列工具 啟動終端指令,也是ros使用中第一步需要執行的指令 啟動終端,使用roscore啟動 ros master roscore會出現如下介面 這個終端是不可以關閉的。執行指令,執行ros功能包中的某個節點 接著開啟另外乙個終端,使用 rosrun 指令執行節點,節點屬於功能包,因此執...
ROS學習筆記
catkin make首先輸出它所使用到的每個空間所在的路徑。更多關於空間的資訊,請參考rep128和catkin workspaces。需要注意的是由於這些空間存在預設配置的原因,有幾個資料夾已經在catkin工作空間自動生成了,使用ls檢視 build devel src build 目錄是bu...