|  | 
|  | static-contact-dynamics.a0 = np.zeros(model.nv) | 
|  | 
|  | static-contact-dynamics.acc | 
|  | 
|  | static-contact-dynamics.bl_id = model.getFrameId("base_link") | 
|  | 
|  | static-contact-dynamics.collision_model | 
|  | 
|  | static-contact-dynamics.data = model.createData() | 
|  | 
| list | static-contact-dynamics.feet_ids = [model.getFrameId(n) for n in feet_names] | 
|  | 
| list | static-contact-dynamics.feet_names = ["FL_FOOT", "FR_FOOT", "HL_FOOT", "HR_FOOT"] | 
|  | 
|  | static-contact-dynamics.fext__bl = pin.Force(ls__bl[joint_ids.index(joint.id)]) | 
|  | 
| list | static-contact-dynamics.fs_ext = [pin.Force(np.zeros(6)) for _ in range(len(model.joints))] | 
|  | 
|  | static-contact-dynamics.g_bl = g_grav[:6] | 
|  | 
|  | static-contact-dynamics.g_grav = pin.rnea(model, data, q0, v0, a0) | 
|  | 
|  | static-contact-dynamics.g_j = g_grav[6:] | 
|  | 
|  | static-contact-dynamics.Jc__feet_bl_T = np.zeros([6, 3 * ncontact]) | 
|  | 
|  | static-contact-dynamics.Jc__feet_j_T = np.zeros([12, 3 * ncontact]) | 
|  | 
| list | static-contact-dynamics.joint_ids = [model.getJointId(n) for n in joint_names] | 
|  | 
| list | static-contact-dynamics.joint_names = ["FL_KFE", "FR_KFE", "HL_KFE", "HR_KFE"] | 
|  | 
| list | static-contact-dynamics.Js__feet_bl = [np.copy(J[:3, :6]) for J in Js__feet_q] | 
|  | 
| list | static-contact-dynamics.Js__feet_q | 
|  | 
| list | static-contact-dynamics.Js_feet3d_q = [np.copy(J[:3, :]) for J in Js__feet_q] | 
|  | 
| list | static-contact-dynamics.Js_feet_j = [np.copy(J[:3, 6:]) for J in Js__feet_q] | 
|  | 
|  | static-contact-dynamics.l_sp__bl = data.oMf[bl_id].actInv(data.oMf[foot_id].act(l_sp__f)) | 
|  | 
|  | static-contact-dynamics.l_sp__f = pin.Force(l__f, np.zeros(3)) | 
|  | 
|  | static-contact-dynamics.linewidth | 
|  | 
|  | static-contact-dynamics.ls = np.linalg.pinv(Jc__feet_bl_T) @ g_bl | 
|  | 
| list | static-contact-dynamics.ls__bl = [] | 
|  | 
|  | static-contact-dynamics.ls__f = np.split(ls, ncontact) | 
|  | 
| string | static-contact-dynamics.mesh_dir = pinocchio_model_dir | 
|  | 
|  | static-contact-dynamics.model | 
|  | 
| string | static-contact-dynamics.model_path = pinocchio_model_dir / "example-robot-data/robots" | 
|  | 
|  | static-contact-dynamics.ncontact = len(feet_names) | 
|  | 
| string | static-contact-dynamics.pinocchio_model_dir = Path(__file__).parent.parent / "models" | 
|  | 
|  | static-contact-dynamics.q0 | 
|  | 
|  | static-contact-dynamics.tau = g_j - Jc__feet_j_T @ ls | 
|  | 
|  | static-contact-dynamics.tau_rnea = pin.rnea(model, data, q0, v0, a0, fs_ext) | 
|  | 
| string | static-contact-dynamics.urdf_filename = "solo12.urdf" | 
|  | 
| string | static-contact-dynamics.urdf_model_path = model_path / "solo_description/robots" / urdf_filename | 
|  | 
|  | static-contact-dynamics.v0 = np.zeros(model.nv) | 
|  | 
|  | static-contact-dynamics.visual_model | 
|  |