使用 Foxglove Studio 可视化 ROS 2 数据
Foxglove Studio 是一款开源的机器人数据可视化和调试工具。
它有多种使用方式,使开发尽可能方便 - 它可以作为独立的桌面应用程序运行,通过浏览器访问,甚至可以在您自己的域上自行托管。
在 GitHub 上查看源代码。
安装
要使用 Web 应用程序,只需打开 Google Chrome 并导航到 studio.foxglove.dev。
要使用适用于 Linux、macOS 或 Windows 的桌面应用程序,请直接从 Foxglove Studio 网站 下载。
连接到数据源
打开 Foxglove Studio 后,您将看到一个对话框,其中列出了“所有可能的数据源 <https://foxglove.dev/docs/studio/connection/data-sources>`__。
要连接到您的 ROS 2 堆栈,请单击“打开连接”,选择“Rosbridge (ROS 1 & 2)”选项卡,然后配置您的“WebSocket URL”。
您还可以将任何本地 ROS 2 .db3
文件直接拖放到应用程序中以加载它们进行播放。
为了“在您的 ROS 2 文件中加载自定义消息定义 <https://github.com/ros2/rosbag2/issues/782>`__,请尝试将它们转换为 MCAP 文件格式。
请查看 Foxglove Studio 文档 以获取更详细的说明。
使用面板构建布局
面板 是模块化可视化界面,可以配置并排列到 Studio 布局 中。
您还可以保存布局以备将来使用,供您个人参考或与更大的机器人团队一起使用。
在侧边栏的“添加面板”选项卡中查找可用面板的完整列表。
我们在下面重点介绍了一些特别有用的功能:
1 3D:在 3D 场景中显示可视化标记
发布标记消息以将原始形状(箭头、球体等)和更复杂的可视化(占用网格、点云等)添加到 3D 面板的场景中。
通过左侧的主题选择器选择要显示的主题,并在“编辑主题设置”菜单中配置每个主题的可视化设置。
请参阅`docs <https://foxglove.dev/docs/studio/panels/3d>`__,了解`支持的消息类型<https://foxglove.dev/docs/studio/panels/3d#supported-messages>`__的完整列表以及一些有用的`用户交互<https://foxglove.dev/docs/studio/panels/3d#user-interactions>`__。
2 诊断:过滤和排序诊断消息
显示正在运行的 feed 中具有 diagnostic_msgs/msg/DiagnosticArray
数据类型的主题中可见节点的状态(即过时、错误、警告或正常),并显示给定 diagnostic_name/hardware_id
的诊断数据。
有关更多详细信息,请参阅 docs。
3 图像:查看摄像头供稿图像
选择要显示的 sensor_msgs/msg/Image
或 sensor_msgs/msg/CompressedImage
主题。
有关更多详细信息,请参阅 docs。
4 日志:查看日志消息
要实时查看 rcl_interfaces/msg/Log
消息,请使用桌面应用程序将 <https://foxglove.dev/docs/studio/connection/native>`__ 连接到正在运行的 ROS 堆栈。
要从预先记录的数据文件中查看 rcl_interfaces/msg/Log
消息,您可以将文件拖放到 web 或桌面应用程序中。
接下来,将 Log 面板添加到布局中。 如果您已正确连接到 ROS 堆栈,您现在应该会看到日志消息列表,并可以按节点名称或严重性级别对其进行过滤。
有关更多详细信息,请参阅 docs。
5 绘图:绘制随时间变化的任意值
绘制播放时间内主题消息路径中的任意值。
指定要沿 y 轴绘制的主题值。
对于 x 轴,选择绘制 y 轴值的时间戳、元素索引或其他自定义主题消息路径。
有关更多详细信息,请参阅 docs。
6 原始消息:查看传入主题消息
以易于阅读的可折叠 JSON 树格式显示传入主题数据。
有关更多详细信息,请参阅 docs。
7 Teleop:远程操作您的机器人
通过将给定主题上的 geometry_msgs/msg/Twist
消息发布回您的实时 ROS 堆栈来远程操作您的物理机器人。
有关更多详细信息,请参阅 docs。
8 URDF 查看器:查看和操作您的 URDF 模型
要在 Foxglove Studio 中可视化和控制您的机器人模型,请打开 Web 或桌面应用程序并将 URDF 查看器 面板添加到您的布局中。 然后,将您的 URDF 文件拖放到该面板中以可视化您的机器人模型。
选择发布“JointState”消息的任何主题,根据已发布的关节状态更新可视化效果(默认为“/joint_states”)。
切换到“手动关节控制”以使用提供的控件设置关节位置。
有关更多详细信息,请参阅 docs。
其他基本操作
1 查看您的 ROS 图表
使用桌面应用程序,连接 到您正在运行的 ROS 堆栈。 接下来,将 主题图表 面板添加到您的布局。 如果您已正确连接到您的 ROS 堆栈,您现在应该会在该面板中看到您的 ROS 节点、主题和服务的计算图。 使用面板右侧的控件选择要显示的主题或切换服务。
2 查看和编辑您的 ROS 参数
使用桌面应用程序,连接 到您正在运行的 ROS 堆栈。
接下来,将 参数 面板添加到您的布局。
如果您已正确连接到您的 ROS 堆栈,您现在应该可以看到当前 rosparams
的实时视图。
您可以编辑这些参数值以将 rosparam
更新发布回您的 ROS 堆栈。
3 将消息发布回您的实时 ROS 堆栈
使用桌面应用程序,连接 到您正在运行的 ROS 堆栈。 接下来,将 发布 面板添加到您的布局。
指定您要发布的主题以推断其数据类型并使用 JSON 消息模板填充文本字段。
在常见 ROS 数据类型的下拉列表中选择数据类型也会使用 JSON 消息模板填充文本字段。
在点击“发布”之前,编辑模板以自定义您的消息。