Repository navigation
Replies: 3 comments
|
维护者已要求以 Issue 推进首批任务迁移,范围与验收已落到 #282:CHORD 首批任务迁移。 首批选定 Issue 已列出任务清单、训练/评估入口、原生接触记录、独立评分、预算冻结和完成条件。目前完成的是任务选择与建项,尚未迁移代码或运行训练;未恢复后台调度。 |
|
首批迁移已开始落代码:PR #284 已合入 main,并完成双语站点部署回读。准备切片 #283 已完成,提供三任务固定清单、资产哈希/网格/运行环境预检,以及显式有限预算的上游 train/eval 命令准备;中文入口。 当前仍是 0/3 原生任务迁移。这次没有运行 CHORD 优化器、策略或独立任务评分;完整测试和双后端 14 s 验收是 DexLab 既有场景回归。后续在 #282 继续:独立 Isaac Lab 2.3.2 环境与预算准入 → synthbox 工程 smoke → 纸巾盒原生记录/训练/评估 → 两项取得合法数据的 ARCTIC 任务。#282 保留开放,后台调度保持暂停。 |
|
原生训练这一层已经实际接通:草稿 PR #292,执行跟踪 #285。纸巾盒完成 38,400 样本、1,000 次 Adam 更新以及独立进程 600 步 checkpoint 重载;另有 synthbox 更新/保存/重载烟测。评估器还根据原生读数修正了首次 reset 的 VOC 辅助缺口。 这仍不是完整任务迁移:记录器 off/on 一致性失败,off/off 重复也失败,独立评分被阻止。因此三项示范的训练/重载为 1/3,合格记录/评分及完整迁移为 0/3,不能宣称学会了操作。两项 ARCTIC 继续等待授权数据。 代码和双语报告已可审查,但 PR 保持草稿未合并:完整交付门禁尚缺双后端验收,当前本机并发实验反复触发锁检查。保留全部失败和原阈值,待独占窗口完成验收;#282 保持开放,后台调度保持暂停。 |
Uh oh!
There was an error while loading. Please reload this page.
我的判断:值得把 CHORD 纳入 DexLab,补上一个可训练、可回放、可独立验收的接触策略案例。它最有价值的贡献,是把人类示范里的接触方式变成学习信号,让 DexLab 能实际研究“物理改变后,策略学到了什么”。第一步建议复用上游训练器,把接入重点放在任务、观测动作和证据记录上。
这与 DexLab 当前的 Simulation–Learning Co-evolution 方向一致:现有任务执行、原生接触读回和独立评分,为检查学习结果提供基础;CHORD 可以提供一个具体的训练对象。DexLab 当前定位
本帖是待采纳的研究与接入提案,依据论文和固定版本源码整理;没有运行训练、策略或新的物理实验,也不改变现有排期。
CHORD 能补什么:用“打开盒盖”理解
以论文中的开盖例子来说,人类拇指从盖子下方施力。机器人若只追求接触点位置接近,可能碰到了附近的侧面:位置很像,但施力方向和力臂不同,盖子仍然打不开。
CHORD 把接触位置、方向和摩擦假设转换成物体坐标系中的 wrench,即力与力矩的组合,再比较人手和机器人接触所能支持的方向。它给 RL 的指导更接近“找到能产生所需物体运动的接触”。机器人可以使用适合自己手型的接触组合,同时追踪示范中的物体运动。论文 v2 §3.1,公式 1–3
这对 DexLab 的增量是:此前“换一种接触表示,保持结果是否变化”的问题,可以进一步变成“同样训练预算下,哪种策略能学会保持、换指和恢复;它是否利用了某个仿真条件”。这里既有策略学习问题,也有可定位的物理问题。
但 CHORD 的 wrench support 是接触能力的代理描述。论文明确不把它视为精确的多接触可行净 wrench 集;当前实现使用归一化接触方向、离散摩擦锥和长度归一化的力矩。分数高,不能单独证明真实载荷下力够大、不会滑、执行器可实现,或已经准确模拟触觉。DexLab 应同时保留这个训练信号与实际求解出的接触力、力矩和任务结果。当前 support 计算、在线接触预处理
已有基础与真正缺的接口
DexLab 并非完全没有动作接口:
AppleStemEnv.step()已接收关节位置目标,保留原生场景和状态;Poke 也有模型会话与动作校验。但在本次检查的任务与训练入口中,未见已接通的 CHORD 示范处理、接触奖励、训练和独立评估流程。已有接口不能直接等同于这一闭环。AppleStemEnv、Poke 会话建议采用下面的分工:
首个任务只需讲清三组接口,没必要先搭一个通用训练框架:
缺失的原生观测应明确标为缺失;不能把 wrench support 填进实际力或冲量字段。
上游浮动手策略的动作包含腕部位姿残差与手指关节残差,经跟踪控制器执行;不能直接塞进 Poke 的末端位姿加单一 gripper 格式,也不能拿 Sharpa checkpoint 直接控制 Wuji。移植 Wuji 需要重新检查重定向、驱动、碰撞几何和观测,并重新训练或明确验证迁移。上游动作实现
建议先做哪一条路线
优先:一个有可靠接触标注的上游短刚体任务,沿 Isaac Lab / RSL-RL 路线接入 DexLab 记录与独立评分。 首轮保留原手型、参考、资产和训练配置,先取得可解释基线。这样失败时,不会同时混入新手型、新引擎和新奖励三个变化。
再把机制迁移到 DexLab 的 Wuji 简单刚体案例:在已经能保持和释放的条件上,选择一次明确的接触切换,例如接收指接触、原手指卸载、物体发生小幅有符号转动。它可以与 #48 的问题衔接,但本帖不把这个尚待选择与冻结的实验写成已批准任务,也不宣称全手内操作已解决。
FlashCHORD 值得保留为第二条候选路线。 当前官方仓库已经包含 Newton/Warp/JAX、PPO/FlashSAC、checkpoint 和评估代码,工程上可借鉴;但它不能仅凭名字就算一个独立物理引擎对照。检查的实现通过 Newton
SolverMuJoCo调用 MuJoCo-Warp,配置中的solver: newton是约束求解算法选项。需要分别记录框架、求解路径和算法。FlashCHORD 入口、实际求解器构建、构造调用FlashCHORD README 对其完整训练配方列出的验证配置是 48 GiB GPU、至少 46,000 MiB 空闲;这是上游配方的条件,不是本轮测得的成本,也不是所有缩小实验的最低需求。两条路线都应先测一个小规模运行的时间和资源,再冻结预算,不能从“代码存在”推导“很便宜”。
首轮暂缓: 完整视频重建、大规模任务库搬运、全身动作补全、VLA 后训练,以及柔体/切割扩展。CHORD 在论文中主要处理刚体和铰接物体;其接触指导值得迁移,但布料形变、海绵材料和切割拓扑需要另外设计状态、奖励与验收。
最值得做的实验:学习收益和物理收益分开
先完成上游单任务基线与记录一致性检查,确认加入记录后没有改变控制时序或策略行为,再做以下实验。
第一轮:物理配置固定,比较学习信号。 保留相同示范、观测、控制器、网络、课程和训练预算,比较:
若移植的位置奖励与论文实现不同,应明确标为 DexLab 的重实现消融。至少使用预先固定的多个训练种子,并把训练步数、GPU 时和所有失败记录下来。
第二轮:冻结策略,只改一个物理条件。 例如摩擦、执行器限制、观测延迟,或经过资格检查的接触模型。让同一策略闭环读取新环境中的观测;直接重放旧动作只能回答另一种问题。报告保持、滑移、接触切换、释放和扰动恢复表现。控制适配未通过时,不能把跨后端失败归到求解器。
第三轮:只在找到可解释的物理差异后重训。 设原物理配置为 P0,依据独立证据调整后的配置为 P1,分别训练得到 π0、π1,再完成四格评估:
同一任务和预算下,这能区分“换环境立刻变容易”和“重训后的策略真的适应了新的接触条件”。P1 要靠解析参照、数值检查或实测证据说明改动理由;策略成功率更高本身不能证明 P1 更真实。只有策略与仿真之间确实出现这条可复核反馈链,才把它记为协同演进的进展。
三个会改变结论的检查
1. 辅助究竟何时退出? CHORD 使用 Virtual Object Controller(VOC):训练早期直接给物体施加辅助力/力矩,之后逐步撤掉。上游当前
eval.py已显式从首帧重置并关闭 VOC,这一点应保留;部分数据生成流程仍允许短暂辅助。DexLab 要记录实际辅助外力及撤除时刻,区分“从预抓持状态无辅助完成”和“从任务初态独立完成”,不能用一个配置名代替验证。VOC 计算、上游评估关闭辅助2. 奖励真的是所声称的那个吗? 接触重建噪声大时,上游提供 gated force-closure 替代路线,只借用参考中的接触有无标签;它不再完整匹配示范接触的方向结构。消融还要同时核查初始 reward 权重与 curriculum 后续覆写。否则配置上写“关闭”,训练中可能又被启用。替代奖励实现、课程中的奖励覆写
3. 怎样算成功,信息条件是什么? 论文大规模结果为 4,739 项构建任务中评测 1,831 项、报告 82.12%;它使用基于参考偏差与回合完成比例的口径,不能直接替代 DexLab 的保持/释放和物理有效性标准。应分别报告上游指标、DexLab 任务指标、记录完整性与物理检查。论文 v2 §4.1
上游已有按序列训练和采集的流程,策略还使用物体状态与运动参考。它适合作为明确声明信息条件的 task-specific / state-based 研究基线。DexLab 当前正式模型评测协议要求固定 checkpoint,并限制仿真特权信息;因此不能把一组逐任务专家包装成一个通用模型榜单条目。后续若训练统一策略或视觉策略,需要单独验证。上游逐序列数据生成、DexLab 模型评测约定
这项提案的取舍
我支持纳入 CHORD,优先交付的应是:一个真实训练出来的策略案例、一份完整失败记录、一个独立任务评分器,以及一组能区分奖励收益和物理变化的对照。 做到这里,DexLab 就有了具体的学习层,也能继续发挥接触实验与失败归因的长处。
若收益只出现在辅助仍启用、参考状态特权未声明、放宽阈值或未经配对控制的碰撞资产替换之后,这一轮不支持“学到了更可靠的操作”。若 CHORD 在公平预算下没有胜过简单基线,也应保留结果:它仍回答了这种接触指导在哪些任务上不值得增加成本。
本帖与 #222 接触意图与反馈相连:CHORD 给出了学习接触效果的一种具体方法;也承接 #189 的任务优先原则。这里新增的是有公开实现、可限定到单任务的训练候选。当前建议是先复用训练能力,再通过受控实验判断需要改策略还是改物理;更广的训练平台和任务扩展留待这条证据成立后决定。
核查范围、源码版本与复用条件
main@1cea3fed743d2b4f79cfa2fc79a50dbfa7517537;读取当前定位、current-work、模型评测协议、任务动作入口、Wuji 原生记录与评分相关路径,以及现有 Discussions。arXiv:2607.00033v2;官方nvidia-isaac/video_to_data@0530204f3a085fb9ba9cc41b771fc4c853edeab8。核查robotic_grounding的训练入口、接触 support、奖励、残差动作、VOC、课程、评估与数据生成,以及 FlashCHORD 配置和求解器构建路径。当前源码与论文实验版本分别记录,不视为同一次实验。English summary
CHORD is a useful candidate for a bounded learning layer in DexLab: train a contact-rich policy using the upstream implementation, then inspect its behavior with DexLab's native records and independent scoring. Start with one upstream rigid-object task and the original embodiment before adapting the mechanism to Wuji contact switching.
Keep contact-wrench support, measured contact forces, task outcomes, and physical validity separate. Preserve upstream evaluation's first-frame reset and disabled virtual-object assistance. Record the reference/state information available to the policy; per-sequence experts are a separate research baseline, not a single general-policy leaderboard entry.
Compare rewards under fixed physics, then freeze the policy while changing one physical condition. Retrain only after a justified physical change and evaluate both policies under both configurations. FlashCHORD is another implementation candidate; its inspected physics path is MuJoCo-Warp through Newton SolverMuJoCo, not evidence of an independent engine comparison.
This is a source-backed proposal. No training or physical experiment was run, and the current work queue remains unchanged.
All reactions