学习 / 实践

具身智能实践(九):松爪命令成功,不等于放置完成

具身智能 / 探索 · 工程案例

五条真实轨迹同时检查单帧与持续窗口:错误观测、延迟松爪和完成后的外力揭示验收范围。

进阶 · 9 分钟 · 更新于 2026-10-03 · 步骤 9 / 22

这篇之后,已经有了哪些结果?

保留本文发表时的结论与下一步设想;以下是已发表的后续内容,不代表所有局限都已解决。

继续探索

继续探索

  1. 工程案例

    具身智能实践(十):恢复次数受控了,为什么任务反而没完成?

    12回合对照无限恢复、两次预算与400ms冷却:分别记录启停、验收窗口、终止原因和最终任务结果。

    9 分钟已发布

浏览统计暂不可用

本文目录 7
跳到正文 ↓
从干净环境复现 · 本篇固定版本

以下为 Windows PowerShell,Python 3.12。使用新的目录;不要在有未保存改动的工程里切换版本。每篇固定提交不同,首篇的旧提交不包含后续实验。

git clone https://github.com/VirtualSelect/hohoo-embodied-agent.git hohoo-embodied-agent-study
cd hohoo-embodied-agent-study
git checkout 497d0df30c1f66de50fb38b930f0c6ea069d9634
python -m venv .venv
$py = '.\.venv\Scripts\python.exe'
& $py -m pip install -r requirements-lock.txt
& $py experiments/vl01_exit_release_budget/run.py --out outputs/my-run
& $py experiments/vl01_exit_release_budget/audit.py outputs/my-run

预期得到原始轨迹、摘要和审计结果。请使用新的输出目录,避免覆盖旧结果;不同实验对已存在目录的处理并不相同。E8–E10 共用一组实验入口。以上命令不调用模型;先运行数值部分,视频回放按正文单独执行。

排错:找不到实验目录先核对提交;导入失败检查解释器与安装环境;OpenGL 报错仅影响需要渲染的步骤。Linux/macOS 将解释器替换为 .venv/bin/python,尚未在这些平台复测。

查看本篇固定代码 ↗

固定版本代码 · 原始记录与审计 · 实验档案

上一轮研究了报警之后怎么退出。这一轮回到正常任务末端:程序已经发出了松爪目标,何时可以向上层报告“物体放好了”?

如果直接在 release() 返回后设 success=true,得到的只是命令链路结果。手指可能卡住,物体可能还在下落,甚至已经落到托盘外。因此本轮增加一个只观察、不改变控制器的完成验收器。

1. 将命令、观察与最终结果分开

固定脚本在6.5s进入释放阶段,手指目标随后逐渐张开。仿真仍按2ms推进、每20ms产生观测。两个判据处理同一条物理轨迹,不会因判定不同而改变动作:

  • 单帧:第一次收到满足所有条件的新鲜观测就报告完成。
  • 持续窗口:连续合格观测跨越至少250ms才报告完成;缺帧、过期或不合格会打断窗口。

两者的完成结果都锁存。锁存意味着“曾在某时刻满足判据”,不是“以后永远保持成功”。后面的外力对照专门检验这个区别。

2. 完成判据具体是什么

先决条件是已进入计划释放阶段,且此前方块确实抬高过10cm。每份合格观测还要求:

字段 约束
X/Y 距托盘中心(0.24,0.12)m,每轴误差小于45mm
Z 距26mm的误差小于6mm
线速度 小于0.02m/s
支撑 与 bin_floor 接触
分离 不接触 left_pad 或 right_pad
新鲜度 采样年龄小于60ms,时间戳递增
连续性 相邻有效采样间隔不超过20ms

这比“位置到了”更严格,但仍是从仿真真值投影出的教学判据,没有相机估计误差,也没有验证支撑力是否足够。

250ms不是魔法常数。采样间隔20ms,所以从第一份合格观测到窗口通过,实际需要260ms,而不是把样本数量直接乘出一个含糊的时长。

3. 五种条件的实际结果

