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輸入以下信息(此時已經把計算圖關掉了)
跟之前的計算圖對比,可以注意到兩個橢圓內的是節點,箭頭上的是topic名稱。
重新打開計算圖,如果在rqt_graph里面把debug的√取消,那么效果如下,可以發現多出了點奇怪的東西。
此時上圖terminal打印出的/rosout就出現了。其實這幾個多出來的也不需要關注。/rosout是必然存在的一個節點,從名字可以看出這節點關乎輸出,是一個管理日志信息的節點,每個節點都可以通過/rosout的話題將信息傳到/rosout節點。
另一個gui的節點是因為rqt_graph的存在,打開一個新的terminal驗證,輸入rosnode list,結果如下
可以用以下命令查看節點信息
關于turtlesim
再看烏龜,這個turtlesim 對應的文件是在哪?里面的節點有哪些?之前安裝完ROS的時候說過它的位置。點:計算機-opt-ros。
進去之后可以看到很多文件夾和腳本,注意到有setup.bash,之前安裝和配置的時候有用到。
其中后面三個文件夾是最重要的,include類似于C語言里面的include,里面存的頭文件,lib存一些包,里面有節點(可執行文件)和Python文件等,比如這里的turtlesim,運行節點就可以啟用相應的功能包里面的功能。
這里就可以看到有之前調用的turtlesim_node 和 turtle_teleop_key,同理,可以驗證下其他的節點,比如draw_square。(另一個不了解,有興趣的可以研究)
share里面可以看到很多的功能包,打開一看是有cmake 的配置文件和msg,srv的定義等等
打開images文件夾,可以看到好多的小烏龜logo,這就解釋了為什么每次調用烏龜節點出現的烏龜長得不一定一樣了。
關于turtle控制信息
通過以下命令實現監聽,打印出的信息是烏龜的運動信息,鍵盤控制時會有相應的數值變化
rostopic echo /turtle1/cmd_vel其他
發布話題、新增turtle的操作可以參考
https://www.cnblogs.com/chendeqiang/p/10190821.html小海龜的坐標變換和RVIZ可視化可以參考
https://blog.csdn.net/sf9898/article/details/105350138總結
以上是生活随笔為你收集整理的ROS turtlesim小乌龟的使用与分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度网络定义与使用
- 下一篇: 关于ES查询文档标记来源问题