DEBUG

控制台默认标签页。左侧四步——提示词 → 配置 → 准备 → 控制——驱动一次闭环策略运行;右侧实时显示 3D 机械臂、相机画面与动作/状态曲线。运行模式:REAL、SIM、STEP。

左侧四步工作流,右侧实时 3D 机械臂与相机画面。

前置条件

bash
eva --config <你的配置文件路径> --web-port 8080
# 启动后,浏览器打开 http://localhost:8080
说明:整个 EVA 共用一个控制台;DEBUG 与其他五个标签页同在该界面,由上面一条命令统一启动。详见命令行参考

概览

DEBUG 是控制台六个标签页(DEBUG·MANUAL·COLLECT·REPLAY·EVAL·RESULT)中的第一个,承载一次完整的闭环推理:连接策略服务器、向策略请求动作、下发到真机或仿真,并将遥测数据推回浏览器。

四步工作流

左侧四个编号面板,自上而下完成。引导栏显示 STEP n/4。每完成一步解锁下一步。

#面板操作
1PROMPT从配置提供的列表里选一条任务提示词。
2CONFIG运行模式(REAL / SIM / STEP)和策略方案(见推理策略)。
3SETUP前两步选好后自动运行。连接策略、复位机械臂到原位、用一次推理校验。
4CONTROL连续模式:RUN / STOP / RESET;STEP 模式:SIM ↻ / REAL ▶ / STOP / RESET。仅在 Setup 成功后可用。
说明:Setup 自动触发,不是按钮。仅当策略服务器连不上时才出现 RETRY。

判读 Setup 状态

界面表现含义操作
转圈图标显示子阶段(连接、复位、校验)进行中等待。
CONTROL 解锁;策略指示 LINKED成功进入 Control。
策略指示 DOWN;出现 RETRY策略服务器连不上确认服务器与 IP/端口,点 RETRY。

LINKED / DOWN 指示同时常驻在右侧状态栏。

注意:Setup 采用快速失败策略,只尝试一次、不自动重试,避免一台没开的服务器把控制台卡死。

运行模式

第二步三种模式,默认 SIM。MANUAL 有独立标签页。

模式行为
REAL动作下发到真机,同时镜像到仿真预览,并记录已执行的动作。开始前先复位到原位。
SIM仅仿真——3D 机械臂动,真机不动。Setup 跳过复位。
STEP断点单步:每次推理并执行一个 chunk,先在仿真预览,确认后再下发真机。详见下一节。

REAL 或 SIM 运行被中途停下后,再次启动会从机械臂当前实际姿态继续,而非从头重来。

警告:REAL 模式会让真机真实运动,且开始前自动复位到原位。启动前请清空工作区并确认急停按钮位置。

STEP:断点单步

STEP 把连续的 RUN/STOP 换成「先预览、后下发」。Setup 成功后:

  1. SIM ↻——推理出一个 chunk 并在仿真机械臂上演示;该 chunk 被暂存。
  2. 查看仿真预览。横幅提示「SIM preview done · N actions · press REAL ▶ to dispatch」。
  3. REAL ▶——把暂存的 chunk 原样下发到真机;暂存清除。3D 画面保持在仿真结果。
  4. STOP ■ / RESET ⟲ 行为与连续模式一致。

预览始终先在仿真里跑,没有跳过仿真直接下发的途径。

说明:STEP 在 REPLAY 中同样可用,此时 SIM ↻ 下发录制好的下一个 chunk,而不是向策略实时查询。

实时画面

界面右侧三个区域,全部后台自动刷新,无需操作。

画面下方状态指示:传输在线、策略 LINKED/DOWN、会话状态、上次推理耗时、步数、已用时间。

说明:「传输在线」要求最近 2 秒内收到过数据。通道开着但对端没数据时仍显示离线——它反映的是数据是否在流动,而非连接是否建立。

夹爪控制与参数调优

GRIPPER 面板为每个夹爪显示一个开/合开关:单臂为 GRIPPER,双臂为 LEFT / RIGHT

每个开关旁有强制锁定

TUNING 在不重启的情况下实时调整推理参数:推理频率(inference rate,Hz)下发频率(publish rate,Hz),以及所选策略的可调字段。APPLY 在下一个运行周期生效;正在运行的策略就地更新。

说明:APPLY 只改运行中的参数,不写回磁盘上的配置文件,重启后丢失。

DEBUG 的配置

DEBUG 与控制台其余部分共用同一份 .py 配置——没有 DEBUG 专属文件。提示词列表、可选策略方案、调优默认值都来自这份文件。先列字段,再给最小骨架。

字段作用说明
policy.type策略后端openpi。见策略后端
policy.host / policy.port策略服务器地址必须与已启动的策略服务器一致。
inference_cfg.debug_tasks提示词列表(步骤 1)显示在 PROMPT 的提示词字符串列表。
inference_strategies策略方案(步骤 2)每个键为一个可选项。见推理策略
inference_cfg.inference_rateTUNING「推理频率」默认值(Hz)可实时调整。
inference_cfg.publish_rateTUNING「下发频率」默认值(Hz)可实时调整。
inference_cfg.action_space / obs_space动作 / 观测空间JointState 或 EEFPose;决定曲线维度。见动作空间

下面是 DEBUG 的最小配置骨架。_base_ 继承的父配置已设好机器人和传输层,这里只覆盖 DEBUG 相关字段。标「← 填入」「← 改成」的是必须改的值。

python
_base_ = ['_base.py']              # 继承父配置(机器人 + 传输层)

policy = dict(
    type='openpi',                   # 后端:openpi / starvla / gr00t / ...
    host='<策略服务器IP>',           # ← 填入(本机用 127.0.0.1)
    port=<端口>,                     # ← 填入(默认 9000)
)

inference_cfg = dict(
    debug_tasks=[                       # PROMPT 面板列表(步骤 1)
        '<任务提示词>',                 # ← 与策略训练时使用的任务描述一致
    ],
    inference_rate=3.0,                # Hz,可在 TUNING 实时调整
    publish_rate=30,                   # Hz,可在 TUNING 实时调整
)

inference_strategies = {            # STRATEGY 选择器(步骤 2)
    'sync':  dict(type='BaseInferStrategy', args=dict(execute_horizon=5)),
    'async': dict(type='AsyncLinearOverlapInferStrategy', args={}),
}
建议:configs/01_deploy/ 下对应你机器人的现成 .py 出发,只改「←」标注的几处。完整字段列表与 _base_ 继承规则见配置
说明:SIM 与 REAL 是界面选项,不是配置字段。同一份配置同时支持三种模式;配置里的传输层仅决定 REAL 模式下动作发往何处、观测从何而来(见传输层)。

定制提示词与策略列表

python
inference_strategies = {
    'async': dict(args=dict(latency_k=8)),       # 只改 async 的这个参数,其余沿用
    'act':   dict(args=dict(exp_weight_m=0.01)),
}