1 import pinocchio
as pin
4 from numpy.linalg
import norm, inv
5 from os.path import join, dirname, abspath
8 pinocchio_model_dir = join(dirname(dirname(str(abspath(__file__)))),
"models")
11 +
"/example-robot-data/robots/anymal_b_simple_description/robots/anymal.urdf"
13 model = pin.buildModelFromUrdf(urdf_filename)
14 data = model.createData()
16 q0 = pin.neutral(model)
19 feet_names = [
"LH_FOOT",
"RH_FOOT",
"LF_FOOT",
"RF_FOOT"]
21 for foot_name
in feet_names:
22 frame_id = model.getFrameId(foot_name)
23 feet_frame_ids.append(frame_id)
26 for fid
in feet_frame_ids:
27 frame = model.frames[fid]
28 cmodel = pin.RigidConstraintModel(
29 pin.ContactType.CONTACT_3D,
32 pin.LOCAL_WORLD_ALIGNED,
34 contact_models.append(cmodel)
36 contact_data = [cmodel.createData()
for cmodel
in contact_models]
38 pin.initConstraintDynamics(model, data, contact_models)
39 pin.crba(model, data, q0)
41 data.contact_chol.compute(model, data, contact_models, contact_data)
43 delassus_matrix = data.contact_chol.getInverseOperationalSpaceInertiaMatrix()
44 delassus_matrix_inv = data.contact_chol.getOperationalSpaceInertiaMatrix()