我在Ubuntu20.04机器上设置了ROS2 Foxy。使用RQt时,我可以很好地查看我的网络上的所有主题,我可以订阅所有主题,甚至可以将它们绘制在实时图表上。然而,发布不能正常工作,总是发布空/默认消息。例如,如果我试图发布一个数据为"true“的Bool消息,那么它仍然发布"false”。对于任何数字类型也是如此-无论我尝试发布什么数字,它总是发布0。如图所示:RQt screenshot
为了进行调试,我尝试从ros2脚本和‘Python pub’命令行实用程序发布这些相同的消息。它们总是工作得很好,我在RQt中的订阅者能够看到发布的正确值。还有没有人处理过这个问题?根本原因是什么?如何解决?它可能在ROS2银河中被修复了吗?
发布于 2021-06-26 03:08:35
正如用户'2b-t‘在评论中指出的,这是一个从foxy-devel分支的rqt_publisher中删除工作代码的问题。因此,虽然ROS2 Foxy中的RQt被破坏了,但现在有一个变通方法,可以将rqt_publisher克隆到ROS2工作区中,然后手动添加缺失的代码。这很简单,这里有一个由github用户'coalman321‘创建的拉取请求示例,其中展示了如何在此处恢复违规提交(https://github.com/ros-visualization/rqt_publisher/pull/28/files)。
要修复的步骤:
通过
cd进入ROS2 workspacecolcon build --symlink-install --packages-up-to rqt_publishersource install/local_setup.bash备份到src workspace
colcon build --symlink-install --packages-up-to rqt_publisher
source install/local_setup.bash的根目录下的ROS2目录
现在,当您运行rqt并发布一个非空值时,它应该可以正常工作!您可以通过命令行或RQt本身中的主题监视器来监视值。
https://stackoverflow.com/questions/67839153
复制相似问题