Foxglove 入门使用教程
引言
Foxglove 是一个强大的开源工具,旨在为机器人开发者和研究人员提供直观的可视化解决方案。它支持 ROS(Robot Operating System)以及多种其他数据格式,可以帮助用户轻松地调试、分析和展示机器人系统的运行状态。本文将带你快速入门 Foxglove,并教你如何使用它来可视化机器人数据。
什么是 Foxglove?
Foxglove 是由 Foxglove 工作室 开发的一套工具集,包括 Foxglove Studio 和 Foxglove WebSocket Server 等组件。以下是其主要特点:
- 跨平台支持:可以在 Windows、macOS 和 Linux 上运行。
- 多协议兼容:支持 ROS、ROS 2、CAN 数据以及其他自定义协议。
- 丰富的可视化功能:可以绘制点云、轨迹、激光雷达数据、IMU 数据等。
- 实时与离线模式:既可以实时监控机器人状态,也可以加载和回放记录的数据文件。
安装 Foxglove Studio
方法一:通过浏览器访问
Foxglove Studio 提供了一个基于 Web 的版本,无需安装即可使用。只需访问 https://studio.foxglove.dev/ 即可开始。
PS: 浏览器测试时,发现播放时存在延迟。不建议。
方法二:下载桌面客户端
如果你需要更强大的功能或离线使用,可以选择下载桌面客户端。
- 访问 Foxglove 下载页面。
- 根据你的操作系统选择合适的版本进行下载。
- 安装完成后,启动应用程序。
连接到 ROS 或 ROS 2 系统
Foxglove 可以通过 WebSocket 与 ROS 或 ROS 2 系统通信。以下是连接步骤:
1. 安装 foxglove_ws
桥接工具
foxglove_ws
是一个 ROS 节点,用于将 ROS 数据转换为 Foxglove 支持的格式并通过 WebSocket 发送。
对于 ROS 1:
sudo apt-get install ros-<distro>-foxglove-msgs ros-<distro>-foxglove-bridge
对于 ROS 2:
sudo apt-get install ros-<ros2-distro>-foxglove-msgs ros-<ros2-distro>-foxglove-bridge
注意:将
<distro>
替换为你的 ROS 版本(如noetic
),将<ros2-distro>
替换为你的 ROS 2 版本(如humble
)。
2. 启动桥接节点
在终端中运行以下命令以启动桥接工具:
对于 ROS 1:
rosrun foxglove_bridge foxglove_bridge _websocket_port:=8765
对于 ROS 2:
ros2 run foxglove_bridge foxglove_bridge --websocket-port 8765
这将在本地主机上启动一个 WebSocket 服务器,监听端口 8765
。
3. 在 Foxglove Studio 中连接
打开 Foxglove Studio,点击左上角的“Connect”按钮,选择“WebSocket”,然后输入以下地址:
ws://localhost:8765
点击“Connect”后,你应该能够看到所有可用的 ROS 话题。
加载和播放 ROS Bag 文件
Foxglove Studio 还支持加载和播放 ROS Bag 文件,方便你离线分析数据。
1. 准备 ROS Bag 文件
确保你的 ROS Bag 文件已准备好,并且包含你需要分析的话题。
2. 导入 Bag 文件
在 Foxglove Studio 中,点击左上角的“Open File”按钮,选择你的 ROS Bag 文件。支持的文件格式包括 .bag
和 .mcap
。
3. 配置可视化选项
导入文件后,你可以从左侧的“Topics”列表中选择感兴趣的话题,并将其拖放到右侧的可视化窗口中。例如:
- 将
/scan
数据拖放到“Laser Scan”视图中查看激光雷达数据。 - 将
/tf
数据拖放到“3D”视图中查看机器人姿态。 - 将
/point_cloud
数据拖放到“Point Cloud”视图中查看点云数据。
常用功能介绍
1. 3D 视图
Foxglove 的 3D 视图允许你以三维方式查看机器人的运动轨迹、传感器数据和其他几何信息。你可以旋转、缩放和平移视图以获得更好的观察角度。
2. 时间轴控制
时间轴位于界面底部,允许你精确控制数据的播放速度、暂停和跳转到特定时间点。
3. 自定义面板
Foxglove 支持多种类型的面板,包括:
- Plot:绘制数值型数据的时间序列图。
- Table:以表格形式显示消息内容。
- Log:查看日志消息。
- Custom Panel:通过编写 JavaScript 实现自定义可视化。
示例:可视化激光雷达数据
假设你有一个 ROS 系统正在发布激光雷达数据(话题名为 /scan
),以下是具体步骤:
- 启动 ROS 系统并运行
foxglove_ws
桥接工具。 - 打开 Foxglove Studio 并连接到 WebSocket 地址
ws://localhost:8765
。 - 在左侧的“Topics”列表中找到
/scan
话题。 - 将
/scan
拖放到右侧的“Laser Scan”视图中。 - 调整视图参数(如范围、颜色映射等),以便更好地观察数据。
总结
Foxglove 是一款功能强大且易于使用的工具,适用于机器人开发和数据分析。无论你是想实时监控机器人状态,还是离线分析历史数据,Foxglove 都能为你提供高效的解决方案。希望本文能帮助你快速上手 Foxglove,并开启你的机器人可视化之旅!
如果你有任何问题或建议,请随时访问 Foxglove 官方文档 或加入社区讨论!
参考文献
[1] ROS2可视化利器—Foxglove Studio
[2] Foxglove基本功能使用说明
[3]Foxglove Studio 机器人可视化工具
[4]自动驾驶可视化利器(二)–foxglove studio
— by AGI