3分钟上手LeRobot数据集可视化:从安装到远程调试全攻略
3分钟上手LeRobot数据集可视化:从安装到远程调试全攻略
你是否还在为机器人数据集难以直观查看而困扰?训练模型时无法确认数据质量?调试时找不到样本异常原因?本文将带你掌握LeRobot本地数据集可视化工具的全部用法,通过3个实用场景案例,让你轻松解决机器人数据调试难题。读完本文你将学会:本地可视化快速启动、远程服务器数据查看、自定义参数优化可视化效果。
为什么需要数据集可视化工具?
机器人学习依赖大量 episodes( episodes(片段))数据,但原始传感器数据(摄像头图像、关节角度、力反馈等)通常以二进制格式存储,直接查看困难。LeRobot提供的lerobot-dataset-viz工具通过 Rerun 可视化引擎,将多模态数据转化为时间序列视图,支持:
- 同步查看图像流与关节角度变化
- 对比动作指令与实际执行效果
- 检测数据采集过程中的异常帧
安装准备
环境要求
- Python 3.8+
- 系统依赖:requirements-ubuntu.txt 或 requirements-macos.txt
- Rerun可视化引擎(工具会自动安装)
快速安装
# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/le/lerobot.git
cd lerobot
# 安装依赖
pip install -r requirements-ubuntu.txt # Ubuntu用户
# 或
pip install -r requirements-macos.txt # macOS用户
# 验证安装
lerobot-dataset-viz --help
核心功能解析
1. 本地数据集可视化(基础场景)
最常用的工作流,直接在本地机器加载数据集并启动可视化界面:
lerobot-dataset-viz \
--repo-id lerobot/pusht \
--episode-index 0
参数说明:
--repo-id: 数据集标识(本地路径或HuggingFace仓库ID)--episode-index: 要查看的片段索引(从0开始)
执行后将自动启动Rerun viewer,展示:
- 多摄像头图像流(如 media/so100/leader_follower.webp 所示类似视图)
- 关节角度随时间变化曲线
- 动作指令与传感器数据同步对比
2. 远程服务器数据查看(进阶场景)
当数据集存储在无图形界面的服务器时,支持两种远程查看模式:
模式A:生成离线文件
# 服务器端生成.rrd文件
lerobot-dataset-viz \
--repo-id lerobot/pusht \
--episode-index 0 \
--save 1 \
--output-dir ./vis_results
# 本地下载并查看
scp user@server:./vis_results/lerobot_pusht_episode_0.rrd .
rerun lerobot_pusht_episode_0.rrd
模式B:实时流式传输
# 服务器端启动WebSocket服务
lerobot-dataset-viz \
--repo-id lerobot/pusht \
--episode-index 0 \
--mode distant \
--ws-port 9087
# 本地端口转发(新终端)
ssh -L 9087:localhost:9087 user@server
# 本地查看
rerun ws://localhost:9087
3. 自定义可视化参数(高级场景)
通过调整参数优化可视化体验:
lerobot-dataset-viz \
--repo-id lerobot/pusht \
--episode-index 0 \
--batch-size 64 \ # 增大批量加载速度
--num-workers 4 \ # 启用多进程加载
--tolerance-s 0.001 # 时间戳容差调整
关键参数说明: | 参数 | 作用 | 推荐值 | |------|------|--------| | --batch-size | 数据加载批次大小 | 32-128(依GPU内存) | | --num-workers | 数据加载进程数 | CPU核心数的1/2 | | --tolerance-s | 时间戳校验容差 | 0.0001(精确模式)/0.01(快速模式) |
代码原理简析
可视化核心逻辑在 src/lerobot/scripts/lerobot_dataset_viz.py 中实现,主要流程:
- 数据加载:通过
LeRobotDataset类读取指定片段 - 数据预处理:
to_hwc_uint8_numpy函数将图像转为Rerun兼容格式 - 时间序列构建:按帧索引和时间戳组织多模态数据
- 可视化渲染:通过Rerun SDK绘制图像流、标量曲线等
核心代码片段:
# 图像格式转换(第94-100行)
def to_hwc_uint8_numpy(chw_float32_torch: torch.Tensor) -> np.ndarray:
hwc_uint8_numpy = (chw_float32_torch * 255).type(torch.uint8).permute(1, 2, 0).numpy()
return hwc_uint8_numpy
# 多模态数据日志(第155-177行)
for key in dataset.meta.camera_keys:
rr.log(key, rr.Image(to_hwc_uint8_numpy(batch[key][i])))
for dim_idx, val in enumerate(batch[ACTION][i]):
rr.log(f"{ACTION}/{dim_idx}", rr.Scalar(val.item()))
常见问题解决
Q:可视化窗口卡顿怎么办?
A:尝试降低 --batch-size 或设置 --num-workers 0 禁用多进程加载
Q:远程模式连接失败?
A:检查防火墙设置,确保 --ws-port 端口已开放,或使用 --web-port 指定HTTP端口
Q:如何查看自定义数据集?
A:将数据集按 docs/source/lerobot-dataset-v3.mdx 规范组织,使用 --root 参数指定本地路径
总结与后续展望
LeRobot数据集可视化工具通过直观的多模态数据展示,解决了机器人学习中的数据调试痛点。无论是本地开发还是远程服务器场景,都能提供高效的可视化方案。未来版本将支持3D点云可视化和标注工具集成,进一步提升数据处理效率。
点赞+收藏本文,关注项目 CONTRIBUTING.md 获取工具更新通知,下期将带来《数据集质量评估自动化指南》。
更多推荐




所有评论(0)