ROS命令列工具
ROS命令列工具
這裡主要參考了wiki上的ros文件,還有需要命令沒有包含到,便用邊學吧,當然建議使用萬能的
--help
: )
1. 常用使用者工具
1.1 roscore
使用roscore
命令啟動ros的核心節點(包括Master, Paremeter Server, rosout等等),啟動時直接執行如下命令即可:
roscore
1.2 rosrun
我們使用rosrun
命令來執行某個功能包中的某個節點,如下是幫助資訊
Usage: rosrun [--prefix cmd] [--debug] PACKAGE EXECUTABLE [ARGS]
rosrun will locate PACKAGE and try to find
an executable named EXECUTABLE in the PACKAGE tree.
If it finds it, it will run it with ARGS.
主要使用方法是:
rosrun [功能包名] [節點名]
舉個例子,執行我們的小海龜模擬節點
1.3 rosnode
使用rosnode
命令可以列印出ROS節點的資訊,命令如下
rosnode is a command-line tool for printing information about ROS Nodes.
Commands:
rosnode ping test connectivity to node
rosnode list list active nodes
rosnode info print information about node
rosnode machine list nodes running on a particular machine or list machines
rosnode kill kill a running node
rosnode cleanup purge registration information of unreachable nodes
Type rosnode <command> -h for more detailed usage, e.g. 'rosnode ping -h'
舉個例子:
檢視當前節點列表(rosout節點是ros預設的一個節點,用於採集節點資訊):
rosnode list
檢視小海龜模擬節點的詳細資訊(釋出資訊、訂閱資訊、服務、程式PID等等):
rosnode info /turtlesim
1.4 rostopic
主要用於列印當前的一些話題資訊
rostopic is a command-line tool for printing information about ROS Topics.
Commands:
rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic echo print messages to screen
rostopic find find topics by type
rostopic hz display publishing rate of topic
rostopic info print information about active topic
rostopic list list active topics
rostopic pub publish data to topic
rostopic type print topic or field type
舉個例子:
檢視當前的話題:
rostopic list
其中的/turtle1/cmd_vel
就是我們控制小海龜的一個話題,我們可以使用rostopic pub
命令(使用--help
獲取命令細節)給想該話題釋出資料。比如說我們這裡給小海龜釋出資料(linear是線速度,angular是角速度,一般使用常用單位m/s和rad/s,這就是這個訊息的資料結構):
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
然後就能看到小海龜向前跑動了,但是很快停了下來,因為我們只發布了一次資料,我們可以靈活的使用引數定義這個釋出的過程(如加-r
設定釋出頻率,-1
釋出一次退出等等,萬能的help命令!)
1.5 rosmsg
rosmsg
命令用於檢視話題訊息(Message)的資料結構的定義
rosmsg is a command-line tool for displaying information about ROS Message types.
Commands:
rosmsg show Show message description
rosmsg info Alias for rosmsg show
rosmsg list List all messages
rosmsg md5 Display message md5sum
rosmsg package List messages in a package
rosmsg packages List packages that contain messages
Type rosmsg <command> -h for more detailed usage
舉個例子:
我們現在檢視控制小海龜話題的訊息的資料結構,我們首先使用rostopic info
檢視話題的詳細資訊,獲得訊息名,然後再使用rosmsg show
檢視訊息的資料結構,可以看到六個速度都是使用float64資料格式。
1.6 rosservice
rosservice
命令用於檢視和控制服務相關資訊
Commands:
rosservice args print service arguments
rosservice call call the service with the provided args
rosservice find find services by service type
rosservice info print information about service
rosservice list list active services
rosservice type print service type
rosservice uri print service ROSRPC uri
Type rosservice <command> -h for more detailed usage, e.g. 'rosservice call -h'
舉個例子:
我們檢視當前存在的服務
rosservice list
然後我們將當前的終端作為客戶端,小海龜模擬器作為服務端,使用rosservice call
命令呼叫/spawn
服務(產卵服務)產生一個新的小海龜:
rosservice call /spawn "x: 3.0
y: 3.0
theta: 0.0
name: 'turtle2'"
name: "turtle2"
產生了一隻新的小海龜,我們對應的話題也就相應增加了,簡單檢視一下:
1.7 rosbag
rosbag
命令可以通過記錄訊息包(bag)或者傳送訊息包來實現過程的記錄與復現(模擬),所謂訊息包(bag)就是一串訊息的序列。
Usage: rosbag <subcommand> [options] [args]
A bag is a file format in ROS for storing ROS message data. The rosbag command can record, replay and manipulate bags.
Available subcommands:
check Determine whether a bag is playable in the current system, or if it can be migrated.
compress Compress one or more bag files.
decompress Decompress one or more bag files.
decrypt Decrypt one or more bag files.
encrypt Encrypt one or more bag files.
filter Filter the contents of the bag.
fix Repair the messages in a bag file so that it can be played in the current system.
help
info Summarize the contents of one or more bag files.
play Play back the contents of one or more bag files in a time-synchronized fashion.
record Record a bag file with the contents of specified topics.
reindex Reindexes one or more bag files.
For additional information, see http://wiki.ros.org/rosbag
舉個例子:
我們現在使用bag記錄我們用鍵盤操控小海龜的過程,然後儲存訊息bag用於後續復現。
使用rosbag record
記錄小海龜的message,執行如下命令(-a記錄全部訊息,-O 輸出為檔案,更多命令引數參考–help),然後我們移動小海龜。
rosbag record -a -O turtle_path
記錄完成後 ctrl+c
結束記錄,可以看到儲存到了當前目錄下:
然後我們執行這個訊息bag
rosbag play turtle_path.bag
就可以發現小海龜復現了之前用鍵盤操作的過程(這裡我重新開了個小海龜)
2. 視覺化工具
2.1 rxgraph
rxgraph
用於顯示ROS節點以及話題的計算圖。
其中rosgraph
是命令列版本,rqt_graph
的基於QT開發的圖形介面版本
執行rosgraph
可以看到節點資訊(以及入站出站介面)和服務資訊(Services)
執行rqt_graph
,可以以圖形介面的形式展示計算圖
相關文章
- 【ROS教程】ROS常用命令ROS
- TortoiseSVN 命令 (命令列執行工具)命令列
- Click: 命令列工具神器命令列
- EFCore之命令列工具命令列
- 使用SVN命令列工具命令列
- windows命令列工具(轉)Windows命令列
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- JDK常用的命令列工具JDK命令列
- DB2_命令列工具DB2命令列
- 微軟最爽命令列工具釋出!微軟命令列
- Vue-cli 命令列工具分析Vue命令列
- 俚語搜尋命令列工具命令列
- JVM 常用命令列工具JVM命令列
- go Cobra命令列工具入門Go命令列
- process.argv與命令列工具命令列
- 命令列郵件傳送工具命令列
- node.js 命令列工具(cli)Node.js命令列
- Python 開發命令列工具Python命令列
- 一些命令列效率工具命令列
- tkprof命令列工具用法小結命令列
- Cobra 庫上手—自建命令列工具命令列
- 優秀的命令列工具整理(二)命令列
- 優秀的命令列工具整理(三)命令列
- web3j命令列工具Web命令列
- python製作命令列工具——firePython命令列
- Python 非同步呼叫命令列工具Python非同步命令列
- xrandr: 命令列修改解析度工具命令列
- sqlcipher 命令列使用及工具下載SQL命令列
- Linux命令列效能檢測工具Linux命令列
- svn命令列工具安裝使用(windows)命令列Windows
- modelscope 命令列工具下載模型命令列模型
- 圖形工具和命令列的博弈-swingbench圖形,命令列配置命令列
- 【工具分享】idomain一個命令列域名查詢工具AI命令列
- Linux系統壓力測試工具(命令列工具)Linux命令列
- ros|TF工具獲取IMU資料ROS
- Windows terminal 好用的 Windows 命令列工具Windows命令列
- 使用node.js構建命令列工具Node.js命令列
- 用 Plumbum 開發 Python 命令列工具Python命令列