mujoco-atlas 固定版本源码入口#
Learning home · MuJoCo contents
Course text is primarily Chinese, with English terminology and summaries. The original content is preserved.
阅读基线:9ea3cdfcae93bf2cc4dc0e1a1627c5a39a1e06e5。以下入口已核对官方 Git 树与文件内容身份;不是全仓审查或运行验收记录。
本阶段先理解引擎架构、建模、步进、控制、接触/求解、传感器/渲染、性能与扩展。独立实验、基准、训练和评分暂不开展,后续复用 DexLab。
源码文件 |
阅读目的 |
|---|---|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
追踪构建、步进、数据更新与生命周期 |
|
识别算法、输入状态、配置与限制 |
|
区分接触几何、接触律与数值近似 |
|
识别算法、输入状态、配置与限制 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
E4:旧路径仅兼容转发;实际 classic 实现在下方新模块 |
|
E1:编译选项、局部坐标、inertial、freejoint align、mesh/URDF 与资产语义 |
|
E1:原生绑定的内存视图、命名访问、GIL、nstep 与重编译生命周期 |
|
E1:mjtState 的 3.15.0 准确枚举与 history/integration 组合 |
|
E1:state API 与 objectVelocity rot:lin 的公开契约 |
|
E1:state mask 复制、配置积分/差分与四元数处理 |
|
E1:父子 pose、FK、free/ball 速度轴与空间运动基 |
|
E1:BODY/XBODY 的速度参考点、局部/世界轴变换 |
|
E1:reset、keyframe、history 与四元数中性 ctrl |
|
E1:右乘局部旋转增量的四元数积分 |
E1 的结论、行锚、文档冲突与静态验收见验证记录。文件身份核对与专题逐段阅读分开记录,未读部分不据此宣称已掌握。
E2 驱动、机器人与任务接口#
源码文件 |
阅读目的 |
|---|---|
E2:motor/position/velocity/PID/orientation shortcut 写入的 gain/bias/dynamics 参数 |
|
E2:joint 限位、SO3/PID 兼容性、输入宽度与逐输入控制范围编译 |
|
E2:XML actuator 类型到原生 mjs_setTo* 的解析路径 |
|
E2:进程级全局 mjcb_control 的所有权与重置 |
|
E2:逆动力学所需总外加广义力,区分 IK 与控制分配 |
E2 同时深入读取既有 engine_forward.c 的 actuation、engine_core_smooth.c 的 transmission、engine_core_util.c 的 Jacobian 与 XMLreference.rst 的原生契约,详见验证记录。
E3 动力学、接触、求解与力观测#
源码文件 |
阅读目的 |
|---|---|
E3:默认 option/solref/solimp 与报告运行配置的区别 |
|
E3:geom adhesion 的被动力与净接触力账本 |
|
E3:touch 正法向/区域条件与 force/torque 的 site 变换;完整传感接口已在 E4 展开 |
|
E3:discrete 有效 metric、stiffness shift、coupling 限制与独立 free-body 陀螺项 |
|
E3:有限差分状态维度、恢复与 RK4/history/sleep 限制 |
|
E3:树/约束及 discrete tendon/flex metric 耦合的岛建图 |
E3 同时逐段核对既有 forward/collision/constraint/solver/core_smooth/core_util 与数据头文件,覆盖 CRB/RNE、几何与材料混合、primal/dual、停止条件、warmstart、积分与 contactForce。来源冲突、实际检查和扩展范围见验证记录。
E4 传感、相机、查询与渲染#
源码文件 |
阅读目的 |
|---|---|
E4:mjv/mjr 分层、相机、scene、OpenGL context 和 GPU 资源契约 |
|
E4:公开 Renderer 的实际导入以及 ImportError 边界 |
|
E4:真实 classic RGB/depth/segmentation shape、深度反变换、资源生命周期 |
|
E4:导入时 MUJOCO_GL 选择器;headless 与 context 禁用的区别 |
|
E4:独立 Context/scene/target/view、CPU buffer、同步读回契约 |
|
E4:launch/passive、macOS 主线程、handle 的 sync/lock/upload/close |
|
E4:passive sync 的显示副本、INTEGRATION+forward 和 GUI 输入回传 |
|
E4:射线过滤、非单位方向参数、mesh/primitive/SDF 分派 |
|
E4:像素中心/正交射线、history 边界钳位与插值 |
|
E4:可视化 scene 的容量与资源分配/释放 |
|
E4:camera frustum、scene maxgeom 溢出、updateScene 只消费派生缓存 |
|
E4:classic 视口宽高比与透视/正交投影 |
|
E4:tactile 依赖的形状距离分派及不支持类型 |
E4 同时深入读取既有 engine_sensor 的内置/用户/plugin 分派、contact/tactile 和 history,user_api/user_objects 的维度/阶段/内参编译,以及 support/forward 的查询和历史读写。文档/实现差异与真实静态验收见验证记录。只下载但未作为结论依据的文件没有冒充已完成专题。
E5 批量、学习与数据#
源码文件 |
阅读目的 |
|---|---|
E5:MJX结构字段、批量/设备布局与Warp图模式;按实现限定支持范围 |
|
E5:pytree leaves/metadata与冻结replace语义 |
|
E5:真实后端/积分器分派、actuation与history推进边界 |
|
E5:默认backend、模型兼容检查、上传/读回、容量和state打包 |
|
E5:JAX传感执行与CPU history/delay/interval语义区别 |
|
E5:静态/动态字段、枚举与Data.where广播规则 |
|
E5:按world ID循环选取批量模型参数 |
|
E5:模型batch_sizes以及总池/每世界容量分配 |
|
E5:Warp特定派生常量更新和restore范围 |
|
E5:vendored元数据3.14.0与外部发布包身份的区别 |
|
E5:Warp runtime与树内vendored模块的实际导入 |
|
E5:custom-vmap参数形状、batch合并与FFI传递 |
|
E5:Warp step的custom-vmap与marshal入口 |
|
E5:不参与普通vmap的共享contact池字段 |
|
E5:MJX包身份、未锁JAX/JAXlib与Warp extra的实际版本约束 |
|
E5:每worker工作区、逐轨迹初始化、ctrl=None、warning填充与采样顺序 |
|
E5:CPU批量shape/连续化/广播、四项兼容性检查、线程池生命周期 |
|
E5:原生参数重算及对scratch Data的qpos修改 |
E5也复读既有state枚举、copyData/reset、Python GIL与模型修改契约,区分mask数组、完整同进程复制及外部状态。另有独立JAX来源清单:JAX0.7.2固定提交94233144f5469af28c065aa4263a6849338eeaa1,阅读api.py(jit/vmap/传输/等待)、random.py(key/split/fold_in)及三份官方JIT/随机数/dtype文档。该选择是语言/API阅读基线,不是经验证的MJX依赖锁;没有复制第三方实现进本仓。详情见E5验收。
E6 扩展、特色机制与能力边界#
源码文件 |
阅读目的 |
|---|---|
E6:惯性盒/ellipsoid力的假设、量纲与参数;实际added-mass分支另核代码 |
|
E6:定义/实例/状态的概念契约,旧插件/资源描述按当前实现限定 |
|
E6:四种能力、生命周期回调、当前decoder/resource接口 |
|
E6:elastic3d的mjSpec-only身份 |
|
E6:公开step/forward直接导出,AD追踪的入口 |
|
E6:静态候选分组与每组top_k接触筛选 |
|
E6:mask行、efc数组与CPU动态约束数量的区别 |
|
E6:CG/Newton、Hessian、局部scan与外层while_loop |
|
E6:真实delay/interval、缓存插入与reset时序 |
|
E6:POS/VEL/ACC对history处理的实际接入 |
|
E6:逐世界context、CG归约、增量Newton与条件图循环 |
|
E6:后端solver/integrator/flags支持列表,与CPU枚举分开 |
|
E6:act积分/slew状态、advance为空及单输入索引适用范围 |
|
E6:刚体链曲率力与实际生命周期 |
|
E6:当前只注册Cable,不能沿用旧Solid/Membrane可用性描述 |
|
E6:Python注册对象、GIL/mutex与trampoline,不等于线程局部控制器 |
|
E6:IPC支持几何/过滤、swept候选与保守推进边界 |
|
E6:flex几何与顶点/元素碰撞结构 |
|
E6:barrier-free AL、单次内层CG、CCD、部分推进与sensor重算 |
|
E6:全局注册身份、属性复制和注册验证范围 |
|
E6:mju_warning日志与Data warning计数的区别 |
|
E6:full点body/质量/关节、pin到父body的建模展开 |
|
E6:StVK/SNH系数、插值壳弯曲、材料限制与SDF编译调用 |
|
E6:当前elasticity XML字段;无elastic3d同名属性 |
E6同时深入复读既有engine_io的plugin init/reset/copy/destroy、forward提交/组合检查、passive的弹性/流体与力账本、core_smooth的flex运动映射、derivative的PSD切线和FD状态空间;MJX包装及vendored Warp的history初始化与FFI传递分别核对。来源不一致时以同一固定树的实际调用链限定结论。
外部JAX仍为0.7.2固定提交:新增jax/_src/lax/control_flow/loops.py,只核对while_loop的变换规则;与公开MJX step→forward→solver链合看,不把语言规则外推全部后端。清单见external-sources.json,实际静态检查和未运行边界见E6验收。