ROS 常用命令字典
转载 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