#3596·mujoco

mj_recompile 通过执行器索引保留执行器控制,而不是通过控制块标识保留控制

作者: peachtree0222创建于 2026年9月15日更新于 2026年9月15日
标签bug
  •      介绍

顿!

我正在测试当前可变输入器的状态连续性。 `mj recompile' 存储起动器控制值,使用起动器的规范,而不是每个起动器的控制块地址和宽度。

我的设置

  • MujoCo源建自main' at10124d5d9dca411ec3c8988aa1e3b619103d71bb'
  • 消费物价指数,双精度
  • Ubuntu 24.04.5 LTS, Linux 7.0.0-28-generic x86 64
  • 普通海合会 11.5.0建筑和海合会 13.3.0 地址管理员构建

这是怎么回事? 你想怎样?

我期望能够控制一个幸存的精算师 和这个操作师保持关联 以及它的所有输入槽 相反,拯救国家 ' 和恢复国家 ' 使用ctrl[一]',其中i'是引爆指数,尽管目前的引爆者有ctrldr '和ctllnum '控制区块。

所附软件包包含此根错误的三个表现:

  1. 采用 " [11,22] " 的分级控制,删除第一个起动器使被保留的起动器获得 " 11 " 并产生 " 11 " ;它自己的先前指挥是 " 22 " 。
  2. 3个投入的PID的不优化再编译将控制区块从[0、0、5]'改为[0、0、0]',将力量从5'改为0'。
  3. 由零输入式DC电动机和再由相压电动机组成的“纳克通=2”和“nu=1”。 循环读作 " ctrl [1] " ;地址卫生员报告 " 使用后poison " ,取自 " src/user/user model.cc:4103 " 。

代表产出:

页:1 结果=0 nu=1 保留-ctrl=110 保留-联合部队=111.0 结果=0 nu=3 ctrl=0.0,0.0,0.0 力-于 5.0 力-后=0.0


相关来源:

- https://GitHub.com/google-deepmind/mujoco/blob/10124d5d9dca411ec3c8988aa1e3b619103d71bb/src/user/user model.cc#L4097-L4104
- https://GitHub.com/google-deepmind/mujoco/blob/10124d5d9dca411ec3c8988aa1e3b619103d71bb/src/user/user model.cc#L4150-L4158
- https://GitHub.com/google-deepmind/mujoco/blob/10124d5d9dca411ec3c8988aa1e3b619103d71bb/src/user/user model.cc#L3852-L3861


* 复制步骤

□ 复制步骤

1. 建立上述承诺的正常状态,并与SelfSanitizer合作。
2. 使用 " poc/README.md " 汇编 " poc/ " 三个方案。
3. 执行`删除 first.cc'并观察指令迁移。
4. 运行 " multi input.cc " ,并观察PID向导槽在不公开重编中丢失的情况。
5. 运行`0-输入.cc ' 以对抗ASan建筑,并观察已读出界的控制。

复制包:

[汇编-控制-块-索引-poc.zip](https://GitHub.com/user-attachments/files/32260457/recomple-control-block-index-poc.zip) 互联网档案馆的存檔,存档日期2013-12-02.

最小复制模型

每个方案都包含一个完整的无资产MCJCF. 变体被分开保存,所以每个输出都有一个单一的因果突变和明确的控制.

复制所需的编码

见`poc/delete first.cc'、`poc/multi-input.cc'和`poc/zero-input.cc'。 我并没有提出一个生产补丁,因为缓存需要可变的每起动器表示和相容性政策.

++ 确认

- [x] 我搜索了[最
. . . . . . .

内容来源: google-deepmind/mujoco