条件 单帧报告完成 窗口报告完成 12s终点验收
正常 6.842s 7.102s 通过
释放后手指一直闭合 不报告 不报告 失败
到7.0s才允许张开 7.042s 7.302s 通过
闭合故障中伪造一帧合格观测 6.602s 不报告 失败
8.0s后施加短暂外力 6.842s 7.102s 失败

这五条轨迹只有观察判据的两路评分,不是十次独立物理试验。没有复制样本来增加“实验次数”。

单帧与持续窗口的完成时刻,以及同一轨迹的最终放置结果

4. 持续窗口挡住了什么,又没挡住什么

在伪造观测对照中,手指实际保持闭合,但6.602s的单份报告被改成:位于托盘中心、速度0、只接触托盘底。这是明确注入的错误测量,不是说现实传感器必然产生这种噪声。原始物理状态另外保存,便于核对真假。

单帧判据立即接受;持续窗口在下一份真实的不合格观测到来后被打断,未报告完成。这只支持它对本次孤立错误报告的容忍能力,不能推断它能抵御持续错误或有系统偏差的传感器。

外力对照则完全不同:方块先真的稳定放好,两种判据都正确报告了当时的状态。随后8.0–8.08s施加沿X方向1N外力,最终状态不再满足放置要求。不能倒过来称早先的报告必定是假阳性;它暴露的是锁存事件和持续保证之间的范围差别。

5. 成功应该是事件,还是持续状态?

如果任务只负责把物体放下,完成事件可以交接给下一阶段。如果任务还要保证物体在等待期间不被碰走,那么验收之后仍应监测,必要时撤销当前状态或发出新事件。

一个实用的接口可以分别保留 completedAt、currentlyValid与 invalidatedAt。本篇只实现前者,后两者仍是下一步,不在界面上伪装成已有安全功能。

也不要把连续合格窗口看成统计置信度。相邻采样高度相关,13个间隔不是13个独立证明。

6. 复现与检查

python experiments/vl01_exit_release_budget/run.py --out evidence/my-release-series
python experiments/vl01_exit_release_budget/audit.py evidence/my-release-series

在E9目录查看 received与物理 contacts/cube_*,可以直接发现故意注入的那一帧差异。每回合的 single_completion、window_completion与 placement分开保存;独立审计逐行重算窗口,而不是相信摘要里的成功值。

下篇转向恢复次数与冷却。它同样要把“规则被遵守”与“任务完成”分开评估。

同方向继续阅读

写给未来的自己合上文章前,留下一点自己的理解。

你的私人学习便签,只存在当前浏览器,不会上传或公开。清理浏览器数据会丢失,请导出留存。三种语言共用这篇文章的便签。

下一篇已发布内容:具身智能实践(十):恢复次数受控了,为什么任务反而没完成? →

当前学习位置

探索 / 具身智能

  1. ○ 具身智能实践(八):检测到掉落以后,夹爪应该做什么?
  2. ○ 具身智能实践(九):松爪命令成功,不等于放置完成
  3. ○ 具身智能实践(十):恢复次数受控了,为什么任务反而没完成?

继续探索

继续探索

  1. 实验 / 017

    E9 / 释放后的完成验收

    五条真实轨迹同时检查单帧与持续窗口:错误观测、延迟松爪和完成后的外力揭示验收范围。

    已完成
  2. 项目 / 003

    Hohoo 具身实验

    MuJoCo 抓取放置与二维力控两个教学场景,记录阶段契约、调参、绕障和延迟反馈的实际结果与失败。

    实验中
  3. 工程案例

    具身智能实践(八):检测到掉落以后,夹爪应该做什么?

    15回合固定场景对照保持、松爪、松爪后退:报警相同,退出动作不同,最终放置也不同。

    9 分钟已发布
  4. 工程案例

    具身智能实践(十):恢复次数受控了,为什么任务反而没完成?

    12回合对照无限恢复、两次预算与400ms冷却:分别记录启停、验收窗口、终止原因和最终任务结果。

    9 分钟已发布

接下来,走哪条路?

依据文章关联与同主题已发布内容整理,不使用随机推荐。

← 全部文章