ROS通信常用命令汇总

这篇博客汇总了ROS中的关键命令,包括节点管理(rosnode)、话题通信(rostopic, rosmsg)、服务通信(rosservice, rossrv)以及参数服务(rosparam)。详细介绍了各命令的用途,如rosnode list用于列出活动节点,rostopic hz显示主题发布频率,rosservice call用于调用服务等。" 132285304,19671765,Java实现图像处理算法实战,"['Java', '图像处理', '算法']
摘要由CSDN通过智能技术生成

最近学ROS,想对可能有用的命令(加粗)做个笔记

节点命令:rosnode

rosnode ping 测试到节点的连接状态
rosnode list 列出活动节点
rosnode info 打印节点信息
rosnode machine 列出指定设备上节点
rosnode kill 杀死某个节点
rosnode cleanup 清除不可连接的节点

话题通信相关:

1、rostopic

用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。

rostopic list 显示所有活动状态下的主题
rostopic info 显示主题相关信息 --包含–> rostopic type 打印主题类型
rostopic echo 打印消息到屏幕
rostopic delay 显示带有 header 的主题延迟
rostopic find 根据类型查找主题
rostopic pub 将数据发布到主题
rostopic hz 显示主题的发布频率
rostopic bw 显示主题使用的带宽

2、rosmsg

用于显示有关 ROS消息类型的 信息的命令行工具。

rosmsg list 列出所有消息 (搭配 | grep -i 更好哦)
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包
rosmsg md5 显示 md5 加密后的消息

就我目前来看,这两个输出是一样的,各位谁知道区别欢迎评论区留言呀!!!

rosmsg show 显示消息描述
rosmsg info 显示消息信息

服务通信相关

1、rosservice

用于列出和查询ROSServices
调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash

rosservice list 列出所有活动的服务
rosservice info 打印有关服务的信息包含下面三条
rosservice uri 打印服务的 ROSRPC uri
rosservice type 打印服务类型
rosservice args 打印服务参数

rosservice call 使用提供的参数调用服务(仅用于简单测试,个人认为不如 rosrun ***/client argv1 argv2 ……的好)
rosservice find 按照服务类型查找服务

2、rossrv

用于显示有关ROS服务类型的信息的命令行工具,与 rosmsg 使用语法高度雷同。

rossrv list 列出所有服务信息(搭配 | grep -i 更好哦)
rossrv package 显示某个包下所有服务消息
rossrv packages 显示包含服务消息的所有包
rossrv md5 显示 md5 加密后的服务消息

依旧是看不到区别,还请评论区大佬教我!

rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息

参数服务:rosparam

(需要cd到workspace才能正常使用)

rosparam set 设置参数
rosparam get 获取参数
rosparam delete 删除参数
rosparam load 从外部文件加载参数
rosparam dump 将参数写出到外部文件
rosparam list 列出所有参数
rosparm get / 列出所有参数及其值 (自觉比list 好用)

roslaunch

启动launch文件

roslaunch 包名 launch文件名

launch文件格式:

<launch>
    <!-- 包含 -->
    <include file = "$(find 包名)/launch/xxx.launch" />
    
    <!-- 其他节点 -->
    <node pkg="helloworld" type="demo_hello" name="hello" output="screen" />
    <node pkg="turtlesim" type="turtlesim_node" name="t1"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="t1_key1" />
</launch>

文件存储于

功能包名 /launch/ **.launch

pkg="包名"节点所属的包
type="nodeType"节点类型(与之相同名称的可执行文件)
name="nodeName"节点名称(在 ROS 网络拓扑中节点的名称)
args=“xxx xxx xxx” (可选)将参数传递给节点
machine=“机器名” (可选)在指定机器上启动节点
respawn="true"or “false” (可选)如果节点退出,是否自动重启
respawn_delay=“N” (可选)如果 respawn 为 true, 那么延迟 N 秒后启动节点
required="true"or “false” (可选)该节点是否必须,如果为 true,那么如果该节点退出,将杀死整个 roslaunch
ns=“xxx” (可选)在指定命名空间 xxx 中启动节点,用于避免重名问题
clear_params="true " or “false” (可选)在启动前,删除节点的私有空间的所有参数(慎用)
output="log“ or “screen” (可选)日志发送目标,可以设置为 log 日志文件,或 screen 屏幕,默认是 log

参考:http://www.autolabor.com.cn/book/ROSTutorials/di-2-zhang-ros-jia-gou-she-ji/24-chang-yong-ming-ling/242-rostopic.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值