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 '控制区块。
所附软件包包含此根错误的三个表现:
- 采用 " [11,22] " 的分级控制,删除第一个起动器使被保留的起动器获得 " 11 " 并产生 " 11 " ;它自己的先前指挥是 " 22 " 。
- 3个投入的PID的不优化再编译将控制区块从
[0、0、5]'改为[0、0、0]',将力量从5'改为0'。 - 由零输入式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