MuJoCo Warp API#

MJWarp 的公共 API。

step(m: Model, d: Data)[source]#

推进模拟。

class Model[source]#

模型定义和参数。

nq#

广义坐标的数量

类型:

int

nv#

自由度数量

类型:

int

nu#

执行器/控制器的数量

类型:

int

na#

激活状态的数量

类型:

int

nbody#

刚体数量

类型:

int

noct#

所有网格中八叉树单元的总数

类型:

int

njnt#

关节数量

类型:

int

ntree#

运动树的数量

类型:

int

nM#

稀疏惯性矩阵中非零元素的数量

类型:

int

nC#

稀疏刚体自由度矩阵中非零元素的数量

类型:

int

ngeom#

几何体数量

类型:

int

nsite#

位点数量

类型:

int

ncam#

摄像机数量

类型:

int

nlight#

光源数量

类型:

int

nflex#

柔性体数量

类型:

int

nflexvert#

所有柔性体中的顶点总数

类型:

int

nflexedge#

所有柔性体中的边总数

类型:

int

nflexelem#

所有柔性体中的单元总数

类型:

int

nflexelemdata#

所有柔性体中单元顶点 ID 的总数

类型:

int

nflexstiffness#

所有柔性体中刚度参数的总数

类型:

int

nflexbending#

所有柔性体中弯曲参数的总数

类型:

int

nflexelemedge#

所有柔性体中单元边 ID 的总数

类型:

int

nflexshelldata#

所有柔性体中壳碎片顶点 ID 的总数

类型:

int

nJfe#

稀疏柔性体边雅可比矩阵中非零元素的数量

类型:

int

nmesh#

网格数量

类型:

int

nmeshvert#

所有网格中的顶点总数

类型:

int

nmeshnormal#

所有网格中的法线总数

类型:

int

nmeshface#

所有网格中的面总数

类型:

int

nmeshgraph#

网格辅助数据中的整数数量

类型:

int

nmeshpoly#

所有网格中的多边形总数

类型:

int

nmeshpolyvert#

所有多边形中的顶点总数

类型:

int

nmeshpolymap#

顶点映射中的多边形数量

类型:

int

nhfield#

高度图数量

类型:

int

nhfielddata#

高程数据大小

类型:

int

nmat#

材质数量

类型:

int

npair#

预定义几何体对的数量

类型:

int

nexclude#

排除的几何体对数量

类型:

int

neq#

等式约束数量

类型:

int

ntendon#

肌腱数量

类型:

int

nJten#

稀疏肌腱雅可比矩阵中非零元素的数量

类型:

int

nwrap#

所有肌腱路径中的包裹对象数量

类型:

int

nsensor#

传感器数量

类型:

int

nmocap#

动作捕捉刚体数量

类型:

int

nplugin#

插件实例数量

类型:

int

nJmom#

actuator_moment(执行器力矩)中非零元素的数量

类型:

int

ngravcomp#

具有非零重力补偿的刚体数量

类型:

int

nsensordata#

传感器数据向量中的元素数量

类型:

int

opt#

物理选项

类型:

mujoco_warp._src.types.Option

stat#

模型统计信息

类型:

mujoco_warp._src.types.Statistic

qpos0#

默认姿态下的 qpos 值 (*, nq)

类型:

wp.array(dtype=wp.float32, ndim=2)

qpos_spring#

弹簧参考姿态 (*, nq)

类型:

wp.array(dtype=wp.float32, ndim=2)

body_parentid#

