Foxglove 介绍以及入门使用教程

Foxglove 入门使用教程

引言

Foxglove 是一个强大的开源工具,旨在为机器人开发者和研究人员提供直观的可视化解决方案。它支持 ROS(Robot Operating System)以及多种其他数据格式,可以帮助用户轻松地调试、分析和展示机器人系统的运行状态。本文将带你快速入门 Foxglove,并教你如何使用它来可视化机器人数据。


什么是 Foxglove?

Foxglove 是由 Foxglove 工作室 开发的一套工具集,包括 Foxglove StudioFoxglove WebSocket Server 等组件。以下是其主要特点:

  • 跨平台支持:可以在 Windows、macOS 和 Linux 上运行。
  • 多协议兼容:支持 ROS、ROS 2、CAN 数据以及其他自定义协议。
  • 丰富的可视化功能:可以绘制点云、轨迹、激光雷达数据、IMU 数据等。
  • 实时与离线模式:既可以实时监控机器人状态,也可以加载和回放记录的数据文件。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

安装 Foxglove Studio

方法一:通过浏览器访问

Foxglove Studio 提供了一个基于 Web 的版本,无需安装即可使用。只需访问 https://studio.foxglove.dev/ 即可开始。

PS: 浏览器测试时,发现播放时存在延迟。不建议。

方法二:下载桌面客户端

如果你需要更强大的功能或离线使用,可以选择下载桌面客户端。

  1. 访问 Foxglove 下载页面
  2. 根据你的操作系统选择合适的版本进行下载。
  3. 安装完成后,启动应用程序。

连接到 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),以下是具体步骤:

  1. 启动 ROS 系统并运行 foxglove_ws 桥接工具。
  2. 打开 Foxglove Studio 并连接到 WebSocket 地址 ws://localhost:8765
  3. 在左侧的“Topics”列表中找到 /scan 话题。
  4. /scan 拖放到右侧的“Laser Scan”视图中。
  5. 调整视图参数(如范围、颜色映射等),以便更好地观察数据。

总结

Foxglove 是一款功能强大且易于使用的工具,适用于机器人开发和数据分析。无论你是想实时监控机器人状态,还是离线分析历史数据,Foxglove 都能为你提供高效的解决方案。希望本文能帮助你快速上手 Foxglove,并开启你的机器人可视化之旅!

如果你有任何问题或建议,请随时访问 Foxglove 官方文档 或加入社区讨论!

参考文献

[1] ROS2可视化利器—Foxglove Studio
[2] Foxglove基本功能使用说明
[3]Foxglove Studio 机器人可视化工具
[4]自动驾驶可视化利器(二)–foxglove studio

— by AGI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值