当前位置: 首页 > 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(最大角度)等,帮助你分析传感器数据。

相关文章:

  • 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底层的理解
  • 气候多米诺:厄尔尼诺与东南亚跨境害虫或威胁中国粮食安全
  • 我的科学观|梅彦昌:科技创新关键在于能否跑得快,而不是有没有钱
  • 国务院关税税则委:调整对原产于美国的进口商品加征关税措施
  • 沈阳卫健委通报“健康证”办理乱象:涉事医院已被立案查处
  • 广东韶关一镇干部冲进交通事故火海救人,获授“见义勇为”奖励万元
  • 人民日报访巴西总统卢拉:“巴中关系正处于历史最好时期”