【问题标题】:RQt publishes only null/default messages in ROS2 FoxyRQt 在 ROS2 Foxy 中仅发布空/默认消息
【发布时间】:2021-08-22 14:54:48
【问题描述】:

我在 Ubuntu 20.04 机器上安装了 ROS2 Foxy。使用 RQt 时,我可以很好地查看网络上的所有主题,并且可以订阅所有主题,甚至可以将它们绘制在实时图表上。但是,发布无法正常工作,并且总是发布空/默认消息。例如,如果我尝试发布一条数据为“true”的 Bool 消息,那么它仍然会发布“false”。与任何数字类型相同 - 无论我尝试发布什么数字,它总是发布 0。请参阅图片以获取示例: RQt screenshot

为了调试,我尝试从 Python 脚本和“ros2 pub”命令行实用程序发布这些相同的消息。这些总是工作得很好,我在 RQt 中的订阅者能够看到正在发布的正确值。有没有其他人处理过这个?根本原因是什么以及如何解决?它可能在 ROS2 Galactic 中修复了吗?

【问题讨论】:

  • 您指的是rqt_publisher(和rqt_topic),对吗?因此,当您从rqt_publisher 发布时,您已经使用ros2 topic echo <topic_name> 检查了控制台的输出,发现问题是发布者而不是主题监视器。我认为这与 ROS 本身没有任何关系,但它可能与 this issue on their Github 有关。
  • @2b-t 完全正确!谢谢你。我能够通过还原相关提交使其在本地工作,就像在您发布的链接中一样。我将在下面发布它作为答案/解决方法。
  • 不客气!很高兴它有帮助!

标签: ros ros2 rqt


【解决方案1】:

正如用户 '2b-t' 在 cmets 中指出的那样,这是一个工作代码从 rqt_publisher 中的 foxy-devel 分支中删除的问题。因此,虽然 ROS2 Foxy 中的 RQt 已损坏,但目前有一种解决方法,将 rqt_publisher 克隆到您的 ROS2 工作区并手动添加丢失的代码。这很简单,并且有一个由 github 用户“coalman321”创建的示例拉取请求,它显示了如何在此处恢复有问题的提交 (https://github.com/ros-visualization/rqt_publisher/pull/28/files)。

修复步骤:

  • cd 进入你的 ROS2 工作区的 src 目录
  • git clone https://github.com/ros-visualization/rqt_publisher.git
  • cd rqt_publisher
  • git checkout foxy-devel
  • git revert 367049ecc4ce3cab
  • cd 备份到您的 ROS2 工作区的根目录
  • colcon build --symlink-install --packages-up-to rqt_publisher
  • source install/local_setup.bash

现在,当您运行 rqt 并发布非空值时,它应该可以正常工作!您可以从命令行监视该值,例如ros2 topic echo 或来自 RQt 本身的主题监视器。

【讨论】:

猜你喜欢
  • 2023-01-13
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-28
相关资源
最近更新 更多