ROS學習歷程(6)------理解ROS的節點(NODE)
阿新 • • 發佈:2019-02-08
經過前面的學習,我們已經知道了如何構建一個ROS的包,這篇部落格將介紹ROS中的節點的概念。
首先,安裝一個輕量級的模擬器,命令中的””需要替換為你自己的ros版本,若按照前面的教程的話,替換為kinetic。
sudo apt-get install ros-kinetic-ros-tutorials
下面來看一下ROS中圖的相關概念:
節點(NODE):一個節點就是一個可執行程式,它使用ROS可以和其他節點進行通訊。
訊息(Message):當在一個話題上,釋出或訂閱時所使用的ROS的資料型別。
話題(Topic):節點可以在一個話題上釋出訊息,同樣也可以訂閱一個話題來接收訊息。
主機(Master):是ROS的名字伺服器。
ROS的客戶端庫允許用不同的程式語言編寫的節點之間相互通訊。
roscore是你在使用ros之前應該首先執行的程式。在終端中執行roscore:
roscore
rosnode命令顯示了正在執行的ros的節點的資訊。如下命令列出了活躍的ros節點,新開啟一個終端輸入:
rosnode list
你將會看到:
/rosout
著說明了當前只有一個節點rosout在執行。下面的這個命令可以返回活躍的節點的資訊:
rosnode info /rosout
rosrun允許你直接執行一個包裡面的節點。
在終端中輸入:
rosrun turtlesim turtlesim_node
將會看到在螢幕上出現了一隻烏龜。這個命令的作用是執行turtlesim
包下面的turtlesim_node
節點,多次執行這個命令會看到烏龜可能會不同
新開啟一個終端,在裡面輸入:
rosnode list
可以看到我們剛剛執行的節點,出現在了列表中。我們還可以在命令列下給執行的節點直接指定名字,將剛剛開啟的烏龜關閉,輸入:
rosrun turtlesim turtlesim_node __name:=my_turtle
再使用rosnode list
就可以看到我們所修改的名字。
還可以使用ping
命令:
rosnode ping my_turtle