阿克曼-幻宇机器人系列教程2- 机器人交互实践(Topic)

news2025/5/14 10:34:40

在上一篇文章中,我们介绍了两种登录机器人的方式,接下来我们介绍登录机器人之后,我们如何通过topic操作命令实现与机器人的交互。

1. 启动 & 获取topic

  • 在一个终端登录树莓派后,执行下列命令运行机器人
roslaunch huanyu_robot_start Huanyu_robot_start.launch
  • 因为终端具有独占性,所以在另一个终端登录树莓派,获取topic
ssh huike@192.168.12.1     #登录树莓派
rostopic list              #获取topic

我的机器人返回 topic(topic依赖原厂代码,如果原厂代码一样,那topic列表也是一样的。)

/cmd_vel
/joint_states
/mobile_base/sensors/imu_data
/mobile_base/sensors/imu_data_raw
/nodelet_manager/bond
/odom
/odom_combined
/robot/PowerValtage
/robot_cmd_vel
/robot_pose_ekf/odom_combined
/rosout
/rosout_agg
/scan
/smoother_cmd_vel
/tf
/tf_static
/velocity_smoother/parameter_descriptions
/velocity_smoother/parameter_updates

 2. topic操作命令详解

2.1 执行下列命令获取topic操作命令

rostopic --help

2.2 topic 操作命令及其详细作用

执行上述命令后,会返回总计8个操作命令,各个命令名称和作用如下:

  • rostopic bw    

display bandwidth used by topic  表示获取带宽,具有测试性

主要用于分析数据量、频率和网络传输负载,帮助评估系统的通信效率,尤其是在传输激光雷达、图像或点云等大量数据时非常实用。

  • rostopic delay

display delay of topic from timestamp in header  表示获取延时

是 ROS(Robot Operating System)中的一个调试工具,用于检测指定话题的消息发布延迟情况,帮助分析系统中是否存在通信延迟、发布卡顿等问题。

  • rostopic echo

print messages to screen              获取messages

用于在终端中打印话题的消息内容,便于开发者查看、调试和验证话题的数据是否正常发布和格式是否正确。

  • rostopic find 

find topics by type                           获取同一类型的topics

用于查找当前系统中正在发布的、指定类型的所有话题。

  • rostopic hz

display publishing rate of topic        获取发布频率

用于显示指定话题的发布频率的命令,可以帮助你监控话题的实时数据流速度。它对于检查某个话题(比如传感器数据)是否按预期的频率发布非常有用。

  • rostopic info

print information about active topic    

用于查看特定话题的详细信息,例如消息类型、发布者、订阅者以及服务等。这对于了解话题的来源、数据类型和系统连接状态非常有用。

  • rostopic list

list active topics

用于列出当前系统中所有正在发布的 ROS 话题。它是调试和检查系统中数据流的一个重要工具,特别是在你想了解系统中有哪些话题在运行时。

  • rostopic pub

 publish data to topic       向 ROS topic 主动发布(publish)数据

用于发布消息到指定话题的命令。它允许你通过命令行发布消息到一个话题,用于调试、测试或者模拟传感器数据、控制指令等。这对于调试机器人系统和验证消息交换非常有用,尤其是在没有实际硬件时。

  • rostopic type

print topic or field type      打印指定 topic 的消息类型

3. 举例说明如何使用topic操作命令

3.1 命令行格式

需要将topic操作命令同topic结合使用,命令行格式可以总结为:操作命令 + topic

3.2 举例说明

以 topic:/scan(雷达)为例,介绍下几个常用命令的作用

执行以下命令以及对应的作用说明如下

rostopic delay /scan

此命令会显示 /scan 话题消息从发布到接收的延迟。你可以用它来评估激光雷达数据在网络中传播的时间,特别是在高负载或网络延迟较大的情况下。

rostopic bw /scan

此命令会显示 /scan 话题的带宽(单位:字节/秒)。它帮助你了解激光雷达数据流所消耗的带宽,特别是在需要优化网络带宽时。对于高频率发布的 /scan 话题,带宽可能会比较大。

rostopic echo /scan

此命令会实时显示 /scan 话题的消息内容,也就是激光雷达的数据。你可以查看 LaserScan 消息中的字段,如 ranges(激光测量的距离数组),angle_min(最小角度),angle_max(最大角度)等,帮助你分析传感器数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2375304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring AI 开发本地deepseek对话快速上手笔记

Spring AI Spring AI是一个旨在推进生成式人工智能应用程序发展的项目,Spring AI的核心目标是提供高度抽象化的组件,作为开发AI应用程序的基础,使得开发者能够以最少的代码改动便捷地交换和优化功能模块‌ 在开发之前先得引入大模型&#xf…

SpringBoot中的拦截器

