轉(zhuǎn)載 http://www.cnblogs.com/liu-fa/p/5761448.html并在其基礎(chǔ)上進(jìn)行添加
基礎(chǔ)
啟動(dòng) ROS
$ roscore
創(chuàng)建工作環(huán)境
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
編譯 ROS 程序
$ cd ~/catkin_ws$ catkin_make
添加程序包到全局路徑
$ echo "source catkin_ws/devel/setup.bash" >> ~/.bashrc$ source ~/.bashrc
Package 相關(guān)操作
創(chuàng)建 Package 并編譯
$ cd ~/catkin_ws/src
$ catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
$ cd ~/catkin_ws
$ catkin_make
查找 Package
$ rospack find [package name]
查看 Package 依賴
$ rospack depends <package_name>
$ rospack depends1 <package_name>
Node 相關(guān)操作
查看所有正在運(yùn)行的 Node
$ rosnode list
查看某節(jié)點(diǎn)信息
$ rosnode info [node_name]
運(yùn)行 Node
$ rosrun [package_name] [node_name] [__name:=new_name]
Topic 相關(guān)操作
查看 rostopic 所有操作
$ rostopic -h
查看所有 Topic 列表
$ rostopic list
圖形化顯示所有topic連接關(guān)系和發(fā)布的消息
$ rosrun rqt_graph rqt_graph
如果要看每個(gè)節(jié)點(diǎn)的發(fā)布頻率庙楚,在啟動(dòng)節(jié)點(diǎn)之前進(jìn)行以下設(shè)置
$ rosparam set enable_statistics true
圖形化顯示topic隨時(shí)間的變化關(guān)系
$ rosrun rqt_plot rqt_plot
查看某個(gè) Topic 信息
$ rostopic echo [topic]
查看 Topic 消息格式
$ rostopic type [topic]
$ rosmsg show [msg_type]
向topic發(fā)布消息
$ rostopic pub [-1] <topic> <msg_type> [-r 1] -- [args] [args]
$ rostopic pub -1 encoder std_msg/Empty #向encoder topic 發(fā)布了一個(gè)空消息馒闷,消息只發(fā)布一次[-1]
查看topic發(fā)布的消息
rostopic echo /cmd_vel
保存所有的消息到文件
rostopic echo -p /cmd_vel > ~/location/filename
查看topic發(fā)布消息的頻率
rostopic hz /cmd_vel
Service 相關(guān)操作
查看所以service操作
$ rosservice -h
查看 service 列表
$ rosservice list
調(diào)用 service
$ rosservice call [service] [args]
查看 service 格式并顯示數(shù)據(jù)
$ rosservice type [service] | rossrv show
設(shè)置service parameter
$ rosparam set [parame_name] [args] + rosservice call clear
獲得parameter
$ rosparam get [parame_name]
加載parameter
$ rosparam load [file_name] [namespace]
刪除parameter
$ rosparam delete
Bag 相關(guān)操作
錄制所有topic變化
$ rosbag record -a
記錄某些topic
$ rosbag record -O subset <topic1> <topic2>
查看bag信息
$ rosbag info <bagfile_name>
回放
$ rosbag play (-r 2) <bagfile_name>
終端rosrun時(shí)設(shè)置topic和message別名
用命令行rosrun 來(lái)啟動(dòng)節(jié)點(diǎn)時(shí)纳账,查看rosnode list會(huì)發(fā)現(xiàn),node名字之后跟了一串的數(shù)字金刁,本身沒(méi)有什么問(wèn)題议薪,但是當(dāng)我們想要通過(guò)程序來(lái)kill某個(gè)節(jié)點(diǎn)的時(shí)候就無(wú)法通過(guò)正常的名字來(lái)kill它了斯议,于是我們需要設(shè)置名字
rosrun map_server map_server /home/abc/maps/map.yaml __name:=map_server
message的別名也可以自主設(shè)置
rosrun map_server map_server /home/abc/maps/map.yaml map:=map1 map_metadata:=map_metadata1