ROS_Tutorials

ROS 常用命令字典

2017-05-18  本文已影响135人  marine0131

转载 http://www.cnblogs.com/liu-fa/p/5761448.html并在其基础上进行添加

基础

启动 ROS
$ roscore

创建工作环境

$ 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 相关操作

创建 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 相关操作

查看所有正在运行的 Node

$ rosnode list

查看某节点信息

$ rosnode info [node_name]

运行 Node

$ rosrun [package_name] [node_name] [__name:=new_name]

Topic 相关操作

查看 rostopic 所有操作

$ rostopic -h

查看所有 Topic 列表

$ rostopic list

图形化显示所有topic连接关系和发布的消息

$ rosrun rqt_graph rqt_graph

如果要看每个节点的发布频率,在启动节点之前进行以下设置

$ rosparam set enable_statistics true

图形化显示topic随时间的变化关系

$ rosrun rqt_plot rqt_plot

查看某个 Topic 信息

$ rostopic echo [topic]

查看 Topic 消息格式

$ rostopic type [topic]
$ rosmsg show [msg_type]

向topic发布消息

$ rostopic pub [-1] <topic> <msg_type> [-r 1] -- [args] [args]
$ rostopic pub -1 encoder std_msg/Empty #向encoder topic 发布了一个空消息,消息只发布一次[-1]

查看topic发布的消息

rostopic echo /cmd_vel

保存所有的消息到文件

rostopic echo -p /cmd_vel > ~/location/filename 

查看topic发布消息的频率

rostopic hz /cmd_vel

Service 相关操作

查看所以service操作
$ rosservice -h

查看 service 列表
$ rosservice list

调用 service
$ rosservice call [service] [args]

查看 service 格式并显示数据
$ rosservice type [service] | rossrv show

设置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 相关操作

录制所有topic变化
$ rosbag record -a

记录某些topic
$ rosbag record -O subset <topic1> <topic2>

查看bag信息
$ rosbag info <bagfile_name>

回放
$ rosbag play (-r 2) <bagfile_name>

终端rosrun时设置topic和message别名

用命令行rosrun 来启动节点时,查看rosnode list会发现,node名字之后跟了一串的数字,本身没有什么问题,但是当我们想要通过程序来kill某个节点的时候就无法通过正常的名字来kill它了,于是我们需要设置名字

rosrun map_server map_server  /home/abc/maps/map.yaml __name:=map_server

message的别名也可以自主设置

rosrun map_server map_server  /home/abc/maps/map.yaml map:=map1 map_metadata:=map_metadata1
上一篇下一篇

猜你喜欢

热点阅读