SpringBoot中的拦截器 Filter 典型场景 全局鉴权/接口耗时统计 WebFilter("/*") public class CostFilter implements Filter {Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {long start System.currentTimeMill…

半小时快速入门Spring AI:使用腾讯云编程助手CodeBuddy 开发简易聊天程序

引言 随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI集成到自己的应用中。人工智能正在迅速改变各行各业的工作方式,从自动化客服到智能推荐系统,AI的应用几乎无处不在。Spring AI作为一种开源框架…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】金融风控分析案例-10.3 风险指标可视化监控

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL金融风控分析之风险指标可视化监控实战一、引言二、案例背景三、数据准备(一)数据来源与字段说明(二)数据清洗 四、…

geoserver发布arcgis瓦片地图服务(最新版本)

第一步:下载geoserver服务,进入bin目录启动 需要提前安装好JDK环境,1.8及以上版本 安装完成,页面访问端口,进入控制台界面,默认用户名密码admin/geoserver 第二步:下载地图 破解版全能电子地图下载器&…

多边形,矩形,长方体设置

在cesium中,我们可以通过既有的库来进行对地图的构建 // 向场景中添加一个几何体(立方体) scene.primitives.add(new Cesium.Primitive({// 定义几何体实例geometryInstances: new Cesium.GeometryInstance({// 使用BoxGeometry.fromDimensions方法创建…

(C语言)超市管理系统(测试版)(指针)(数据结构)(二进制文件读写)

目录 前言: 源代码: product.h product.c fileio.h fileio.c main.c 代码解析: fileio模块(文件(二进制)) 写文件(保存) 函数功能 代码逐行解析 关键知识点 读文…

nRF Connect 下载

官方下载路径 点击,或往下拉 选对应的版本 下载成功,数字代表版本好

基于Arduino的贪吃蛇游戏机

3D 打印迷你贪吃蛇游戏机: 在数字娱乐高度发达的今天,我们常常怀念那些经典的复古游戏。其中,贪吃蛇游戏无疑是许多人童年的记忆。今天,我将带你走进一个有趣的 DIY 项目——3D 打印迷你贪吃蛇游戏机。这个项目不仅能够让你重温经…

【PmHub后端篇】Redis分布式锁:保障PmHub流程状态更新的关键

在分布式系统中,确保数据一致性和操作的正确执行是至关重要的。PmHub项目中,通过集成Redis分布式锁来保障流程状态更新,这是一个非常关键的技术点,以下将详细介绍其原理、实现。 1 本地锁的问题 1.1 常见的本地锁 在Java中&…

Starrocks的主键表涉及到的MOR Delete+Insert更新策略

背景 写这个文章的作用主要是做一些总结和梳理,特别是正对大数据场景下的实时写入更新策略 COW 和 MOR 以及 DeleteInsert 的技术策略的演进, 这也适用于其他大数据的计算存储系统。该文章主要参考了Primary Key table. 分析总结 Starrocks 的主键表主…

《操作系统真象还原》第十四章(2)——文件描述符、文件操作基础函数

文章目录 前言文件描述符简介文件描述符原理文件描述符实现修改thread.h修改thread.c 文件操作相关的基础函数inode操作相关函数文件相关函数编写file.h编写file.c 目录相关函数完善fs/dir.h编写fs/dir.c 路径解析相关函数实现文件检索功能修改fs.h继续完善fs.c makefile 结语 …

EMQX v5.0通过连接器和规则同步数据

1 概述 EMQX数据集成功能,帮助用户将所有的业务数据无需额外编写代码即可快速完成处理与分发。 数据集成能力由连接器和规则两部分组成,用户可以使用数据桥接或 MQTT 主题来接入数据,使用规则处理数据后,再通过数据桥接将数据发…

2. 盒模型/布局模块 - 响应式产品展示页_案例:电商产品网格布局

2. 盒模型/布局模块 - 响应式产品展示页 案例&#xff1a;电商产品网格布局 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">:root {--primary-color…

LVGL的三层屏幕结构

文章目录 &#x1f31f; LVGL 的三层屏幕架构1. **Top Layer&#xff08;顶层&#xff09;**2. **System Layer&#xff08;系统层&#xff09;**3. **Active Screen&#xff08;当前屏幕层&#xff09;** &#x1f9e0; 总结对比&#x1f50d; 整体作用✅ 普通屏幕层对象&…

【PDF】使用Adobe Acrobat dc添加水印和加密

【PDF】使用Adobe Acrobat dc添加水印和加密 文章目录 [TOC](文章目录) 前言一、添加保护加密口令二、添加水印三、实验四、参考文章总结 实验工具&#xff1a; 1.Adobe Acrobat dc 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、添加保护加…

Windows下安装mysql8.0

一、下载安装离线安装包 &#xff08;下载过了&#xff0c;可以跳过&#xff09; 下载网站&#xff1a;MySQL :: Download MySQL Installerhttps://dev.mysql.com/downloads/installer/ 二、安装mysql 三、安装完成验证

水滴Android面经及参考答案

static 关键字有什么作用&#xff0c;它修饰的方法可以使用非静态的成员变量吗&#xff1f; static关键字在 Java 中有多种作用。首先&#xff0c;它可以用来修饰变量&#xff0c;被static修饰的变量称为静态变量。静态变量属于类&#xff0c;而不属于类的某个具体实例&#xf…

工程师必读! 3 个最常被忽略的 TDR 测试关键细节与原理

TDR真的是一个用来看阻抗跟Delay的好工具&#xff0c;通过一个Port的测试就可以看到通道各个位置的阻抗变化。 可是使用上其实没这么单纯&#xff0c;有很多细节需要非常地小心&#xff0c;才可以真正地看到您想看的信息&#xff01; 就让我们整理3个极为重要的TDR使用小细节&…

C++中的各式类型转换

隐式转换&#xff1a; 基本类型的隐式转换&#xff1a; 当函数参数类型非精确匹配&#xff0c;但是可以转换的时候发生 如&#xff1a; void func1(double x){cout << x << endl; }void func2(char c){cout << c << endl; }int main(){func1(2);//…