ROS 常用命令简介

7 篇文章 2 订阅

参考ROS官网教程

命令补全

ROS系统较为复杂,为了简化命令输入,ROS的一些工具提供tab补全功能。
例如,

$ roscd roscpp_tut<<<按TAB键>>>

会得到

$ roscd roscpp_tutorials/

包编译 catkin***

创建包 catkin_create_pkg

创建包,并指定依赖项

catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

编译包 catkin_make

catkin_make工具在底层应该是调用了cmake,它通过CMakeLists.txt来设置编译信息。

命令说明
catkin_make [make_targets] [-DCMAKE_VARIABLES=…]命令样式,底层调用cmake
catkin_make install类似于cmake install
catkin_make --source [my_source_dir]将指定目录的代码的编译内容放置于当前目录

非运行时工具

包管理工具 rospack = ros + pack(age)

rospackrosbash命令集的一部分,rospack允许你获取软件包的有关信息,详细查看

命令说明
rospack find [package_name]查找软件包所在路径
rospack depends1 [package_name]查看包一级依赖(直接依赖的包),与查看[package_name]/package.xml<build_depend>标签等效。
rospack depends [package_name]查看所有依赖包(递归查看所有依赖包)

目录 roscd = ros + cd

roscdrosbash命令集的一部分,它允许你直接切换目录(cd)到某个软件包或者软件包集当中。

roscd只能切换到那些路径已经包含在ROS_PACKAGE_PATH环境变量中的软件包。
ROS_PACKAGE_PATH的值由(:)分隔
查看 ROS_PACKAGE_PATH中包含的路径:

$ echo $ROS_PACKAGE_PATH
命令说明
roscd [locationname[/subdir]]roscd roscpp/cmake ,进入包的cmake子目录
roscd log 进入包的log目录

目录 rosls = ros + ls

roslsrosbash命令集的一部分,它允许你直接按软件包的名称执行 ls 命令(而不必输入绝对路径)。

$ rosls roscpp_tutorials

包消息协议(rosmsg)工具

此工具用于查看由*.msg生成的消息对象信息

命令说明
rosmsg show输出消息定义
rosmsg list列举所有支持的消息
rosmsg md5输出 消息的md5值
rosmsg package列举包支持的所有消息
rosmsg packages列出多个包支持的消息

包服务协议(rossrv)工具

此工具用于查看由*.srv生成的消息对象信息

命令说明
rossrv show [srv-name]输出服务协议的定义
rossrv info [srv-name]等价于rossrv show
rossrv list列举所有支持的服务协议
rossrv md5输出服务协议的md5值
rossrv package列举包支持的所有服务协议(仅名字)
rossrv packages列出多个包支持的服务协议(仅名字)

运行时工具

主节点roscore

启动主节点

roscore

节点 rosnode (ros+node)

命令说明
rosnode list查看运行节点
rosnode info [package name]查看节点状态, 例如节点 rosnode info /rosout
rosnode cleanup清空节点
rosnode ping [node_name]检验运行节点

启动节点 rosrun (ros+run)

rosrun根据包名直接运行软件包内的节点,而不需要知道包的路径。

$ rosrun [package_name] [node_name]

例如,运行小海龟

rosrun turtlesim turtlesim_node  # 运行 turtlesim 包的 turtlesim_node  节点

话题命令 rostopic (ros+topic)

rostopic命令工具用于获取ROS话题的信息。

rostopic bw输出带宽
rostopic delay输入延迟
rostopic echo [topic]信息输出到屏幕
rostopic find [topic]根据类型查找topic
rostopic hz [topic]输出信息频率(Hz)
rostopic info [topic]输出活动topic的信息
rostopic list罗列活动topic
rostopic pub [topic] [msg_type] [args]向 [topic] 发布(publish) [msg_type] 类型信息的信息,参数为[args。] ,见后文例子
rostopic type [topic]输出 topic 的消息类型,如坐标(x,y,z)
rostopic -h查看rostopic支持的所有操作
rostopic -h查看 rostopic 操作的具体说明

向topic发布消息的例子(版本 ROS Groovy )

$ rostopic pub -1 /turtle1/command_velocity turtlesim/Velocity  -- 2.0  1.8
  • -1,消息只发布一次,如输入-r 1,则以1Hz频率publish重复发消息
  • /turtle1/command_velocity,topic的名字
  • turtlesim/Velocity,消息类型
  • --,分隔符,之后的都是当前数据类型的参数(即2.0 1.8

服务命令

服务是ROS系统传输信息的另一种方式,与topic的区别在于:

  • 服务像打电话,有来有回
  • topic像看电视,一端发,一端收。

服务端命令 rosservice

服务命令说明
rosservice list输出活跃服务的信息
rosservice call [service] [args]用给定的参数调用服务
rosservice type [service]输出服务的类型
rosservice find按服务的类型查找服务
rosservice uri输出服务的ROSRPC uri

服务端参数 rosparam

rosparam用于存储和操作 ROS 参数,使用YAML标记语言的语法:

  • 1是整型
  • 1.0是浮点型
  • one是字符串
  • true是布尔型
  • [1, 2, 3]是整型组成的列表
  • {a: b, c: d}是字典。
支持操作说明
rosparam set [param_name]设置参数
rosparam get [param_name]获取参数,如果写/则会获得参数所有内容
rosparam load [file_name] [namespace]从文件中加载参数
rosparam dump [file_name] [namespace]向文件中转储参数
rosparam delete删除参数
rosparam list列出参数名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值