ROS学习——通信机制(常用命令)

news/2024/8/19 8:58:33

2.4 常用命令 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程088常用命令简介_Chapter2-ROS通信机制_哔哩哔哩_bilibili

机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?

在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:

  • rosnode : 操作节点
  • rostopic : 操作话题
  • rosservice : 操作服务
  • rosmsg : 操作msg消息
  • rossrv : 操作srv消息
  • rosparam : 操作参数

作用

和之前介绍的文件系统操作命令比较,文件操作命令是静态的,操作的是磁盘上的文件,而上述命令是动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。

案例演示(启动话题通信案例)

②使用自定义发布消息

 ②订阅

一、rosnode

rosnode 是用于获取节点信息的命令

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

新窗口——rosnode

命令后加 -h显示帮助文档

 (1)rosnode list 列出活动节点

 rosout——不是自己写的,启动roscore自动生成的节点

 (2)rosnode ping 测试到节点的连接状态

 (3)rosenode info 打印节点信息

 (4)rosnode machine 列出指定设备上的节点

(5)rosnode kill  杀死某个节点

 (6)rosnode cleanup 清除无用节点

启动乌龟节点,然后 ctrl + c 关闭,该节点并没被彻底清除,可以使用 cleanup 清除节点

 二、rostopic

rostopic包含rostopic命令行工具,用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。它还包含一个实验性Python库,用于动态获取有关主题的信息并与之交互。

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

重启启动话题通信案例

 发布和订阅之间的话题是liaoTian

新窗口——rostopic

 (1)rostopic list 显示所有活动状态下的主题

 rosout、rosout_agg——和日志适用的话题

(2)rostopic echo 获取指定话题当前发布的消息,扮演了消息的订阅方

 报错,需要在demo03下操作

 (3)rostopic pub 可以直接调用命令向订阅者发布消息,扮演消息的发布方

rostopic pub /主题名称 消息类型 消息内容
rostopic pub /chatter std_msgs gagaxixi

 liaoTian后可以两个Tab补齐

 ②按照某种频率发布消息

(4)rostopic info  获取当前话题的相关信息

消息类型、发布者信息、订阅者信息

 启动发布方

 (5)rostopic hz 列出消息发布频率

 三、rosservice

rosservice包含用于列出和查询ROSServices的rosservice命令行工具。

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

rosservice args 打印服务参数
rosservice call    使用提供的参数调用服务
rosservice find    按照服务类型查找服务
rosservice info    打印有关服务的信息
rosservice list    列出所有活动的服务
rosservice type    打印服务类型
rosservice uri    打印服务的 ROSRPC uri

 启动服务端

 新窗口——rosservice

 (1)rosservice list 列出所有活动的 service

 (2)rosservice call 调用服务

addInts——服务名称,Tab补齐(补不齐空格一下再tab)

(3)rosservice info 获取服务话题详情

 (4)rosservice type 打印服务数据类型


http://lihuaxi.xjx100.cn/news/1361288.html

相关文章

「硬核」实操如何拥有一个自己的数字人模型

一、前言 近年来,随着人工智能技术,VR,元宇宙等技术的发展,数字人(Digital Human)逐渐成为研究的热点之一,数字人是指通过计算机技术模拟出的具有人类外表,动作和语言能力的虚拟人物…

金融银行测试面试题:网上银行转账是怎么测的?

前言 这段时间收到好多粉丝的留言说想求一份金融银行相关的测试面试题,所以我花了不少时间给大家整理了一份,今天分享给需要的朋友们,也希望对你们有所帮助。 1、网上银行转账是怎么测的,设计一下测试用例。 回答思路&#xff1…

NLP数据集-glue-mnli数据集下载地址

感谢网友分享 终于找到了glue数据集的下载地址 NLP常用模型和数据集国内高速下载 - 知乎

Pandas Groupby:在Python中汇总、聚合和分组数据

GroupBy是一个非常简单的概念。我们可以创建一个类别分组,并对这些类别应用一个函数。这是一个简单的概念,但它是一种在数据科学中广泛使用的非常有价值的技术。在真实的的数据科学项目中,您将处理大量数据并一遍又一遍地尝试,因此…

AI销售工具:驱动销售团队效率和个性化服务的未来

在数字化时代,AI销售工具成为推动销售行业发展的重要力量。这些创新工具融合了人工智能技术和销售流程,以提高销售团队的效率和提供个性化服务为目标。随着科技的不断进步,AI销售工具正引领着销售行业走向一个更加智能和高效的未来。 AI驱动的…

ASFF Learning Spatial Fusion for Single-Shot Object Detection 论文学习

1. 解决了什么问题? 目标检测取得了显著成绩,但是检测不同尺度的目标仍然是一个挑战。金字塔或多层级特征是解决目标检测中尺度变化的常用手段。但对于单阶段目标检测器而言,各特征尺度之间不一致性制约了算法的表现。与图像金字塔相比&…

23杭电(一)-E-Cyclically Isomorphic(字符串最小表示法)

传送门 #include <bits/stdc.h>using namespace std;#define endl "\n" #define debug cout<<"debug"<<endl mt19937 rd(time(0)); typedef long long ll; typedef long double ld; typedef pair<ll, ll> PII; const double eps …

LeetCode题解:2618. 检查是否是类的对象实例,迭代和递归

原题链接&#xff1a; https://leetcode.cn/problems/check-if-object-instance-of-class/ 解题思路&#xff1a; 我们可以使用 JavaScript 的原型链来检查一个对象是否是一个类的实例。在 JavaScript 中&#xff0c;每个对象都有一个内部属性 [[Prototype]]&#xff0c;可以…