本地可视化流水线工作台:用 Java(Spring Boot)+ HTML/CSS/JS 提供点击式界面,所有业务通讯统一走 ROS(开发默认 mock 总线,生产可接 rosbridge)。
浏览器 UI ──HTTP/STOMP──► Java Workbench
│
▼
ROS Message Bus
(mock 或 rosbridge ws://)
│
▼
Python Bridge / LeRobot CLI
| 界面 | 对应能力 | 状态 |
|---|---|---|
| 硬件准备 | find-port / calibrate / teleoperate | UI + ROS 服务就绪(mock 可点通) |
| 数据采集 | lerobot-record | UI + ROS 服务就绪 |
| 数据集 | 列表 / 详情 | UI + ROS 服务就绪 |
| 训练 | lerobot-train | UI + ROS 服务就绪 |
| 评估 / 部署 | eval / rollout | UI + ROS 服务就绪 |
| 数据对齐 | 多模态对齐整理 | 界面与服务占位,待深化 |
| 智能标注 | 自动识别标注 | 界面与服务占位,待深化 |
| 流水线 | 端到端编排视图 | 可用 |
要求:JDK 17+、Maven、uv。
先装 Python 依赖(含录制所需的 datasets 等),再启 Java:
# 在仓库根目录(不是 workbench/)
uv sync --extra workbench
# 或
bash workbench/setup_python.sh只跑 uv sync(不带 extra)不会安装 datasets,录制会立刻报错。Workbench 启动录制时若检测到缺失,会尝试自动执行 uv sync --extra workbench。
Docker 不是必须。 本机已有 ROS(例如 Pixi + RoboStack 的 ~/work/dev/ros-learn)时,一键部署会直接用本机 pixi run ros2 launch rosbridge…。
cd workbench
mvn -q spring-boot:run浏览器打开:http://localhost:8080 → 左侧 ROS 环境。
启动逻辑:
- 探测本机 Pixi ROS 工程(
lerobot.ros.native-pixi-project,默认~/work/dev/ros-learn) - 若工程可用 → 「一键部署」安装/启动本机 rosbridge(可自动
pixi add ros-humble-rosbridge-suite) - 若没有本机 ROS,但有 Docker → 才走 Docker 备选
- 都没有 → Mock,并提示配置路径
自定义本机 ROS 工程:
LEROBOT_ROS_PIXI=/path/to/your/ros-pixi-project mvn spring-boot:run强制 Mock:LEROBOT_ROS_MOCK=true mvn spring-boot:run
见 src/main/resources/application.yml:
lerobot.repo-root— LeRobot 仓库根目录lerobot.ros.mock—true用内存总线;false连 rosbridgelerobot.ros.rosbridge-url— 默认ws://127.0.0.1:9090lerobot.ros.namespace— 默认/lerobot
命名空间:/lerobot
| 名称 | 用途 |
|---|---|
/lerobot/status |
总线状态 |
/lerobot/log |
日志流 |
/lerobot/job/progress |
任务进度 |
/lerobot/hardware/* |
找端口 / 标定 / 遥操作 |
/lerobot/record/* |
录制启停 |
/lerobot/train/* |
训练启停 |
/lerobot/eval/start /rollout/start |
评估与部署 |
/lerobot/dataset/* |
数据集查询 |
/lerobot/align/run /annotate/run |
对齐与标注(规划) |
- 前端:静态 SPA(hash 路由),SockJS + STOMP 收实时日志/进度
- 后端:Spring Boot 编排层,不直接调 LeRobot Python API
- ROS 层:
RosMessageBus接口;MockRosMessageBus/RosbridgeMessageBus可切换 - 桥接:
bridge/python/lerobot_ros_bridge.py将服务调用映射为uv run lerobot-*
- 用
rclpy把桥接升级为正式 ROS2 节点(service + publisher) - 录制页嵌入相机预览(Rerun / Foxglove / WebRTC)
- 实现数据对齐(时间戳校验、丢帧修补、特征一致性)
- 接入 VLM / 关键帧模型做自动标注
- 流水线页支持拖拽编排与一键复跑