Source code for mink_warp.integrate
"""Position integration via MuJoCo Warp."""
from __future__ import annotations
import warp as wp
from mujoco_warp._src.forward import _next_position
[docs]
def integrate_qpos(
*,
q_in: wp.array,
q_out: wp.array,
velocity: wp.array,
dt_buf: wp.array,
jnt_type: wp.array,
jnt_qposadr: wp.array,
jnt_dofadr: wp.array,
nworld: int,
njnt: int,
) -> None:
"""``q_out = integrate(q_in, velocity, dt)`` using mjwarp ``_next_position``.
``q_in`` and ``q_out`` must be distinct buffers (required for CUDA graphs).
``dt_buf`` must already hold the timestep (do not host-assign inside a graph).
"""
wp.launch(
_next_position,
dim=(nworld, njnt),
inputs=[
dt_buf,
jnt_type,
jnt_qposadr,
jnt_dofadr,
q_in,
velocity,
1.0,
],
outputs=[q_out],
)