当前位置: 首页 > news >正文

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

在上一篇文章中,我们介绍了两种登录机器人的方式,接下来我们介绍登录机器人之后,我们如何通过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.dtcms.com/a/187442.html

相关文章:

  • ubuntu部署supabase
  • flutter编译时 设置jdk版本
  • 在Java中实现Parcelable接口和Serializable接口有什么区别?
  • 工程师必读! 3 个最常被忽略的 TDR 测试关键细节与原理
  • T-BOX硬件方案深度解析:STM32与SD NAND Flash存储的完美搭配
  • 音频转文字-在线工具包及使用记录
  • 2025年PMP 学习十一 第8章 项目质量管理(8.3)
  • 分布式链路跟踪
  • qemu热迁移后内存占用突增问题
  • C++23 ranges::range_adaptor_closure:程序定义的范围适配器闭包的辅助类
  • Starrocks的主键表涉及到的MOR Delete+Insert更新策略
  • 【阿里云】阿里云 Ubuntu 服务器无法更新 systemd(Operation not permitted)的解决方法
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】金融风控分析案例-10.4 模型部署与定期评估
  • 从HTTP轮询到WebSocket:如何让体育API性能提升100倍?
  • 【Python 中文编码】
  • 关于网站提交搜索引擎
  • Protobuf工具
  • C语言 ——— 函数栈帧的创建和销毁
  • Kafka 解惑
  • 你对于JVM底层的理解
  • Python面向对象编程(OOP)深度解析:从封装到继承的多维度实践
  • Room持久化库:从零到一的全面解析与实战
  • 5. 动画/过渡模块 - 交互式仪表盘
  • 车载网关作为车辆网络系统的核心枢纽
  • spark MySQL数据库配置
  • 基于 Amazon Bedrock 和 Amazon Connect 打造智能客服自助服务 – 设计篇
  • 涌现理论:连接万物的神秘力量
  • Kafka、RabbitMQ、RocketMQ的区别
  • 地址簿模块-01.需求分析
  • python训练营day23