1. 程式人生 > >ROS學習歷程(6)------理解ROS的節點(NODE)

ROS學習歷程(6)------理解ROS的節點(NODE)

經過前面的學習,我們已經知道了如何構建一個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