ROS學習筆記三(理解ROS節點)


要求已經在Linux系統中安裝一個學習用的ros軟件包例子:

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

ROS圖形概念概述

  • nodes:節點,一個節點即為一個可執行文件,可以通過ROS和其他節點進行通信;
  • messages:消息,當訂閱或者發布一個topic時使用的數據類型
  • topics:話題,節點可以發布信息到topics或者從topics那里訂閱信息;
  • master:節點管理器,ROS的name service,提供服務,例如讓不同的節點可以找到彼此;
  • rosout:等價於ROS中的stdout/stderr;
  • roscore:master+rosout+parameter service(參數服務器)。

ROS客戶端庫函數允許使用不同的編程語言進行編程通信:

  • rospy:Python client library
  • roscpp:C++ client library

[1]roscore  在運行所有ROS程序前首先要運行的命令

//打開一個新終端
roscore &

[2]rosnode 顯示當前運行的ROS節點信息,其中rosnode list命令列出了正在運行的節點名稱。

//打開一個人新終端
$ rosnode list
/rosout

系統中只有一個節點rosout在運行,它將一直運行並收集和記錄節點的調試輸出。

[3]rosnode info返回一個特定節點的節點信息,事實上由它發布 /rosout_agg。

rosnode info /rosout

[4]rosrun命令允許你直接通過軟件包名稱運行軟件包當中的節點(不需要知道軟件包的所在路徑,但必須是在ROS的搜索目錄范圍之內)。

使用方法:

rosrun [package_name] [node_name]

我們現在運行軟件包turtlesim中的turtlesim_node節點:

rosrun turtlesim turtlesim_node

檢驗:在一個新窗口中:

$ rosnode list
/rosout
/turtlesim

[5]在命令行中重新分配名字

$ rosrun turtlesim turtlesim_node __name:=my_turtlesim
$ rosnode list
/my_turtlesim
/rosout

[6]命令rosnode ping:

$ rosnode ping /my_turtlesim
rosnode: node is [/my_turtlesim]
pinging /my_turtlesim with a timeout of 3.0s
xmlrpc reply from http://ubuntu:33201/  time=0.409842ms
xmlrpc reply from http://ubuntu:33201/  time=1.335144ms
xmlrpc reply from http://ubuntu:33201/  time=1.242876ms
xmlrpc reply from http://ubuntu:33201/  time=1.311064ms
xmlrpc reply from http://ubuntu:33201/  time=1.254082ms

總結

  • roscore=ros+core,master(為ROS提供名稱服務)+rosout(stdout/stderr)+parameter server。所以在使用ROS的時候的第一件事就是運行roscore來啟動這些服務
  • rosnode=ros+node,ROS tool to get information about a node;
  • rosrun=ros+run,runs a node from a given package。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM