1

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

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

4

1 回答 1

2

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

修复步骤:

  • cd进入src您的 ROS2 工作区目录
  • 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 本身的主题监视器监视该值。

于 2021-06-25T19:08:34.517 回答