ROS turtlesim小烏龜的使用與分析

準備

在之前的文章中完成了ROS的安裝並且啓用了小烏龜。
鏈接: https://blog.csdn.net/sf9898/article/details/105290198
這次同樣先啓用小烏龜,先roscore啓用ros master,之後再開一個terminal輸入rosrun turtlesim turtlesim_node啓用小烏龜,再開一個terminal輸入rosrun turtlesim turtle_teleop_key啓用鍵盤控制。

格式
rosrun 功能包 節點
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

效果如圖

在這裏插入圖片描述

分析

關於roscore

通過上面的代碼,可以啓用turtlesim裏面的兩個節點。首先先看下roscore 的terminal,之前僅是啓用ros master但是沒有去分析terminal裏面的信息的含義。打印的信息基本上是版本信息。其中有比較重要的信息,如圖,有個http,由於ROS是分佈式的,因此ros master可能存在於任一主機中,因此需要標記下。ROS分佈式的優點就是可以使得不同的功能模塊在不同的主機上面運行,可以節省計算資源,提高效率等。

在這裏插入圖片描述

關於計算圖和節點

用rqt_graph查看一下計算圖,可以看到有兩個節點。圖中兩種輸入方式皆可。

在這裏插入圖片描述
找一個terminal輸入以下信息(此時已經把計算圖關掉了)

rosnode list
rostopic list

在這裏插入圖片描述
跟之前的計算圖對比,可以注意到兩個橢圓內的是節點,箭頭上的是topic名稱。
重新打開計算圖,如果在rqt_graph裏面把debug的√取消,那麼效果如下,可以發現多出了點奇怪的東西。
此時上圖terminal打印出的/rosout就出現了。其實這幾個多出來的也不需要關注。/rosout是必然存在的一個節點,從名字可以看出這節點關乎輸出,是一個管理日誌信息的節點,每個節點都可以通過/rosout的話題將信息傳到/rosout節點。

在這裏插入圖片描述

另一個gui的節點是因爲rqt_graph的存在,打開一個新的terminal驗證,輸入rosnode list,結果如下

在這裏插入圖片描述
可以用以下命令查看節點信息

rosnode info 節點名

在這裏插入圖片描述

關於turtlesim

再看烏龜,這個turtlesim 對應的文件是在哪?裏面的節點有哪些?之前安裝完ROS的時候說過它的位置。點:計算機-opt-ros。

在這裏插入圖片描述
進去之後可以看到很多文件夾和腳本,注意到有setup.bash,之前安裝和配置的時候有用到。

在這裏插入圖片描述

其中後面三個文件夾是最重要的,include類似於C語言裏面的include,裏面存的頭文件,lib存一些包,裏面有節點(可執行文件)和Python文件等,比如這裏的turtlesim,運行節點就可以啓用相應的功能包裏面的功能。

在這裏插入圖片描述
在這裏插入圖片描述
這裏就可以看到有之前調用的turtlesim_node 和 turtle_teleop_key,同理,可以驗證下其他的節點,比如draw_square。(另一個不瞭解,有興趣的可以研究)

rosrun turtlesim draw_square

在這裏插入圖片描述

share裏面可以看到很多的功能包,打開一看是有cmake 的配置文件和msg,srv的定義等等

在這裏插入圖片描述

打開images文件夾,可以看到好多的小烏龜logo,這就解釋了爲什麼每次調用烏龜節點出現的烏龜長得不一定一樣了。

在這裏插入圖片描述

關於turtle控制信息

通過以下命令實現監聽,打印出的信息是烏龜的運動信息,鍵盤控制時會有相應的數值變化

rostopic echo /turtle1/cmd_vel

在這裏插入圖片描述
發佈話題、新增turtle的操作可以參考

https://www.cnblogs.com/chendeqiang/p/10190821.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章