4.1 如果之前沒裝, 快點裝la

包含一個模擬器

sudo apt-get install ros-indigo-ros-tutorials

4.2 名詞介紹

  • Nodes: 一個node為ROS package中的executable, 透過ROS client library來與其他nodes溝通, node可publish/subscribe to a Topic, 也可以provide/use a service.
  • Messages: subscribe/publish a topic時所使用的data type
  • Topics: nodes send/receive messages by publish/subscribe to a topic
  • Master: helps nodes find each other
  • rosout: ROS中的stdout/stderr
  • roscore: Master + rosout + parameter server (後會詳述)
  • ros client: 針對不同語言編寫的client library, 目前有rospy和roscpp

4.3 一些命令介紹

  • roscore: 啟動maser + rosout + parameter server
  • rosnode: 執行與node相關的指令
  • rosrun: 可以利用package名稱來運行當中的node, 而不用知道絕對路徑

4.4 運行rosnode

首先, 在任何ROS project執行之前

要先啟動roscore

roscore

接下來我們來看一下目前有哪些node正在運作中

rosnode list

輸出/rosout

這代表目前只有/rosout這個node在執行, 由於/rosout的任務在於收集和紀錄node的輸出訊息, 因此在roscore執行後此node會一直處於運行狀態

接著來看一下/rosout這個node的資訊

rosnode info /rosout

透過rosrun, 我們再另外運行一個node

現在應該有一個terminal正在執行roscore, 另外再開一個terminal執行

rosrun turtlesim turtlesim_node

此時你會看到一隻🐢

在roscore和rosrun執行node後

你會發現這兩個terminal都處於busy的狀態

如果要關掉roscore/node, 由ctrl+c退出

我們再開另一個terminal來看現在的資訊

rosnode list

輸出 /rosout /turtlesim

我們也可以把/turtlesim這個default的名稱改為我們想要的

首先關閉turtlesim的視窗或是利用ctrl+c退出, 接著輸入

rosrun turtlesim turtlesim_node __name:=my_turtle

並在可執行命令的terminal中輸入

4 nodes, topicsrosnode list

此時會看到輸出如 /rosout /my_turtle

注意, 你仍可能看到/turtlesim在列表當中, 可以透過

rosnode cleanup

來清除rosnode list

我們可以利用ping來確認一個node是否正常回應

rosnode ping my_turtle

results matching ""

    No results matching ""