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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 创建一个ROS Package 这个教程包括使用roscreate-pkg或者catkin去创建一个新的packa...
    铁熊玩创客阅读 5,177评论 0 7
  • 大家好,关于机器人操作系统ROS的安装,很多文章都写的非常详细,我也在这些材料的帮助下,在VMware上安装了Ub...
    keepStriving阅读 7,642评论 2 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,350评论 19 139
  • 1. ROS 基本概念: 计算图级-------是 ROS 处理数据的一种点对点的网络形式。程序运行时,所有进程...
    李庆雪阅读 14,845评论 0 6
  • ROS的全名是Robot Operating System,即机器人操作系统。虽然名字里有个“操作系统”,但它并不...
    秋纫阅读 5,613评论 3 20

友情链接更多精彩内容