刚体父级的 ID (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_rootid#

刚体上方根节点的 ID (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_weldid#

该刚体焊接到的刚体 ID (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_mocapid#

动作捕捉数据 ID;-1:无 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_jntnum#

该刚体的关节数量 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_jntadr#

关节起始地址;-1:无关节 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_dofnum#

运动自由度数量 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_dofadr#

自由度起始地址;-1:无自由度 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_treeid#

刚体树的 ID;-1:静态 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_geomnum#

几何体数量 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_geomadr#

几何体起始地址;-1:无几何体 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_pos#

相对于父刚体的位置偏移 (*, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

body_quat#

相对于父刚体的方向偏移 (*, nbody, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

body_ipos#

质心局部位置 (*, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

body_iquat#

惯性椭球局部方向 (*, nbody, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

body_mass#

质量 (*, nbody,)

类型:

wp.array(dtype=wp.float32, ndim=2)

body_subtreemass#

以该刚体为根的子树质量 (*, nbody,)

类型:

wp.array(dtype=wp.float32, ndim=2)

body_inertia#

ipos/iquat 帧中的对角惯性 (*, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

body_invweight0#

qpos0 中的平均逆惯性 (平移, 旋转) (*, nbody, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

body_gravcomp#

抗重力,以刚体重量为单位 (*, nbody)

类型:

wp.array(dtype=wp.float32, ndim=2)

body_contype#

所有几何体接触类型的逻辑或 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_conaffinity#

所有几何体接触亲和力的逻辑或 (nbody,)

类型:

wp.array(dtype=wp.int32, ndim=1)

oct_child#

八叉树子节点 (noct, 8)

类型:

wp.array(dtype=vector(length=8, dtype=int32), ndim=1)

oct_aabb#

八叉树轴对齐包围盒 (noct, 2, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

oct_coeff#

八叉树插值系数 (noct, 8)

类型:

wp.array(dtype=vector(length=8, dtype=float32), ndim=1)

jnt_type#

关节类型 (JointType) (njnt,)

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_qposadr#

关节数据在 'qpos' 中的起始地址 (njnt,)

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_dofadr#

关节数据在 'qvel' 中的起始地址 (njnt,)

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_bodyid#

关节所属刚体的 ID (njnt,)

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_limited#

关节是否有范围限制 (njnt,)

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_actfrclimited#

关节是否有执行器力限制 (njnt,)

类型:

wp.array(dtype=wp.bool, ndim=1)

jnt_actgravcomp#

重力补偿力是否通过执行器应用 (njnt,)

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_solref#

约束求解器参考值:限制 (*, njnt, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

jnt_solimp#

约束求解器阻抗:限制 (*, njnt, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

jnt_pos#

局部锚点位置 (*, njnt, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

jnt_axis#

局部关节轴 (*, njnt, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

jnt_stiffness#

刚度系数 (*, njnt)

类型:

wp.array(dtype=wp.float32, ndim=2)

jnt_stiffnesspoly#

高阶刚度系数 (*, njnt, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

jnt_range#

关节范围 (*, njnt, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

jnt_actfrcrange#

总执行器力范围 (*, njnt, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

jnt_margin#

极限检测的最小距离 (*, njnt)

类型:

wp.array(dtype=wp.float32, ndim=2)

dof_bodyid#

自由度刚体 ID (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

dof_jntid#

自由度关节 ID (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

dof_parentid#

自由度父级 ID;-1:无 (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

dof_treeid#

自由度树 ID (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

dof_Madr#

M 对角线中的自由度地址 (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

dof_solref#

约束求解器参考值:摩擦损耗 (*, nv, NREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

dof_solimp#

约束求解器阻抗:摩擦损耗 (*, nv, NIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

dof_frictionloss#

自由度摩擦损耗 (*, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

dof_armature#

自由度电枢惯量/质量 (*, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

dof_damping#

阻尼系数 (*, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

dof_dampingpoly#

高阶阻尼系数 (*, nv, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

dof_invweight0#

qpos0 中的对角逆惯性 (*, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

tree_bodynum#

树中的刚体数量(包括根)(ntree,)

类型:

wp.array(dtype=wp.int32, ndim=1)

tree_dofadr#

树的自由度起始地址 (ntree,)

类型:

wp.array(dtype=wp.int32, ndim=1)

tree_dofnum#

树中的自由度数量 (ntree,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_type#

几何类型 (GeomType) (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_contype#

几何接触类型 (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_conaffinity#

几何接触亲和力 (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_condim#

接触维度 (1, 3, 4, 6) (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_bodyid#

几何所属刚体 ID (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_dataid#

几何网格/高度图 ID;-1:无 (*, ngeom)

类型:

wp.array(dtype=wp.int32, ndim=2)

geom_matid#

渲染用的材质 ID (*, ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=2)

geom_group#

几何组包含/排除掩码 (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_priority#

几何接触优先级 (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom_solmix#

几何对中 solref/imp 的混合系数 (*, ngeom,)

类型:

wp.array(dtype=wp.float32, ndim=2)

geom_solref#

约束求解器参考值:接触 (*, ngeom, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

geom_solimp#

约束求解器阻抗:接触 (*, ngeom, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

geom_size#

几何特定尺寸参数 (*, ngeom, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

geom_aabb#

包围盒 (中心,尺寸) (*, ngeom, 2, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=3)

geom_rbound#

包围球半径 (*, ngeom,)

类型:

wp.array(dtype=wp.float32, ndim=2)

geom_pos#

相对于刚体的局部位置偏移 (*, ngeom, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

geom_quat#

相对于刚体的局部方向偏移 (*, ngeom, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

geom_friction#

摩擦系数 (滑动, 旋转, 滚动) (*, ngeom, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

geom_margin#

距离小于 margin 时检测接触 (*, ngeom,)

类型:

wp.array(dtype=wp.float32, ndim=2)

geom_gap#

额外接触检测缓冲区 (*, ngeom,)

类型:

wp.array(dtype=wp.float32, ndim=2)

geom_fluid#

流体交互参数 (ngeom, mjNFLUID)

类型:

wp.array(dtype=wp.float32, ndim=2)

geom_rgba#

无材质时的 rgba (*, ngeom, 4)

类型:

wp.array(dtype=wp.vec4f, ndim=2)

site_type#

渲染用的几何类型 (GeomType) (nsite,)

类型:

wp.array(dtype=wp.int32, ndim=1)

site_bodyid#

位点所属刚体 ID (nsite,)

类型:

wp.array(dtype=wp.int32, ndim=1)

site_size#

渲染用的几何尺寸 (nsite, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

site_pos#

相对于刚体的局部位置偏移 (*, nsite, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

site_quat#

相对于刚体的局部方向偏移 (*, nsite, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

cam_mode#

摄像机追踪模式 (CamLightType) (ncam,)

类型:

wp.array(dtype=wp.int32, ndim=1)

cam_bodyid#

摄像机所属刚体 ID (ncam,)

类型:

wp.array(dtype=wp.int32, ndim=1)

cam_targetbodyid#

目标刚体 ID;-1:无 (ncam,)

类型:

wp.array(dtype=wp.int32, ndim=1)

cam_pos#

相对于刚体帧的位置 (*, ncam, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

cam_quat#

相对于刚体帧的方向 (*, ncam, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

cam_poscom0#

qpos0 中相对于子质心的全局位置 (*, ncam, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

cam_pos0#

qpos0 中相对于刚体的全局位置 (*, ncam, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

cam_mat0#

qpos0 中的全局方向 (*, ncam, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=2)

cam_projection#

投影类型 (ProjectionType) (ncam,)

类型:

wp.array(dtype=wp.int32, ndim=1)

cam_fovy#

y 轴视场 (正交投影则为长度,否则为度) (*, ncam)

类型:

wp.array(dtype=wp.float32, ndim=2)

cam_resolution#

分辨率:像素 [宽度, 高度] (ncam, 2)

类型:

wp.array(dtype=wp.vec2i, ndim=1)

cam_sensorsize#

传感器尺寸:长度 [宽度, 高度] (ncam, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=1)

cam_intrinsic#

[焦距;主点] (*, ncam, 4)

类型:

wp.array(dtype=wp.vec4f, ndim=2)

light_mode#

光源追踪模式 (CamLightType) (nlight,)

类型:

wp.array(dtype=wp.int32, ndim=1)

light_bodyid#

光源所属刚体 ID (nlight,)

类型:

wp.array(dtype=wp.int32, ndim=1)

light_targetbodyid#

目标刚体 ID;-1:无 (nlight,)

类型:

wp.array(dtype=wp.int32, ndim=1)

light_type#

聚光灯、方向光等 (mjtLightType) (*, nlight)

类型:

wp.array(dtype=wp.int32, ndim=2)

light_castshadow#

光源是否产生阴影 (*, nlight)

类型:

wp.array(dtype=wp.bool, ndim=2)

light_active#

光源是否处于激活状态 (*, nlight)

类型:

wp.array(dtype=wp.bool, ndim=2)

light_pos#

相对于刚体帧的位置 (*, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

light_dir#

相对于刚体帧的方向 (*, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

light_poscom0#

qpos0 中相对于子质心的全局位置 (*, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

light_pos0#

qpos0 中相对于刚体的全局位置 (*, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

light_dir0#

qpos0 中的全局方向 (*, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

flex_contype#

柔性体接触类型 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_conaffinity#

柔性体接触亲和力 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_condim#

接触维度 (1, 3, 4, 6) (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_priority#

几何接触优先级 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_solmix#

几何对中 solref/imp 的混合系数 (nflex,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_solref#

约束求解器参考值:接触 (nflex, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=1)

flex_solimp#

约束求解器阻抗:接触 (nflex, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=1)

flex_friction#

摩擦系数 (滑动, 旋转, 滚动) (nflex, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

flex_margin#

距离小于 margin 时检测接触 (nflex,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_gap#

距离小于 margin-gap 时加入求解器 (nflex,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_dim#

1:线,2:三角形,3:四面体 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_vertadr#

起始顶点地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_vertnum#

顶点数量 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_edgeadr#

起始边地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_edgenum#

边的数量 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_elemadr#

起始单元地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_elemnum#

单元数量 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_elemdataadr#

起始单元顶点 ID 地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_stiffnessadr#

刚度矩阵地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_elemedgeadr#

起始单元边 ID 地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_bendingadr#

起始弯曲数据地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_shellnum#

壳数量 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_shelldataadr#

起始壳数据地址 (nflex,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_vertbodyid#

顶点刚体 ID (nflexvert,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_edge#

边顶点 ID (每条边 2 个) (nflexedge, 2)

类型:

wp.array(dtype=wp.vec2i, ndim=1)

flex_edgeflap#

相邻顶点 ID (仅限 dim=2) (nflexedge, 2)

类型:

wp.array(dtype=wp.vec2i, ndim=1)

flex_elem#

单元顶点 ID (每个单元 dim+1 个) (nflexelemdata,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_elemedge#

单元边 ID (nflexelemedge,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_shell#

壳碎片顶点 ID (每个碎片 dim 个) (nflexshelldata,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_vert#

顶点局部位置 (nflexvert, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

flexedge_length0#

qpos0 中的边长度 (nflexedge,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flexedge_invweight0#

边的逆惯性 (nflexedge,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_radius#

原始单元周围的半径 (nflex,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_stiffness#

有限元刚度矩阵 (nflexstiffness,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_bending#

弯曲刚度 (nflexbending,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_damping#

瑞利阻尼系数 (nflex,)

类型:

wp.array(dtype=wp.float32, ndim=1)

flex_centered#

柔性体顶点以刚体原点为中心 (nflex,)

类型:

wp.array(dtype=wp.bool, ndim=1)

flexedge_J_rownnz#

雅可比矩阵行中的非零元素数量 (nflexedge,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flexedge_J_rowadr#

colind 数组中的行起始地址 (nflexedge,)

类型:

wp.array(dtype=wp.int32, ndim=1)

flexedge_J_colind#

稀疏雅可比矩阵中的列索引 (nJfe,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_vertadr#

起始顶点地址 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_vertnum#

顶点数量 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_faceadr#

起始面地址 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_octadr#

每个网格的八叉树地址 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_normaladr#

起始法线地址 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_normalnum#

法线数量 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_graphadr#

图数据地址;-1:无图 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_vert#

所有网格的顶点位置 (nmeshvert, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

mesh_normal#

所有网格的法线 (nmeshnormal, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

mesh_face#

所有网格的面索引 (nface, 3)

类型:

wp.array(dtype=wp.vec3i, ndim=1)

mesh_graph#

凸图数据 (nmeshgraph,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_quat#

应用于资产顶点的旋转 (nmesh, 4)

类型:

wp.array(dtype=wp.quatf, ndim=1)

mesh_polynum#

每个网格的多边形数量 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polyadr#

每个网格的起始多边形地址 (nmesh,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polynormal#

所有多边形法线 (nmeshpoly, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

mesh_polyvertadr#

多边形顶点起始地址 (nmeshpoly,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polyvertnum#

每个多边形的顶点数量 (nmeshpoly,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polyvert#

所有多边形顶点 (nmeshpolyvert,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polymapadr#

每个顶点的起始多边形地址 (nmeshvert,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polymapnum#

每个顶点的多边形数量 (nmeshvert,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_polymap#

顶点到多边形的映射 (nmeshpolymap,)

类型:

wp.array(dtype=wp.int32, ndim=1)

hfield_size#

(x, y, z_top, z_bottom) (nhfield, 4)

类型:

wp.array(dtype=wp.vec4f, ndim=1)

hfield_nrow#

网格中的行数 (nhfield,)

类型:

wp.array(dtype=wp.int32, ndim=1)

hfield_ncol#

网格中的列数 (nhfield,)

类型:

wp.array(dtype=wp.int32, ndim=1)

hfield_adr#

hfield_data 中的起始地址 (nhfield,)

类型:

wp.array(dtype=wp.int32, ndim=1)

hfield_data#

高程数据 (nhfielddata,)

类型:

wp.array(dtype=wp.float32, ndim=1)

mat_texid#

渲染用的纹理 ID (*, nmat, mjNTEXROLE)

类型:

wp.array(dtype=wp.int32, ndim=3)

mat_texrepeat#

渲染用的纹理重复 (*, nmat, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

mat_rgba#

rgba (*, nmat, 4)

类型:

wp.array(dtype=wp.vec4f, ndim=2)

pair_dim#

接触维度 (npair,)

类型:

wp.array(dtype=wp.int32, ndim=1)

pair_geom1#

geom1 的 ID (npair,)

类型:

wp.array(dtype=wp.int32, ndim=1)

pair_geom2#

geom2 的 ID (npair,)

类型:

wp.array(dtype=wp.int32, ndim=1)

pair_solref#

求解器参考值:接触法线 (*, npair, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

pair_solreffriction#

求解器参考值:接触摩擦 (*, npair, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

pair_solimp#

求解器阻抗:接触 (*, npair, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

pair_margin#

距离小于 margin 时检测接触 (*, npair,)

类型:

wp.array(dtype=wp.float32, ndim=2)

pair_gap#

额外接触检测缓冲区 (*, npair,)

类型:

wp.array(dtype=wp.float32, ndim=2)

pair_friction#

切线 1, 2, 旋转, 滚动 1, 2 (*, npair, 5)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

exclude_signature#

body1 << 16 + body2 (nexclude,)

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_type#

约束类型 (EqType) (neq,)

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_obj1id#

对象 1 的 ID (neq,)

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_obj2id#

对象 2 的 ID (neq,)

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_objtype#

两个对象的类型 (ObjType) (neq,)

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_active0#

初始启用/禁用约束状态 (neq,)

类型:

wp.array(dtype=wp.bool, ndim=1)

eq_solref#

约束求解器参考值 (*, neq, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

eq_solimp#

约束求解器阻抗 (*, neq, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

eq_data#

约束的数值数据 (*, neq, mjNEQDATA)

类型:

wp.array(dtype=vector(length=11, dtype=float32), ndim=2)

tendon_adr#

肌腱路径中第一个对象的地址 (ntendon,)

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_num#

肌腱路径中的对象数量 (ntendon,)

类型:

wp.array(dtype=wp.int32, ndim=1)

ten_J_rownnz#

每行肌腱中非零元素的数量 (ntendon,)

类型:

wp.array(dtype=wp.int32, ndim=1)

ten_J_rowadr#

稀疏 ten_J 的行起始地址 (ntendon,)

类型:

wp.array(dtype=wp.int32, ndim=1)

ten_J_colind#

稀疏 ten_J 中的列索引 (nJten,)

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_limited#

肌腱是否有长度限制 (ntendon,)

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_actfrclimited#

肌腱是否有执行器力限制 (ntendon,)

类型:

wp.array(dtype=wp.bool, ndim=1)

tendon_solref_lim#

约束求解器参考值:限制 (*, ntendon, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_solimp_lim#

约束求解器阻抗:限制 (*, ntendon, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

tendon_solref_fri#

约束求解器参考值:摩擦 (*, ntendon, mjNREF)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_solimp_fri#

约束求解器阻抗:摩擦 (*, ntendon, mjNIMP)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=2)

tendon_range#

肌腱长度限制 (*, ntendon, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_actfrcrange#

总执行器力范围 (*, ntendon, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_margin#

极限检测的最小距离 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

tendon_stiffness#

刚度系数 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

tendon_stiffnesspoly#

高阶刚度系数 (*, ntendon, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_damping#

阻尼系数 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

tendon_dampingpoly#

高阶阻尼系数 (*, ntendon, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_armature#

与肌腱速度相关的惯性 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

tendon_frictionloss#

由于摩擦产生的损耗 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

tendon_lengthspring#

弹簧静止长度范围 (*, ntendon, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

tendon_length0#

qpos0 中的肌腱长度 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

tendon_invweight0#

qpos0 中的逆权重 (*, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

wrap_type#

包裹对象类型 (WrapType) (nwrap,)

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_objid#

对象 ID:几何体、位点、关节 (nwrap,)

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_prm#

除数、关节系数或位点 ID (nwrap,)

类型:

wp.array(dtype=wp.float32, ndim=1)

actuator_trntype#

传输类型 (TrnType) (nu,)

类型:

wp.array(dtype=wp.int32, ndim=1)

actuator_dyntype#

动力学类型 (DynType) (nu,)

类型:

wp.array(dtype=wp.int32, ndim=1)

actuator_gaintype#

增益类型 (GainType) (nu,)

类型:

wp.array(dtype=wp.int32, ndim=1)

actuator_biastype#

偏置类型 (BiasType) (nu,)

类型:

wp.array(dtype=wp.int32, ndim=1)

actuator_trnid#

传输 ID:关节、肌腱、位点 (nu, 2)

类型:

wp.array(dtype=wp.vec2i, ndim=1)

actuator_actadr#

第一个激活地址;-1:无状态 (nu,)

类型:

wp.array(dtype=wp.int32, ndim=1)

actuator_actnum#

激活变量的数量 (nu,)

类型:

wp.array(dtype=wp.int32, ndim=1)

actuator_ctrllimited#

控制是否受限 (nu,)

类型:

wp.array(dtype=wp.bool, ndim=1)

actuator_forcelimited#

力是否受限 (nu,)

类型:

wp.array(dtype=wp.bool, ndim=1)

actuator_actlimited#

激活是否受限 (nu,)

类型:

wp.array(dtype=wp.bool, ndim=1)

actuator_dynprm#

动力学参数 (*, nu, mjNDYN)

类型:

wp.array(dtype=vector(length=10, dtype=float32), ndim=2)

actuator_gainprm#

增益参数 (*, nu, mjNGAIN)

类型:

wp.array(dtype=vector(length=10, dtype=float32), ndim=2)

actuator_biasprm#

偏置参数 (*, nu, mjNBIAS)

类型:

wp.array(dtype=vector(length=10, dtype=float32), ndim=2)

actuator_actearly#

力之前的步激活 (nu,)

类型:

wp.array(dtype=wp.bool, ndim=1)

actuator_ctrlrange#

控制范围 (*, nu, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

actuator_forcerange#

力范围 (*, nu, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

actuator_actrange#

激活范围 (*, nu, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

actuator_gear#

标度长度和传递力 (*, nu, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

actuator_cranklength#

滑块-曲柄机构的曲柄长度 (*, nu)

类型:

wp.array(dtype=wp.float32, ndim=2)

actuator_acc0#

qpos0 中单位力产生的加速度 (*, nu)

类型:

wp.array(dtype=wp.float32, ndim=2)

actuator_lengthrange#

可行的执行器长度范围 (*, nu, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=2)

sensor_type#

传感器类型 (SensorType) (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_datatype#

数字数据类型 (DataType) (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_objtype#

传感对象类型 (ObjType) (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_objid#

传感对象 ID (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_reftype#

参考坐标系类型 (ObjType) (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_refid#

参考坐标系 ID;-1:全局坐标系 (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_intprm#

传感器参数 (nsensor, mjNSENS)

类型:

wp.array(dtype=wp.int32, ndim=2)

sensor_dim#

标量输出数量 (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_adr#

传感器数组中的地址 (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_cutoff#

实数和正数的截止值;0:忽略 (nsensor,)

类型:

wp.array(dtype=wp.float32, ndim=1)

plugin#

全局注册的插件槽位号 (nplugin,)

类型:

wp.array(dtype=wp.int32, ndim=1)

plugin_attr#

几何插件的配置属性 (nplugin, _NPLUGINATTR)

类型:

wp.array(dtype=vector(length=128, dtype=float32), ndim=1)

M_rownnz#

qM 每一行中的非零元素个数 (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

M_rowadr#

qM 中每一行的索引 (nv,)

类型:

wp.array(dtype=wp.int32, ndim=1)

M_colind#

qM 中非零元素的列索引 (nM,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mapM2M#

从 M (旧版) 到 M (CSR) 的索引映射 (nC)

类型:

wp.array(dtype=wp.int32, ndim=1)

flex_vertflexid#

每个柔性顶点的柔性 ID (nflexvert,)

类型:

wp.array(dtype=wp.int32, ndim=1)

callback#

自定义物理回调

类型:

mujoco_warp._src.types.Callback

nbranch#

分支数量(从叶子到根的路径)

类型:

int

nv_pad#

自由度数量 + 填充

类型:

int

nacttrnbody#

具有刚体传递的执行器数量

类型:

int

nsensorcollision#

几何距离传感器的唯一碰撞数量

类型:

int

nsensortaxel#

所有触觉传感器中的触元(taxel)数量

类型:

int

nsensorcontact#

接触传感器数量

类型:

int

nrangefinder#

测距传感器数量

类型:

int

nmaxcondim#

跨越几何体、对和柔性体的最大约束维度

类型:

int

nmaxpyramid#

金字塔方向的最大数量

类型:

int

nmaxpolygon#

每个多边形的最大顶点数

类型:

int

nmaxmeshdeg#

每个顶点的最大多边形数

类型:

int

is_sparse#

是否使用稀疏表示

类型:

bool

has_fluid#

若在 put_model 时风、密度或粘度非零,则为 True

类型:

bool

has_sdf_geom#

模型是否包含 SDF 几何体

类型:

bool

block_dim#

块维度选项

类型:

mujoco_warp._src.types.BlockDim

body_tree#

按树层级划分的刚体 ID 列表

类型:

tuple[wp.array(dtype=wp.int32, ndim=1), …]

body_branches#

所有分支的扁平化刚体 ID

类型:

wp.array(dtype=wp.int32, ndim=1)

body_branch_start#

每个分支在 body_branches 中的起始索引 (nbranch + 1,)

类型:

wp.array(dtype=wp.int32, ndim=1)

mocap_bodyid#

动作捕捉刚体的 ID (nmocap,)

类型:

wp.array(dtype=wp.int32, ndim=1)

body_fluid_ellipsoid#

刚体是否使用椭球流体 (nbody,)

类型:

wp.array(dtype=wp.bool, ndim=1)

jnt_limited_slide_hinge_adr#

受限/滑动/铰链关节地址

类型:

wp.array(dtype=wp.int32, ndim=1)

jnt_limited_ball_adr#

受限/球关节地址

类型:

wp.array(dtype=wp.int32, ndim=1)

body_isdofancestor#

预计算的掩码,指示哪些自由度影响每个刚体

类型:

wp.array(dtype=wp.int32, ndim=2)

dof_tri_row#

自由度下三角行(用于求解器)

类型:

wp.array(dtype=wp.int32, ndim=1)

dof_tri_col#

自由度下三角列(用于求解器)

类型:

wp.array(dtype=wp.int32, ndim=1)

nxn_geom_pair#

碰撞对几何体 ID [-2, ngeom-1]

类型:

wp.array(dtype=wp.vec2i, ndim=1)

nxn_geom_pair_filtered#

有效碰撞对几何体 ID [-1, ngeom - 1]

类型:

wp.array(dtype=wp.vec2i, ndim=1)

nxn_pairid#
接触对 ID,如果未预定义则为 -1,

如果跳过则为 -2

碰撞 ID,否则为 -1

类型:

wp.array(dtype=wp.vec2i, ndim=1)

nxn_pairid_filtered#

nxn_pairid 的活动子集

类型:

wp.array(dtype=wp.vec2i, ndim=1)

geom_pair_type_count#

每种潜在碰撞的最大数量统计

类型:

tuple[int, …]

geom_plugin_index#

插件数组中的几何体索引 (ngeom,)

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_connect_adr#

类型为 CONNECT 的 eq_* 地址

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_wld_adr#

类型为 WELD 的 eq_* 地址

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_jnt_adr#

类型为 JOINT 的 eq_* 地址

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_ten_adr#

类型为 TENDON 的 eq_* 地址

类型:

wp.array(dtype=wp.int32, ndim=1)

eq_flex_adr#

类型为 `FLEX` 的 eq_* 地址

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_jnt_adr#

关节腱地址

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_site_pair_adr#

位点对腱地址

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_geom_adr#

几何体腱地址

类型:

wp.array(dtype=wp.int32, ndim=1)

tendon_limited_adr#

受限腱地址

类型:

wp.array(dtype=wp.int32, ndim=1)

max_ten_J_rownnz#

腱行中非零元素的最大数量

类型:

int

ten_wrapadr_site#

位点的包裹对象起始地址

类型:

wp.array(dtype=wp.int32, ndim=1)

ten_wrapnum_site#

每个腱的位点包裹对象数量

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_jnt_adr#

关节腱包裹对象地址

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_site_adr#

位点腱包裹对象地址

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_site_pair_adr#

位点包裹对的首地址

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_geom_adr#

几何体腱包裹对象地址

类型:

wp.array(dtype=wp.int32, ndim=1)

wrap_pulley_scale#

滑轮缩放比例 (nwrap,)

类型:

wp.array(dtype=wp.float32, ndim=1)

actuator_trntype_body_adr#

具有刚体传递的执行器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_pos_adr#

位置传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_limitpos_adr#

极限位置传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_vel_adr#

速度传感器地址(不含极限速度传感器)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_limitvel_adr#

极限速度传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_acc_adr#

加速度传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_rangefinder_adr#

测距传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

rangefinder_sensor_adr#

将传感器 ID 映射到测距传感器 ID(不含触摸传感器,不含极限力传感器)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_collision_start_adr#

传感器在碰撞中的第一项地址

类型:

wp.array(dtype=wp.int32, ndim=1)

collision_sensor_adr#

将传感器 ID 映射到碰撞 ID (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_touch_adr#

触摸传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_limitfrc_adr#

极限力传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_e_potential#

评估势能(energy_pos)

类型:

bool

sensor_e_kinetic#

评估动能(energy_vel)

类型:

bool

sensor_tendonactfrc_adr#

腱力传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_subtree_vel#

评估子树速度(subtree_vel)

类型:

bool

sensor_contact_adr#

接触传感器地址 (nsensorcontact,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_adr_to_contact_adr#

将传感器地址映射到接触地址 (nsensor,)

类型:

wp.array(dtype=wp.int32, ndim=1)

sensor_rne_postconstraint#

评估约束后逆动力学(rne_postconstraint)

类型:

bool

sensor_rangefinder_bodyid#

测距仪的刚体 ID (nrangefinder,)

类型:

wp.array(dtype=wp.int32, ndim=1)

taxel_vertadr#

触觉传感器顶点地址 (nsensortaxel,)

类型:

wp.array(dtype=wp.int32, ndim=1)

taxel_sensorid#

触觉传感器地址

类型:

wp.array(dtype=wp.int32, ndim=1)

qM_tiles#

分块配置

类型:

tuple[mujoco_warp._src.types.TileSet, …]

qLD_updates#

用于稀疏分解的索引三元组元组

类型:

tuple[wp.array(dtype=wp.vec3i, ndim=1), …]

qLD_all_updates#

所有层级拼接的元组

类型:

wp.array(dtype=wp.vec3i, ndim=1)

qLD_level_offsets#

每一层级的起始偏移量元组

类型:

wp.array(dtype=wp.int32, ndim=1)

qM_fullm_i#

稀疏质量矩阵寻址

类型:

wp.array(dtype=wp.int32, ndim=1)

qM_fullm_j#

稀疏质量矩阵寻址

类型:

wp.array(dtype=wp.int32, ndim=1)

qM_mulm_rowadr#

稀疏矩阵乘法行指针

类型:

wp.array(dtype=wp.int32, ndim=1)

qM_mulm_col#

稀疏矩阵乘法列索引

类型:

wp.array(dtype=wp.int32, ndim=1)

qM_mulm_madr#

稀疏矩阵乘法矩阵地址

类型:

wp.array(dtype=wp.int32, ndim=1)

class Data[source]#

每步更新的动态状态。

solver_niter#

求解器迭代次数 (nworld,)

类型:

wp.array(dtype=wp.int32, ndim=1)

ne#

等式约束数量 (nworld,)

类型:

wp.array(dtype=wp.int32, ndim=1)

nf#

摩擦约束数量 (nworld,)

类型:

wp.array(dtype=wp.int32, ndim=1)

nl#

极限约束数量 (nworld,)

类型:

wp.array(dtype=wp.int32, ndim=1)

nefc#

约束总数 (nworld,)

类型:

wp.array(dtype=wp.int32, ndim=1)

nisland#

约束岛屿数量 (nworld,)

类型:

wp.array(dtype=wp.int32, ndim=1)

time#

仿真时间 (nworld,)

类型:

wp.array(dtype=wp.float32, ndim=1)

energy#

势能、动能 (nworld, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=1)

qpos#

位置 (nworld, nq)

类型:

wp.array(dtype=wp.float32, ndim=2)

qvel#

速度 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

act#

执行器激活值 (nworld, na)

类型:

wp.array(dtype=wp.float32, ndim=2)

qacc_warmstart#

用于热启动的加速度 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

ctrl#

控制输入 (nworld, nu)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_applied#

施加的广义力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

xfrc_applied#

施加的笛卡尔坐标系力/力矩 (nworld, nbody, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

eq_active#

启用/禁用约束 (nworld, neq)

类型:

wp.array(dtype=wp.bool, ndim=2)

mocap_pos#

动作捕捉刚体位置 (nworld, nmocap, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

mocap_quat#

动作捕捉刚体方向 (nworld, nmocap, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

qacc#

加速度 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

act_dot#

执行器激活值的导数 (nworld, na)

类型:

wp.array(dtype=wp.float32, ndim=2)

sensordata#

传感器数据数组 (nworld, nsensordata,)

类型:

wp.array(dtype=wp.float32, ndim=2)

xpos#

刚体坐标系的笛卡尔位置 (nworld, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

xquat#

刚体坐标系的笛卡尔方向 (nworld, nbody, 4)

类型:

wp.array(dtype=wp.quatf, ndim=2)

xmat#

刚体坐标系的笛卡尔方向矩阵 (nworld, nbody, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=2)

xipos#

刚体质心的笛卡尔位置 (nworld, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

ximat#

刚体惯性的笛卡尔方向矩阵 (nworld, nbody, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=2)

xanchor#

关节锚点的笛卡尔位置 (nworld, njnt, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

xaxis#

笛卡尔关节轴 (nworld, njnt, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

geom_xpos#

几何体笛卡尔位置 (nworld, ngeom, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

geom_xmat#

几何体笛卡尔方向矩阵 (nworld, ngeom, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=2)

site_xpos#

位点笛卡尔位置 (nworld, nsite, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

site_xmat#

位点笛卡尔方向矩阵 (nworld, nsite, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=2)

cam_xpos#

摄像机笛卡尔位置 (nworld, ncam, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

cam_xmat#

摄像机笛卡尔方向矩阵 (nworld, ncam, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=2)

light_xpos#

光源笛卡尔位置 (nworld, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

light_xdir#

光源笛卡尔方向 (nworld, nlight, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

subtree_com#

每个子树的质心 (nworld, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

cdof#

基于质心的每个自由度的运动轴 (旋转:线性) (nworld, nv, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

cinert#

基于质心的刚体惯性和质量 (nworld, nbody, 10)

类型:

wp.array(dtype=vector(length=10, dtype=float32), ndim=2)

flexvert_xpos#

笛卡尔柔性顶点位置 (nworld, nflexvert, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

flexedge_J#

边长雅可比矩阵 (nworld, nJfe)

类型:

wp.array(dtype=wp.float32, ndim=2)

flexedge_length#

柔性体边长 (nworld, nflexedge, 1)

类型:

wp.array(dtype=wp.float32, ndim=2)

ten_wrapadr#

腱路径的起始地址 (nworld, ntendon)

类型:

wp.array(dtype=wp.int32, ndim=2)

ten_wrapnum#

路径中的包裹点数量 (nworld, ntendon)

类型:

wp.array(dtype=wp.int32, ndim=2)

ten_J#

腱雅可比矩阵 (nworld, nJten)

类型:

wp.array(dtype=wp.float32, ndim=2)

ten_length#

腱长 (nworld, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

wrap_obj#

geomid;-1:位点;-2:滑轮 (nworld, nwrap, 2)

类型:

wp.array(dtype=wp.vec2i, ndim=2)

wrap_xpos#

所有路径中的笛卡尔 3D 点 (nworld, nwrap, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

actuator_length#

执行器长度 (nworld, nu)

类型:

wp.array(dtype=wp.float32, ndim=2)

moment_rownnz#

执行器力矩行中的非零元素数量 (nworld, nu)

类型:

wp.array(dtype=wp.int32, ndim=2)

moment_rowadr#

执行器力矩行起始地址 (nworld, nu)

类型:

wp.array(dtype=wp.int32, ndim=2)

moment_colind#

稀疏执行器力矩的列索引 (nworld, nJmom)

类型:

wp.array(dtype=wp.int32, ndim=2)

actuator_moment#

执行器力矩 (nworld, nJmom)

类型:

wp.array(dtype=wp.float32, ndim=2)

crb#

基于质心的组合惯性和质量 (nworld, nbody, 10)

类型:

wp.array(dtype=vector(length=10, dtype=float32), ndim=2)

qM#

总惯性;如果为稠密矩阵则为 (nworld, nv, nv),如果稀疏则为 (nworld, 1, nM)

类型:

wp.array(dtype=wp.float32, ndim=3)

qLD#

M 的 L'*D*L 分解;如果为稠密矩阵则为 (nworld, nv, nv),如果稀疏则为 (nworld, 1, nC)

类型:

wp.array(dtype=wp.float32, ndim=3)

qLDiagInv#

1/diag(D) (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

flexedge_velocity#

柔性体边速度 (nworld, nflexedge)

类型:

wp.array(dtype=wp.float32, ndim=2)

ten_velocity#

腱速度 (nworld, ntendon)

类型:

wp.array(dtype=wp.float32, ndim=2)

actuator_velocity#

执行器速度 (nworld, nu)

类型:

wp.array(dtype=wp.float32, ndim=2)

cvel#

基于质心的速度(旋转:线性)(nworld, nbody, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

cdof_dot#

cdof 的时间导数(旋转:线性)(nworld, nv, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

qfrc_bias#

C(qpos,qvel) (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_spring#

被动弹簧力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_damper#

被动阻尼力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_gravcomp#

被动重力补偿力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_fluid#

被动流体力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_passive#

总被动力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

subtree_linvel#

子树质心的线性速度 (nworld, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

subtree_angmom#

关于子树质心的角动量 (nworld, nbody, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=2)

actuator_force#

执行空间中的执行器力 (nworld, nu)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_actuator#

执行器力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_smooth#

净无约束力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qacc_smooth#

无约束加速度 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_constraint#

约束力 (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

qfrc_inverse#

净外力;应等于:(nworld, nv) qfrc_applied + J.T @ xfrc_applied + qfrc_actuator

类型:

wp.array(dtype=wp.float32, ndim=2)

cacc#

基于质心的加速度 (nworld, nbody, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

cfrc_int#

与父级的基于质心的交互力 (nworld, nbody, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

cfrc_ext#

作用于刚体上的基于质心的外力 (nworld, nbody, 6)

类型:

wp.array(dtype=wp.spatial_vectorf, ndim=2)

contact#

接触数据

类型:

mujoco_warp._src.types.Contact

efc#

约束数据

类型:

mujoco_warp._src.types.Constraint

tree_island#

每个树的岛屿 ID(如果无约束则为 -1)(nworld, ntree)

类型:

wp.array(dtype=wp.int32, ndim=2)

nworld#

世界数量

类型:

int

naconmax#

最大接触数量(所有世界共享)

类型:

int

naccdmax#

用于连续碰撞检测(CCD)的最大接触数量(所有世界)

类型:

int

njmax#

每个世界的最大约束数量

类型:

int

njmax_pad#

向上取整至 TILE_SIZE_JTDAJ 最近倍数的 njmax

类型:

int

njmax_nnz#

约束雅可比矩阵中的非零元素数量

类型:

int

nacon#

检测到的接触数量(所有世界)(1,)

类型:

wp.array(dtype=wp.int32, ndim=1)

ncollision#

粗略阶段的碰撞计数 (1,)

类型:

wp.array(dtype=wp.int32, ndim=1)

refit_bvh(m: Model, d: Data, rc: RenderContext)[source]#

重拟合渲染上下文中的动态 BVH 结构。

collision(m: Model, d: Data)[source]#

运行完整的碰撞检测流水线。

此函数编排粗略阶段和精确阶段的碰撞检测。它首先使用粗略阶段算法(基于 m.opt.broadphase,为 N-squared 或 Sweep-and-Prune)识别潜在的碰撞对。然后,对每个潜在对执行精确的碰撞检测,以计算详细的接触信息,如距离、位置和坐标系。

结果用于填充 d.contact 数组,总接触数存储在 d.nacon 中。如果 d.nacon 大于 d.naconmax,则发生溢出,剩余接触将被跳过。如果发生这种情况,请增加 io.make_dataio.put_data 中的 nconmax 参数。

如果通过 m.opt.disableflags 禁用了碰撞检测,或者如果 d.nacon 为 0,则此函数除了将数组清零外,什么也不做。

nxn_broadphase(m: Model, d: Data, ctx: CollisionContext)[source]#

使用暴力 N-squared 方法运行粗略碰撞检测。

此函数遍历所有可能几何体对的预过滤列表,并执行快速边界球体检查以识别潜在碰撞。

对于每个通过球体检查的对,它填充 d 中的碰撞数组(d.collision_pair, d.collision_pairid 等),这些数组随后由精确阶段使用。

初始对列表在模型创建时过滤,以排除基于 contype/conaffinity、父子关系和显式 <exclude> 标签的对。

sap_broadphase(m: Model, d: Data, ctx: CollisionContext)[source]#

使用扫描-修剪(SAP)算法运行粗略碰撞检测。

对于大量物体,此方法比 N-squared 方法更高效。它通过将所有几何体的边界球体投影到单一轴上并排序来工作。然后它沿该轴扫描,仅检查投影彼此接近的几何体之间的重叠。

对于扫描识别出的每个潜在碰撞对,执行更精确的边界球体检查。如果检查通过,该对将被添加到 d 中的碰撞数组中,用于精确阶段。

支持两种排序策略,由 m.opt.broadphase 控制

  • SAP_TILE:使用基于瓦片的排序。

  • SAP_SEGMENTED:使用分段排序。

primitive_narrowphase(m: Model, d: Data, ctx: CollisionContext, collision_table: list[tuple[GeomType, GeomType]])[source]#

在粗略阶段发现的原始几何体对上运行碰撞检测。

此函数处理粗略阶段识别出的涉及原始形状的碰撞对。它计算详细的接触信息,如距离、位置和坐标系,并填充 d.contact 数组。

原始几何体类型包括:PLANE, SPHERE, CAPSULE, CYLINDERBOX

此外,还有平面与凸包之间的碰撞。

为了提高性能,它动态构建并启动一个针对模型中特定原始碰撞类型的内核,避免对不存在的碰撞对进行不必要的检查。

make_constraint(m: Model, d: Data)[source]#

创建约束雅可比矩阵及其他支持数据。

deriv_smooth_vel(m: Model, d: Data, out: wp.array(dtype=wp.float32, ndim=2))[source]#

平滑力关于速度的解析导数。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • out – qM - dt * qDeriv (平滑力关于速度的导数)。

euler(m: Model, d: Data)[source]#

欧拉积分器,在速度上采用半隐式。

forward(m: Model, d: Data)[source]#

正向动力学。

fwd_acceleration(m: Model, d: Data, factorize: bool = False)[source]#

累加所有非约束力,计算 qacc_smooth。

参数:
  • m – 包含运动学和动力学信息的模型。

  • d – 包含当前状态和输出数组的数据对象。

  • factorize – 惯性矩阵分解标志。

fwd_actuation(m: Model, d: Data)[source]#

依赖于驱动的计算。

fwd_position(m: Model, d: Data, factorize: bool = True)[source]#

依赖于位置的计算。

参数:
  • m – 包含运动学和动力学信息的模型。

  • d – 包含当前状态和输出数组的数据对象。

  • factorize – 惯性矩阵分解标志。

fwd_velocity(m: Model, d: Data)[source]#

依赖于速度的计算。

implicit(m: Model, d: Data)[source]#

速度上的全隐式积分。

rungekutta4(m: Model, d: Data)[source]#

四阶显式 Runge-Kutta 积分器。

step1(m: Model, d: Data)[source]#

分两阶段推进仿真:用户设置输入之前。

step2(m: Model, d: Data)[source]#

分两阶段推进仿真:用户设置输入之后。

inverse(m: Model, d: Data)[source]#

逆动力学。

create_render_context(mjm: MjModel, nworld: int = 1, cam_res: list[tuple[int, int]] | tuple[int, int] | None = None, render_rgb: list[bool] | bool | None = None, render_depth: list[bool] | bool | None = None, render_seg: list[bool] | bool | None = None, use_textures: bool = True, use_shadows: bool = False, enabled_geom_groups: list[int] = [0, 1, 2], cam_active: list[bool] | None = None, flex_render_smooth: bool = True, use_precomputed_rays: bool = True, render_skybox: bool = False) RenderContext[source]#

在设备上创建渲染上下文。

参数:
  • mjm – 包含主机端运动学和动力学信息的模型。

  • nworld – 世界数量。

  • cam_res – 渲染每个相机图像的宽度和高度。如果为 None,则使用 MuJoCo 模型值。

  • render_rgb – 是否渲染 RGB 图像。如果为 None,则使用 MuJoCo 模型值。

  • render_depth – 是否渲染深度图像。如果为 None,则使用 MuJoCo 模型值。

  • render_seg – 是否渲染分割图(每个像素的对象 ID/类型对)。如果为 None,则使用 MuJoCo 模型值。

  • use_textures – 是否使用纹理。

  • use_shadows – 是否使用阴影。

  • enabled_geom_groups – 要渲染的几何体组。

  • cam_active – 布尔值列表,指示在渲染中包含哪些相机。如果为 None,则包含所有相机。

  • flex_render_smooth – 是否平滑渲染柔性网格。

  • use_precomputed_rays – 使用预计算的光线而非在渲染期间计算。当对相机内参使用域随机化时,请将其设置为 False。

  • render_skybox – 是否使用 MuJoCo 天空盒纹理渲染未击中的光线。要求模型包含类型为 mjTEXTURE_SKYBOX 的纹理。

返回:

包含设备上渲染字段和输出数组的渲染上下文。

get_data_into(result: MjData, mjm: MjModel, d: Data, world_id: int = 0)[source]#

将设备上的数据获取到现有的 mujoco.MjData 中。

参数:
  • result – 包含当前状态和输出数组(主机)的数据对象。

  • mjm – 包含运动学和动力学信息的模型(主机)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • world_id – 要从中获取数据的世界 ID。

make_data(mjm: MjModel, nworld: int = 1, nconmax: int | None = None, nccdmax: int | None = None, njmax: int | None = None, njmax_nnz: int | None = None, naconmax: int | None = None, naccdmax: int | None = None) Data[source]#

在设备上创建数据对象。

参数:
  • mjm – 包含运动学和动力学信息的模型(主机)。

  • nworld – 世界数量。

  • nconmax – 每个世界分配的接触数。接触存在于大型异构数组中:一个世界可能拥有超过 nconmax 个接触。

  • nccdmax – 每个世界分配的 CCD 接触数。语义与 nconmax 相同。

  • njmax – 每个世界分配的约束数。约束数组按世界分批:没有任何世界可以拥有超过 njmax 个约束。

  • njmax_nnz – 约束雅可比矩阵中的非零元素数(稀疏)。默认为 njmax * nv。

  • naconmax – 为所有世界分配的接触总数。覆盖 nconmax。

  • naccdmax – 最大 CCD 接触数。默认为 naconmax。

返回:

包含当前状态和输出数组的数据对象(设备)。

put_data(mjm: MjModel, mjd: MjData, nworld: int = 1, nconmax: int | None = None, nccdmax: int | None = None, njmax: int | None = None, njmax_nnz: int | None = None, naconmax: int | None = None, naccdmax: int | None = None) Data[source]#

将数据从主机移动到设备。

参数:
  • mjm – 包含运动学和动力学信息的模型(主机)。

  • mjd – 包含当前状态和输出数组的数据对象(主机)。

  • nworld – 世界数量。

  • nconmax – 每个世界分配的接触数。接触存在于大型异构数组中:一个世界可能拥有超过 nconmax 个接触。

  • nccdmax – 每个世界分配的 CCD 接触数。语义与 nconmax 相同。

  • njmax – 每个世界分配的约束数。约束数组按世界分批:没有任何世界可以拥有超过 njmax 个约束。

  • njmax_nnz – 约束雅可比矩阵中的非零元素数(稀疏)。默认为 njmax * nv。

  • naconmax – 为所有世界分配的接触总数。覆盖 nconmax。

  • naccdmax – 最大 CCD 接触数。默认为 naconmax。

返回:

包含当前状态和输出数组的数据对象(设备)。

put_model(mjm: MjModel) Model[source]#

在设备上创建模型。

参数:

mjm – 包含运动学和动力学信息的模型(主机)。

返回:

包含运动学和动力学信息的模型(设备)。

reset_data(m: Model, d: Data, reset: array | None = None)[source]#

清除数据,设置默认值;可按世界进行。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • reset – 每个世界的位掩码。若为 True 则重置。

set_const(m: Model, d: Data)[source]#

重新计算依赖于 qpos0 的恒定模型字段。

此函数将更改从某些模型字段传播到派生字段,允许进行原本不安全的操作。在运行时修改模型参数后应调用此函数。

可以使用 set_const 安全修改的模型字段

字段 | 说明 ———————————|———————————————- qpos0, qpos_spring | body_mass, body_inertia, | 质量和惯性通常一起缩放, body_ipos, body_iquat | 因为惯性是 sum(m * r^2)。 body_pos, body_quat | 对于静态体不安全(会导致 BVH 失效)。 body_gravcomp | 如果从 0 更改为 >0 身体,则需要。 dof_armature | eq_data | 对于连接/焊接,如果未设置则计算偏移。 hfield_size | tendon_stiffness, tendon_damping | 仅在从/到零更改时。 actuator_gainprm, actuator_biasprm | 对于带有阻尼比的位置执行器。

对于选择性更新,请直接根据更改的内容使用子函数

修改字段 | 调用 —————-|—————— body_mass | set_const body_gravcomp | set_const_fixed body_inertia | set_const_0 qpos0 | set_const_0

计算
  • 固定量(通过 set_const_fixed): - body_subtreemass:身体及其所有后代的质量 - ngravcomp:具有重力补偿的身体数量

  • 依赖于 qpos0 的量(通过 set_const_0): - tendon_length0:肌腱静止长度 - dof_invweight0:自由度的逆惯性 - body_invweight0:身体的逆空间惯性 - tendon_invweight0:肌腱的逆权重 - cam_pos0, cam_poscom0, cam_mat0:相机参考 - light_pos0, light_poscom0, light_dir0:光照参考 - actuator_acc0:单位执行器力产生的加速度 - actuator_biasprm[2](阻尼比分辨率)

跳过:actuator_length0(mjwarp 中不存在)。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

set_const_0(m: Model, d: Data)[source]#

计算依赖于 qpos0 的量。

计算
  • tendon_length0:肌腱静止长度

  • dof_invweight0:自由度的逆惯性

  • body_invweight0:身体的逆空间惯性

  • tendon_invweight0:肌腱的逆权重

  • cam_pos0, cam_poscom0, cam_mat0:相机参考

  • light_pos0, light_poscom0, light_dir0:光照参考

  • actuator_acc0:单位执行器力产生的加速度

  • actuator_biasprm[2](阻尼比分辨率):对于 gainprm[0] == -biasprm[1] 且 biasprm[2] > 0 的位置执行器,通过 biasprm[2] = -dampratio * 2 * sqrt(kp * reflected_mass) 将阻尼比转换为阻尼

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

set_const_fixed(m: Model, d: Data)[source]#

计算固定量(不依赖于 qpos0)。

计算
  • body_subtreemass:身体及其所有后代的质量(依赖于 body_mass)

  • ngravcomp:具有重力补偿的身体数量(依赖于 body_gravcomp)

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

set_length_range(m: Model, d: Data, index: int = -1)[source]#

根据关节/肌腱限制计算可行的执行器长度范围。

对于具有限制的关节和肌腱传动,直接从 jnt_range 或 tendon_range 复制并按齿轮比缩放。没有限制的执行器保持 (0, 0)。这涵盖了常见的机器人应用场景;通用传动的基于仿真的计算尚未实现。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 数据对象(未使用,保持与 MuJoCo C 的 API 兼容性)。

  • index – 要计算的执行器索引,或 -1 表示所有执行器。

island(m: Model, d: Data)[source]#

发现约束岛。

passive(m: Model, d: Data)[source]#

添加所有被动力。

ray(m: Model, d: Data, pnt: wp.array(dtype=wp.vec3f, ndim=2), vec: wp.array(dtype=wp.vec3f, ndim=2), geomgroup: vec6f | None = None, flg_static: bool = True, bodyexclude: int = -1, rc: RenderContext | None = None) Tuple[array, array, array][source]#

返回光线与原始几何体相交的距离。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • pnt – 光线起点。

  • vec – 光线方向。

  • geomgroup – 组包含/排除掩码。

  • flg_static – 若为 True,则允许光线与静态几何体相交。

  • bodyexclude – 忽略指定身体 ID 上的几何体(-1 表示禁用)。

  • rc – 可选渲染上下文,包含用于 BVH 加速光线求交的 BVH 信息。

返回:

从光线起点到几何体表面的距离、相交几何体的 ID(若无则为 -1)以及相交点处的法线。

rays(m: Model, d: Data, pnt: wp.array(dtype=wp.vec3f, ndim=2), vec: wp.array(dtype=wp.vec3f, ndim=2), geomgroup: vec6f, flg_static: bool, bodyexclude: wp.array(dtype=wp.int32, ndim=1), dist: wp.array(dtype=wp.float32, ndim=2), geomid: wp.array(dtype=wp.int32, ndim=2), normal: wp.array(dtype=wp.vec3f, ndim=2), rc: RenderContext | None = None)[source]#

用于多个世界和多条光线的光线求交。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • pnt – 光线起点,形状 (nworld, nray)。

  • vec – 光线方向,形状 (nworld, nray)。

  • geomgroup – 组包含/排除掩码。将所有元素设为 -1 以忽略。

  • flg_static – 若为 True,则允许光线与静态几何体相交。

  • bodyexclude – 每条光线的身体排除数组,形状 (nray,)。忽略指定身体 ID 上的几何体(-1 表示该光线禁用)。

  • dist – 从光线起点到几何体表面的距离输出数组,形状 (nworld, nray)。-1 表示无相交。

  • geomid – 相交几何体的 ID 输出数组,形状 (nworld, nray)。-1 表示无相交。

  • normal – 相交点处法线的输出数组,形状 (nworld, nray)。

  • rc – 可选渲染上下文,包含用于 BVH 加速光线求交的 BVH 信息。

render(m: Model, d: Data, rc: RenderContext)[source]#

渲染当前帧。

输出存储在渲染上下文的缓冲区中。

参数:
  • m – 设备上的模型。

  • d – 设备上的数据。

  • rc – 设备上的渲染上下文。

get_depth(rc: RenderContext, camera_index: int, depth_scale: float, depth_out: wp.array(dtype=wp.float32, ndim=3))[source]#

获取给定相机索引的渲染上下文缓冲区中的深度数据。

参数:
  • rc – 设备上的渲染上下文。

  • camera_index – 要获取深度数据的相机索引。

  • depth_scale – 应用于深度数据的缩放因子。

  • depth_out – 用于存储缩放和截断后的深度数据的输出数组,形状为 (nworld, height, width)。

get_rgb(rc: RenderContext, camera_index: int, rgb_out: wp.array(dtype=wp.vec3f, ndim=3))[source]#

获取给定相机索引的渲染上下文缓冲区中的 RGB 数据。

参数:
  • rc – 设备上的渲染上下文。

  • camera_index – 要获取 RGB 数据的相机索引。

  • rgb_out – 用于存储 RGB 数据的输出数组,形状为 (nworld, height, width)。

get_segmentation(rc: RenderContext, camera_index: int, seg_out: wp.array(dtype=wp.vec2i, ndim=3))[source]#

获取来自渲染上下文缓冲区的给定相机索引的分割数据。

每个像素存储 MuJoCo 风格的 (object_id, object_type) 数据。背景像素为 (-1, -1)。常规几何体击中为 (geom_id, mjOBJ_GEOM)。柔性体击中为 (flex_id, mjOBJ_FLEX)

参数:
  • rc – 设备上的渲染上下文。

  • camera_index – 要获取分割数据的相机索引。

  • seg_out – 用于存储分割数据的输出数组,形状为 (nworld, height, width),数据类型为 wp.vec2i

energy_pos(m: Model, d: Data)[source]#

位置相关能量(势能)。

energy_vel(m: Model, d: Data)[source]#

速度相关能量(动能)。

sensor_acc(m: Model, d: Data)[source]#

计算加速度相关传感器值。

sensor_pos(m: Model, d: Data)[source]#

计算位置相关传感器值。

sensor_vel(m: Model, d: Data)[source]#

计算速度相关传感器值。

camlight(m: Model, d: Data)[source]#

计算相机和灯光的位置与朝向。

更新模型中所有相机和灯光的全局位置与朝向,包括对跟踪和目标模式的特殊处理。

com_pos(m: Model, d: Data)[source]#

计算子树质心位置。

将惯性和运动变换到以子树质心为中心的全局坐标系。沿运动学树累加质量加权位置,除以总质量,并在子树质心坐标系中计算复合惯性和运动自由度。

com_vel(m: Model, d: Data)[source]#

计算所有身体的空间速度 (cvel) 和导数 cdof_dot

沿运动学树向下传播速度,更新每个身体的空间速度和导数。

crb(m: Model, d: Data)[source]#

计算每个身体的复合刚体惯性和关节空间惯性矩阵。

沿运动学树累加复合刚体惯性,并根据模型选项以稀疏或密集格式计算关节空间惯性矩阵。

factor_m(m: Model, d: Data)[source]#

对惯性类矩阵 M 进行分解(假定为对称正定)。

kinematics(m: Model, d: Data)[source]#

计算所有身体、站点、几何体和柔性元素的正向运动学。

该函数基于当前的关节位置和任何附加的运动捕捉身体,更新所有身体的全局位置和朝向,以及几何体、站点和柔性元素的派生位置和朝向。

rne(m: Model, d: Data, flg_acc: bool = False)[source]#

使用递归牛顿-欧拉算法计算逆动力学。

计算当前状态的偏置力(qfrc_bias)和内力(cfrc_int),包括重力影响以及可选的关节加速度。

参数:
  • m – 包含运动学和动力学信息的模型。

  • d – 包含当前状态和输出数组的数据对象。

  • flg_acc – 若为 True,则在计算中包含关节加速度。

rne_postconstraint(m: Model, d: Data)[source]#

在应用约束后计算递归牛顿-欧拉算法。

计算 cacccfrc_extcfrc_int,包括施加力、等式约束和接触的影响。

solve_m(m: Model, d: Data, x: wp.array(dtype=wp.float32, ndim=2), y: wp.array(dtype=wp.float32, ndim=2))[source]#

计算回代:x = qLD * y。

参数:
  • m – 包含惯性和分解信息的模型。

  • d – 包含分解结果的数据对象。

  • x – 解的输出数组。

  • y – 输入右侧数组。

subtree_vel(m: Model, d: Data)[source]#

计算子树线速度和角动量。

计算每个子树的线动量和角动量,沿运动学树累加贡献。

tendon(m: Model, d: Data)[source]#

计算肌腱长度和力矩。

更新模型中所有肌腱(包括关节、站点和几何体肌腱)的肌腱长度和力矩数组。

transmission(m: Model, d: Data)[source]#

计算执行器/传动长度和力矩。

更新模型中所有执行器(包括关节和肌腱传动)的执行器长度和力矩。

contact_force(m: Model, d: Data, contact_ids: wp.array(dtype=wp.int32, ndim=1), to_world_frame: bool, force: wp.array(dtype=wp.spatial_vectorf, ndim=1))[source]#

计算 Data 中接触点的力。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • contact_ids – 每个接触点的 ID。

  • to_world_frame – 若为 True,则将接触力映射到世界坐标系。

  • force – 接触力。

get_state(m: Model, d: Data, state: wp.array(dtype=wp.float32, ndim=2), sig: int, active: array | None = None)[source]#

将 Data 中由 sig 指定的连接状态分量复制到 state 中。

整数 sig 的位对应 State 的元素字段。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出信息的数据对象(设备)。

  • state – 状态分量的连接。

  • sig – 指定状态分量的位标志。

  • active – 用于获取状态的每个世界的位掩码。

jac(m: Model, d: Data, jacp: array | None, jacr: array | None, point: wp.array(dtype=wp.vec3f, ndim=1), body: wp.array(dtype=wp.int32, ndim=1))[source]#

计算身体上某点的平移和旋转雅可比矩阵。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态的数据对象(设备)。

  • jacp – 输出平移雅可比矩阵(可选)。

  • jacr – 输出旋转雅可比矩阵(可选)。

  • point – 全局坐标中的 3D 点。

  • body – 每个世界的身体 ID。

mul_m(m: Model, d: Data, res: wp.array(dtype=wp.float32, ndim=2), vec: wp.array(dtype=wp.float32, ndim=2), skip: array | None = None, M: array | None = None)[source]#

将向量与惯性矩阵相乘;可选择按世界进行跳过。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • res – 结果:qM @ vec。

  • vec – 需与 qM 相乘的输入向量。

  • skip – 用于跳过计算输出的按世界位掩码。

  • M – 输入矩阵:M @ vec。

set_state(m: Model, d: Data, state: wp.array(dtype=wp.float32, ndim=2), sig: int, active: array | None = None)[source]#

将由 sig 指定的级联状态组件从 state 复制到 Data 中。

整数 sig 的位对应 State 的元素字段。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出信息的数据对象(设备)。

  • state – 状态分量的连接。

  • sig – 指定状态分量的位标志。

  • active – 用于设置状态的按世界位掩码。

xfrc_accumulate(m: Model, d: Data, qfrc: wp.array(dtype=wp.float32, ndim=2))[source]#

通过雅可比矩阵将施加在每个物体上的力映射到广义力 (dof) 空间并进行累加。

参数:
  • m – 包含运动学和动力学信息的模型(设备)。

  • d – 包含当前状态和输出数组的数据对象(设备)。

  • qfrc – 映射到 dof 空间的施加力总量。

class BiasType[source]#

执行器偏置类型。

NONE#

无偏置

AFFINE#

常数 + kp*长度 + kv*速度

MUSCLE#

由 muscle_bias 计算的肌肉被动力

USER#

通过 act_bias_callback 实现的自定义偏置

DCMOTOR#

直流电机反电动势偏置

class BroadphaseFilter[source]#

指定在粗略阶段(broadphase)期间运行哪些碰撞函数的位掩码。

PLANE#

包围球与平面的碰撞

SPHERE#

包围球之间的碰撞

AABB#

轴对齐包围盒之间的碰撞

OBB#

有向包围盒之间的碰撞

class BroadphaseType[source]#

粗略阶段算法类型。

NXN#

检查所有对的粗略阶段

SAP_TILE#

使用平铺排序的扫描裁剪(Sweep and prune)粗略阶段

SAP_SEGMENTED#

使用分段排序的扫描裁剪粗略阶段

class Callback[source]#

用于自定义物理行为的回调。

passive#

自定义被动力,写入 Data.qfrc_passive

类型:

可调用对象 | None

control#

自定义控制律,写入 Data.ctrl

类型:

可调用对象 | None

act_dyn#

自定义执行器动力学,写入 Data.act_dot

类型:

可调用对象 | None

act_gain#

自定义执行器增益,写入 Data.actuator_force

类型:

可调用对象 | None

act_bias#

自定义执行器偏置,写入 Data.actuator_force

类型:

可调用对象 | None

sensor#

自定义传感器,写入 Data.sensordata

类型:

可调用对象 | None

contactfilter#

自定义接触过滤,写入 Data.contact

类型:

可调用对象 | None

class ConeType[source]#

摩擦锥类型。

PYRAMIDAL#

棱锥形

ELLIPTIC#

椭圆锥形

class Constraint[source]#

约束数据。

type#

约束类型 (ConstraintType) (nworld, njmax)

类型:

wp.array(dtype=wp.int32, ndim=2)

id#

特定类型的对象 ID (nworld, njmax)

类型:

wp.array(dtype=wp.int32, ndim=2)

J_rownnz#

J 行中的非零元素数量 (nworld, 0) 稠密 (nworld, njmax) 稀疏

类型:

wp.array(dtype=wp.int32, ndim=2)

J_rowadr#

colind 数组中的行起始地址 (nworld, 0) 稠密 (nworld, njmax) 稀疏

类型:

wp.array(dtype=wp.int32, ndim=2)

J_colind#

J 中的列索引 (nworld, 0, 0) 稠密 (nworld, 1, njmax * nv) 稀疏

类型:

wp.array(dtype=wp.int32, ndim=3)

J#

约束雅可比矩阵 (nworld, njmax_pad, nv_pad) 稠密 (nworld, 1, njmax * nv) 稀疏

类型:

wp.array(dtype=wp.float32, ndim=3)

pos#

约束位置(等式,接触)(nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

margin#

包含余量(接触)(nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

D#

约束质量 (nworld, njmax_pad)

类型:

wp.array(dtype=wp.float32, ndim=2)

vel#

约束空间中的速度:J*qvel (nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

aref#

参考伪加速度 (nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

frictionloss#

摩擦损耗(摩擦)(nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

force#

约束空间中的约束力 (nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

state#

约束状态 (nworld, njmax_pad)

类型:

wp.array(dtype=wp.int32, ndim=2)

Ma#

M*qacc (nworld, nv)

类型:

wp.array(dtype=wp.float32, ndim=2)

Jqvel#

J*qvel (nworld, njmax)

类型:

wp.array(dtype=wp.float32, ndim=2)

class Contact[source]#

接触数据。

dist#

最近点之间的距离;负值表示穿透 (naconmax,)

类型:

wp.array(dtype=wp.float32, ndim=1)

pos#

接触点位置:几何体之间的中点 (naconmax, 3)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

frame#

法线在 [0-2] 中,从 geom[0] 指向 geom[1] (naconmax, 3, 3)

类型:

wp.array(dtype=wp.mat33f, ndim=1)

includemargin#

如果 dist < includemargin=margin 则包含 (naconmax,)

类型:

wp.array(dtype=wp.float32, ndim=1)

friction#

切线 1, 2,自旋,滚动 1, 2 (naconmax, 5)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=1)

solref#

约束求解器参考,法线方向 (naconmax, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=1)

solreffriction#

约束求解器参考,摩擦方向 (naconmax, 2)

类型:

wp.array(dtype=wp.vec2f, ndim=1)

solimp#

约束求解器阻抗 (naconmax, 5)

类型:

wp.array(dtype=vector(length=5, dtype=float32), ndim=1)

dim#

接触空间维度:1, 3, 4 或 6 (naconmax,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geom#

几何体 ID;柔性体为 -1 (naconmax, 2)

类型:

wp.array(dtype=wp.vec2i, ndim=1)

efc_address#

efc 中的地址;-1:未包含 (naconmax, nmaxpyramid)

类型:

wp.array(dtype=wp.int32, ndim=2)

worldid#

世界 ID (naconmax,)

类型:

wp.array(dtype=wp.int32, ndim=1)

type#

ContactType (naconmax,)

类型:

wp.array(dtype=wp.int32, ndim=1)

geomcollisionid#

为几何体生成的第 i 个接触 (naconmax,),当为几何体对生成多个接触时有助于唯一标识接触

类型:

wp.array(dtype=wp.int32, ndim=1)

class DisableBit[source]#

禁用默认特征位标志。

CONSTRAINT#

整个约束求解器

EQUALITY#

等式约束

FRICTIONLOSS#

关节和腱摩擦损耗约束

LIMIT#

关节和腱极限约束

CONTACT#

接触约束

SPRING#

被动弹簧力

DAMPER#

被动阻尼力

GRAVITY#

重力

CLAMPCTRL#

将控制限制在指定范围内

WARMSTART#

热启动约束求解器

FILTERPARENT#

禁用父物体和子物体之间的碰撞

ACTUATION#

应用驱动力

REFSAFE#

积分器安全性:使 ref[0]>=2*时间步长

SENSOR#

传感器

EULERDAMP#

欧拉积分的隐式阻尼

NATIVECCD#

原生凸碰撞检测(在 MJWarp 中忽略)

ISLAND#

约束岛

class DynType[source]#

执行器动力学类型。

NONE#

无内部动力学;ctrl 指定力

INTEGRATOR#

积分器:da/dt = u

FILTER#

线性滤波器:da/dt = (u-a) / tau

FILTEREXACT#

线性滤波器:da/dt = (u-a) / tau,带有精确积分

MUSCLE#

具有两个时间常数的逐段线性滤波器

USER#

通过 act_dyn_callback 实现的自定义动力学

DCMOTOR#

直流电机动力学

class EnableBit[source]#

启用可选特征位标志。

ENERGY#

能量计算

INVDISCRETE#

离散时间逆动力学

MULTICCD#

具有 CCD 的多重接触

class GainType[source]#

执行器增益类型。

FIXED#

固定增益

AFFINE#

常数 + kp*长度 + kv*速度

MUSCLE#

由 muscle_gain 计算的肌肉 FLV 曲线

USER#

通过 act_gain_callback 实现的自定义增益

DCMOTOR#

直流电机增益

class GeomType[source]#

几何体类型。

PLANE#

平面

HFIELD#

高度场

SPHERE#

球体 (sphere)

CAPSULE#

胶囊体

ELLIPSOID#

椭球体 (ellipsoid)

CYLINDER#

圆柱体 (cylinder)

BOX#

长方体 (box)

MESH#

mesh

SDF#

有向距离场 (SDF)

FLEX#

柔性体 (Flex)

class IntegratorType[source]#

积分器模式。

EULER#

半隐式欧拉

RK4#

四阶龙格-库塔

IMPLICITFAST#

速度隐式,无 RNE 导数

class JointType[source]#

自由度类型。

FREE#

全局位置和方位(四元数)(7,)

BALL#

相对于父物体的方位(四元数)(4,)

SLIDE#

沿物体固定轴的滑动距离 (1,)

HINGE#

绕物体固定轴的旋转角度 (弧度) (1,)

class ObjType[source]#

对象类型。

UNKNOWN#

未知对象类型

BODY#

body

XBODY#

物体,用于访问常规坐标系而非 i 坐标系

GEOM#

geom

FLEX#

柔性体 (Flex)

SITE#

site

CAMERA#

camera

class Option[source]#

物理选项。

timestep#

仿真时间步长

类型:

wp.array(dtype=wp.float32, ndim=1)

tolerance#

主求解器容差

类型:

wp.array(dtype=wp.float32, ndim=1)

ls_tolerance#

共轭梯度法/牛顿法线性搜索容差

类型:

wp.array(dtype=wp.float32, ndim=1)

ccd_tolerance#

凸碰撞检测容差

类型:

wp.array(dtype=wp.float32, ndim=1)

gravity#

重力加速度

类型:

wp.array(dtype=wp.vec3f, ndim=1)

wind#

风(用于升力、阻力和粘度)

类型:

wp.array(dtype=wp.vec3f, ndim=1)

magnetic#

全局磁通量

类型:

wp.array(dtype=wp.vec3f, ndim=1)

density#

介质密度

类型:

wp.array(dtype=wp.float32, ndim=1)

viscosity#

介质粘度

类型:

wp.array(dtype=wp.float32, ndim=1)

integrator#

积分模式 (IntegratorType)

类型:

int

cone#

摩擦锥类型 (ConeType)

类型:

int

solver#

求解器算法 (SolverType)

类型:

int

iterations#

主求解器迭代次数

类型:

int

ls_iterations#

共轭梯度法/牛顿法线性搜索最大迭代次数

类型:

int

ccd_iterations#

凸碰撞检测迭代次数

类型:

int

disableflags#

用于禁用标准特征的位标志

类型:

int

enableflags#

用于启用可选特征的位标志

类型:

int

sdf_initpoints#

梯度下降的起始点数量

类型:

int

sdf_iterations#

梯度下降的最大迭代次数

类型:

int

impratio_invsqrt#

摩擦与法向接触阻抗之比(存储为逆平方根)

类型:

wp.array(dtype=wp.float32, ndim=1)

ls_parallel#

并行评估引擎求解器步长

类型:

bool

ls_parallel_min_step#

求解器线性搜索的最小步长

类型:

浮点数 (float)

broadphase#

粗略阶段类型 (BroadphaseType)

类型:

mujoco_warp._src.types.BroadphaseType

broadphase_filter#

粗略阶段过滤器位标志 (BroadphaseFilter)

类型:

mujoco_warp._src.types.BroadphaseFilter

graph_conditional#

使用 CUDA 图条件判断的标志

类型:

bool

run_collision_detection#

如果为 False,则跳过碰撞检测并允许用户在物理步骤中填充接触(与 DisableBit.CONTACT 明确清零每一步的接触不同)

类型:

bool

contact_sensor_maxmatch#

接触传感器匹配标准考虑的最大接触数,超过此值后匹配的接触将被忽略

类型:

int

class RenderContext[source]#

渲染上下文。

nrender#

活动渲染相机的数量

类型:

int

cam_res#

活动渲染相机的分辨率

类型:

wp.array(dtype=wp.vec2i, ndim=1)

cam_id_map#

相机 ID 映射

类型:

wp.array(dtype=wp.int32, ndim=1)

use_textures#

是否使用纹理

类型:

bool

use_shadows#

是否使用阴影

类型:

bool

use_precomputed_rays#

是否使用预计算光线

类型:

bool

bvh_ngeom#

BVH 中的几何体数量

类型:

int

enabled_geom_ids#

启用的几何体 ID

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_registry#

网格 BVH ID 到 Warp 网格的映射

类型:

字典 (dict)

mesh_bvh_id#

网格 BVH ID

类型:

wp.array(dtype=wp.uint64, ndim=1)

mesh_bounds_size#

网格边界大小

类型:

wp.array(dtype=wp.vec3f, ndim=1)

mesh_texcoord#

网格纹理坐标

类型:

wp.array(dtype=wp.vec2f, ndim=1)

mesh_texcoord_offsets#

网格纹理坐标偏移

类型:

wp.array(dtype=wp.int32, ndim=1)

mesh_facetexcoord#

网格面纹理坐标

类型:

wp.array(dtype=wp.vec3i, ndim=1)

textures#

纹理

类型:

wp.array(dtype=wp.Texture2D, ndim=1)

textures_registry#

纹理注册表

类型:

列表 [warp._src.texture.Texture2D]

hfield_registry#

高度场 BVH ID 到 Warp 网格的映射

类型:

字典 (dict)

hfield_bvh_id#

高度场 BVH ID

类型:

wp.array(dtype=wp.uint64, ndim=1)

hfield_bounds_size#

高度场边界半范围

类型:

wp.array(dtype=wp.vec3f, ndim=1)

flex_mesh_registry#

按柔性体的网格 BVH 注册表(防止垃圾回收)

类型:

字典 (dict)

flex_rgba#

柔性体 RGBA

类型:

wp.array(dtype=wp.vec4f, ndim=1)

flex_bvh_id#

按柔性体的 BVH ID

类型:

wp.array(dtype=wp.uint64, ndim=1)

flex_group_root#

按柔性体的组根 (nworld x n_flex_bvh)

类型:

wp.array(dtype=wp.int32, ndim=2)

flex_render_smooth#

是否平滑渲染柔性体网格

类型:

bool

flex_dim#

每个柔性体的维度 (1D/2D/3D)

bvh#

场景 BVH

类型:

warp._src.types.Bvh

bvh_id#

场景 BVH ID

类型:

warp._src.types.uint64

lower#

下界

类型:

wp.array(dtype=wp.vec3f, ndim=1)

upper#

上界

类型:

wp.array(dtype=wp.vec3f, ndim=1)

group#

类型:

wp.array(dtype=wp.int32, ndim=1)

group_root#

组根

类型:

wp.array(dtype=wp.int32, ndim=1)

ray#

光线

类型:

wp.array(dtype=wp.vec3f, ndim=1)

rgb_data#

RGB 数据

类型:

wp.array(dtype=wp.uint32, ndim=1)

rgb_adr#

RGB 地址

类型:

wp.array(dtype=wp.int32, ndim=1)

depth_data#

深度数据

类型:

wp.array(dtype=wp.float32, ndim=1)

depth_adr#

深度地址

类型:

wp.array(dtype=wp.int32, ndim=1)

render_rgb#

按相机的 RGB 渲染标志

类型:

wp.array(dtype=wp.bool, ndim=1)

render_depth#

按相机的深度渲染标志

类型:

wp.array(dtype=wp.bool, ndim=1)

seg_data#

分割数据(每像素对象 ID/类型对)

类型:

wp.array(dtype=wp.vec2i, ndim=1)

seg_adr#

分割地址

类型:

wp.array(dtype=wp.int32, ndim=1)

render_seg#

按相机的分割渲染标志

类型:

wp.array(dtype=wp.bool, ndim=1)

znear#

近平面距离

类型:

浮点数 (float)

total_rays#

总光线数量

类型:

int

render_skybox#

是否使用 MuJoCo 天空盒纹理对未击中的光线进行着色

类型:

bool

skybox_tex_id#

天空盒纹理索引 (MuJoCo tex_type == SKYBOX),无则为 -1

类型:

int

skybox_face_width#

单个天空盒立方体面的像素宽度(若无天空盒则为 0)

类型:

int

class SolverType[source]#

约束求解器算法。

CG#

共轭梯度法(原始)

NEWTON#

牛顿法(原始)

class State[source]#

状态组件元素,作为整数位标志。

包含这些标志的几种便捷组合。

TIME#

时间

QPOS#

位置

QVEL#

速度

ACT#

执行器激活

WARMSTART#

用于热启动的加速度

CTRL#

控制

QFRC_APPLIED#

施加的广义力

XFRC_APPLIED#

施加的笛卡尔力/转矩

EQ_ACTIVE#

启用/禁用约束

MOCAP_POS#

动捕物体的位置

MOCAP_QUAT#

动捕物体的方位

NSTATE#

状态元素数量

PHYSICS#

QPOS | QVEL | ACT

FULLPHYSICS#

TIME | PHYSICS | PLUGIN

USER#

CTRL | QFRC_APPLIED | XFRC_APPLIED | EQ_ACTIVE | MOCAP_POS | MOCAP_QUAT | USERDATA

INTEGRATION#

FULLPHYSICS | USER | WARMSTART

class Statistic[source]#

模型统计信息(位于 qpos0 中)。

meaninertia#

平均对角惯性(按世界)

类型:

wp.array(dtype=wp.float32, ndim=1)

class TrnType[source]#

执行器传输类型。

JOINT#

施加在关节上的力

JOINTINPARENT#

施加在关节上的力,在父坐标系中表示

SLIDERCRANK#

通过滑块曲柄连杆机构施加力

TENDON#

施加在腱上的力

BODY#

施加在物体几何体上的粘附力

SITE#

施加在点上的力