学习 / 实践
MuJoCo 延迟观测:知道旧位置,能预测现在吗?
具身智能 / 探索 · 工程案例
24条配对轨迹比较即时/80ms延迟、位置噪声和常速度外推,保留超调下降但任务仍失败的结果。
这篇之后,已经有了哪些结果?
保留本文发表时的结论与下一步设想;以下是已发表的后续内容,不代表所有局限都已解决。
继续探索
继续探索
浏览统计暂不可用
本文目录 6
从干净环境复现 · 本篇固定版本
以下为 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 831789c2a1efb4564c4cfabc2298e48e16ada879
python -m venv .venv
$py = '.\.venv\Scripts\python.exe'
& $py -m pip install -r requirements-lock.txt
& $py experiments/planar_reach/run.py --out outputs/my-run
& $py experiments/planar_reach/audit.py outputs/my-run预期得到原始轨迹、摘要和审计结果。请使用新的输出目录,避免覆盖旧结果;不同实验对已存在目录的处理并不相同。E8–E10 共用一组实验入口。以上命令不调用模型;先运行数值部分,视频回放按正文单独执行。
排错:找不到实验目录先核对提交;导入失败检查解释器与安装环境;OpenGL 报错仅影响需要渲染的步骤。Linux/macOS 将解释器替换为 .venv/bin/python,尚未在这些平台复测。
查看本篇固定代码 ↗控制器调得稳定、路径也能走通,是否就足够?前两篇用的是即时仿真真值。这次移除障碍,保持同一控制器,只改变它什么时候看见位置,以及看到的位置是否带噪。
对照包括0/80ms延迟、0/10mm高斯位置噪声,以及“直接使用旧观测”和“用旧速度外推到现在”。三个固定种子7、19、41,总计24条轨迹。外推降低了一部分超调,但所有80ms延迟条件仍未达到本轮稳定完成标准。
先分清三个时间
capture:仿真状态被采样
+ 80ms
delivery:这个包对控制器可见
decision:控制器在当前20ms周期使用最后可用包新包还没到达时,控制器不能偷偷读取当前真值。CSV同时记录物理位置和observed位置,capture_t应早于当前时刻。第一个观测到达前输出零力;这是协议的一部分,会影响运动起始时间。
位置噪声只加到传给控制器的报告,不改变物理真值。旧速度来自同一捕获时刻的仿真真值,且没有速度噪声,是偏乐观的传感器假设;并不是实现了视觉测速。
两种估计器
hold直接使用最后到达的位置,直到下个包出现。predict使用:
estimated_position = captured_position
+ captured_velocity × (now - capture_time)两种策略的D项都使用旧速度。predict没有更新速度、没有加速度模型,也没有Kalman滤波。控制力在变化时,常速度近似本来就会偏离真实运动;延迟还会让速度反馈滞后。
实测结果不能只看一个数
| 延迟 / 噪声 | hold稳定通过 | predict稳定通过 |
|---|---|---|
| 0ms / 无噪声 | 3/3 | 3/3 |
| 0ms / 10mm | 1/3 | 1/3 |
| 80ms / 无噪声 | 0/3 | 0/3 |
| 80ms / 10mm | 0/3 | 0/3 |
无噪声的三种子产生相同条件,不是三个独立随机样本。噪声组三种子也只是敏感性检查,不是带置信度的成功率。
80ms无噪声时,最大超调从hold的210.7mm降到predict的52.0mm;但最终误差由2.79mm变为26.76mm,两者都没有满足“最后0.3秒始终误差<15mm且速度<40mm/s”。只展示超调下降就宣布恢复成功,会误导读者。
0ms带噪声时,部分失败轨迹的最终位置误差只有1.36mm或0.30mm,仍未通过稳定窗口。它说明“最后看起来很准”与“持续稳定”不同。应同时看整个尾段的位置和速度,而非挑一帧。
图示仅种子7,全部种子保存在CSV,不用图中一条线代替全部结果。
怎样复核这个结论
audit.py独立检查每行capture_t不晚于物理时刻,再从x/y/vx/vy重算最后窗口。不要用控制器的估计位置替代真值验收,否则估计器可能“自己证明自己成功”。
练习:选一个最终误差很小但失败的文件,逐行检查最后0.3秒,找出哪一项阈值被破坏。再把延迟减小,在新输出目录运行;先保留原始协议和结果,不用后验调阈值覆盖负结果。
下一步值得验证,而不是直接宣称实现
可以研究带加速度的估计、速度噪声、状态滤波、降低控制增益或基于观测年龄停止。但每一种都引入新假设与参数,需要成组对照。当前predict不是鲁棒控制或安全保证;二维执行器也不能代表真实机械臂。
本轮把第二场景、参数、轨迹与负结果完整公开,后续应先解释具体失败机制,再决定增加哪一种估计器,避免把“算法名更多”当作能力提升。
从干净目录复现
使用 Python 3.12。入口一次运行这组三个主题的对照,各篇只解读自己的子集,不把同一份记录重复当作新增回合。
git clone https://github.com/VirtualSelect/hohoo-embodied-agent.git hohoo-embodied-agent-study
cd hohoo-embodied-agent-study
git checkout 831789c2a1efb4564c4cfabc2298e48e16ada879
python -m pip install -r requirements-lock.txt
python experiments/planar_reach/run.py --out outputs/my-run
python experiments/planar_reach/audit.py outputs/my-run
python experiments/planar_reach/plot.py outputs/my-run输出目录必须不存在。本机验证环境为 Windows,Linux/macOS尚未复测。不需要模型密钥或付费服务。manifest中的代码冻结提交早于上方含证据的归档提交,源码哈希对应实际执行文件。
写给未来的自己合上文章前,留下一点自己的理解。
你的私人学习便签,只存在当前浏览器,不会上传或公开。清理浏览器数据会丢失,请导出留存。三种语言共用这篇文章的便签。
下一篇已发布内容:MuJoCo 速度估计:滤掉噪声,也可能让控制更差 →
当前学习位置
探索 / 具身智能
- ○ MuJoCo 绕障:路径上的点能过去,执行器就能过去吗?
- ○ MuJoCo 延迟观测:知道旧位置,能预测现在吗?
- ○ MuJoCo 速度估计:滤掉噪声,也可能让控制更差
继续探索
继续探索
接下来,走哪条路?
- MuJoCo 绕障:路径上的点能过去,执行器就能过去吗? →
六条实际接触轨迹对照直达、贴边和留余量路径,解释几何尺寸、跟踪误差与碰撞之间的关系。
依据文章关联与同主题已发布内容整理,不使用随机推荐。