Merge pull request #1450 from v-r-a:angmomMat
PiperOrigin-RevId: 612835207 Change-Id: I8e7b01cc433563556a3ae4bbdd0c53612cc15e97
This commit is contained in:
@@ -744,6 +744,16 @@ class MuJoCoBindingsTest(parameterized.TestCase):
|
||||
# Expect next states to be equal.
|
||||
np.testing.assert_array_equal(state1a, state1b)
|
||||
|
||||
def test_mj_angmomMat(self): # pylint: disable=invalid-name
|
||||
self.data.qvel = np.ones(self.model.nv, np.float64)
|
||||
mujoco.mj_forward(self.model, self.data)
|
||||
mujoco.mj_subtreeVel(self.model, self.data)
|
||||
|
||||
mat = np.empty((3, 10), np.float64)
|
||||
mujoco.mj_angmomMat(self.model, self.data, mat, 0)
|
||||
np.testing.assert_almost_equal(mat @ self.data.qvel,
|
||||
self.data.subtree_angmom[0, :])
|
||||
|
||||
def test_mj_jacSite(self): # pylint: disable=invalid-name
|
||||
mujoco.mj_forward(self.model, self.data)
|
||||
site_id = mujoco.mj_name2id(self.model, mujoco.mjtObj.mjOBJ_SITE, 'mysite')
|
||||
|
||||
@@ -444,6 +444,14 @@ PYBIND11_MODULE(_functions, pymodule) {
|
||||
jacr.has_value() ? jacr->data() : nullptr,
|
||||
&(*point)[0], &(*axis)[0], body);
|
||||
});
|
||||
Def<traits::mj_angmomMat>(
|
||||
pymodule, [](const raw::MjModel* m, raw::MjData* d,
|
||||
Eigen::Ref<EigenArrayXX> mat, int body) {
|
||||
if (mat.rows() != 3 || mat.cols() != m->nv) {
|
||||
throw py::type_error("mat should be of shape (3, nv)");
|
||||
}
|
||||
return InterceptMjErrors(::mj_angmomMat)(m, d, mat.data(), body);
|
||||
});
|
||||
Def<traits::mj_name2id>(pymodule);
|
||||
Def<traits::mj_id2name>(pymodule);
|
||||
Def<traits::mj_fullM>(
|
||||
|
||||
Reference in New Issue
Block a user