Spaces:
Sleeping
Sleeping
from lib.body_models.skel.osim_rot import ConstantCurvatureJoint, CustomJoint, EllipsoidJoint, PinJoint, WalkerKnee | |
Q_COMPONENTS = [ | |
{'qid': 0, 'name': 'pelvis', 'jid': 0}, | |
{'qid': 1, 'name': 'pelvis', 'jid': 0}, | |
{'qid': 2, 'name': 'pelvis', 'jid': 0}, | |
{'qid': 3, 'name': 'femur-r', 'jid': 1}, | |
{'qid': 4, 'name': 'femur-r', 'jid': 1}, | |
{'qid': 5, 'name': 'femur-r', 'jid': 1}, | |
{'qid': 6, 'name': 'tibia-r', 'jid': 2}, | |
{'qid': 7, 'name': 'talus-r', 'jid': 3}, | |
{'qid': 8, 'name': 'calcn-r', 'jid': 4}, | |
{'qid': 9, 'name': 'toes-r', 'jid': 5}, | |
{'qid': 10, 'name': 'femur-l', 'jid': 6}, | |
{'qid': 11, 'name': 'femur-l', 'jid': 6}, | |
{'qid': 12, 'name': 'femur-l', 'jid': 6}, | |
{'qid': 13, 'name': 'tibia-l', 'jid': 7}, | |
{'qid': 14, 'name': 'talus-l', 'jid': 8}, | |
{'qid': 15, 'name': 'calcn-l', 'jid': 9}, | |
{'qid': 16, 'name': 'toes-l', 'jid': 10}, | |
{'qid': 17, 'name': 'lumbar', 'jid': 11}, | |
{'qid': 18, 'name': 'lumbar', 'jid': 11}, | |
{'qid': 19, 'name': 'lumbar', 'jid': 11}, | |
{'qid': 20, 'name': 'thorax', 'jid': 12}, | |
{'qid': 21, 'name': 'thorax', 'jid': 12}, | |
{'qid': 22, 'name': 'thorax', 'jid': 12}, | |
{'qid': 23, 'name': 'head', 'jid': 13}, | |
{'qid': 24, 'name': 'head', 'jid': 13}, | |
{'qid': 25, 'name': 'head', 'jid': 13}, | |
{'qid': 26, 'name': 'scapula-r', 'jid': 14}, | |
{'qid': 27, 'name': 'scapula-r', 'jid': 14}, | |
{'qid': 28, 'name': 'scapula-r', 'jid': 14}, | |
{'qid': 29, 'name': 'humerus-r', 'jid': 15}, | |
{'qid': 30, 'name': 'humerus-r', 'jid': 15}, | |
{'qid': 31, 'name': 'humerus-r', 'jid': 15}, | |
{'qid': 32, 'name': 'ulna-r', 'jid': 16}, | |
{'qid': 33, 'name': 'radius-r', 'jid': 17}, | |
{'qid': 34, 'name': 'hand-r', 'jid': 18}, | |
{'qid': 35, 'name': 'hand-r', 'jid': 18}, | |
{'qid': 36, 'name': 'scapula-l', 'jid': 19}, | |
{'qid': 37, 'name': 'scapula-l', 'jid': 19}, | |
{'qid': 38, 'name': 'scapula-l', 'jid': 19}, | |
{'qid': 39, 'name': 'humerus-l', 'jid': 20}, | |
{'qid': 40, 'name': 'humerus-l', 'jid': 20}, | |
{'qid': 41, 'name': 'humerus-l', 'jid': 20}, | |
{'qid': 42, 'name': 'ulna-l', 'jid': 21}, | |
{'qid': 43, 'name': 'radius-l', 'jid': 22}, | |
{'qid': 44, 'name': 'hand-l', 'jid': 23}, | |
{'qid': 45, 'name': 'hand-l', 'jid': 23}, | |
] | |
QID2JID = {c['qid']: c['jid'] for c in Q_COMPONENTS} | |
JID2QIDS = {} | |
for c in Q_COMPONENTS: | |
jid = c['jid'] | |
JID2QIDS[jid] = [] if jid not in JID2QIDS else JID2QIDS[jid] | |
JID2QIDS[jid].append(c['qid']) | |
JID2DOF = {jid: len(qids) for jid, qids in JID2QIDS.items()} | |
DoF1_JIDS = [2, 3, 4, 5, 7, 8, 9, 10, 16, 17, 21, 22] # (J1=12,) | |
DoF2_JIDS = [18, 23] # (J2=2,) | |
DoF3_JIDS = [0, 1, 6, 11, 12, 13, 14, 15, 19, 20] # (J3=10,) | |
DoF1_QIDS = [6, 7, 8, 9, 13, 14, 15, 16, 32, 33, 42, 43] # (Q1=12,) | |
DoF2_QIDS = [34, 35, 44, 45] # (Q2=4,) | |
DoF3_QIDS = [0, 1, 2, 3, 4, 5, 10, 11, 12, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 38, 39, 40, 41] # (Q3=30,) | |
# Copied from the `skel_model.py`. | |
# Change all axis (except those PinJoint) to positive and update the flip if needed. | |
JOINTS_DEF = [ | |
CustomJoint(axis=[[0,0,1], [1,0,0], [0,1,0]], axis_flip=[1, 1, 1]), # 0 pelvis | |
CustomJoint(axis=[[0,0,1], [1,0,0], [0,1,0]], axis_flip=[1, 1, 1]), # 1 femur_r | |
WalkerKnee(), # 2 tibia_r | |
PinJoint(parent_frame_ori = [0.175895, -0.105208, 0.0186622]), # 3 talus_r Field taken from .osim Joint-> frames -> PhysicalOffsetFrame -> orientation | |
PinJoint(parent_frame_ori = [-1.76818999, 0.906223, 1.8196000]), # 4 calcn_r | |
PinJoint(parent_frame_ori = [-3.141589999, 0.6199010, 0]), # 5 toes_r | |
CustomJoint(axis=[[0,0,1], [1,0,0], [0,1,0]], axis_flip=[1, -1, -1]), # 6 femur_l | |
WalkerKnee(), # 7 tibia_l | |
PinJoint(parent_frame_ori = [0.175895, -0.105208, 0.0186622]), # 8 talus_l | |
PinJoint(parent_frame_ori = [1.768189999 ,-0.906223, 1.8196000]), # 9 calcn_l | |
PinJoint(parent_frame_ori = [-3.141589999, -0.6199010, 0]), # 10 toes_l | |
ConstantCurvatureJoint(axis=[[1,0,0], [0,0,1], [0,1,0]], axis_flip=[1, 1, 1]), # 11 lumbar | |
ConstantCurvatureJoint(axis=[[1,0,0], [0,0,1], [0,1,0]], axis_flip=[1, 1, 1]), # 12 thorax | |
ConstantCurvatureJoint(axis=[[1,0,0], [0,0,1], [0,1,0]], axis_flip=[1, 1, 1]), # 13 head | |
EllipsoidJoint(axis=[[0,1,0], [0,0,1], [1,0,0]], axis_flip=[1, -1, -1]), # 14 scapula_r | |
CustomJoint(axis=[[1,0,0], [0,1,0], [0,0,1]], axis_flip=[1, 1, 1]), # 15 humerus_r | |
CustomJoint(axis=[[0.0494, 0.0366, 0.99810825]], axis_flip=[[1]]), # 16 ulna_r | |
CustomJoint(axis=[[-0.01716099, 0.99266564, -0.11966796]], axis_flip=[[1]]), # 17 radius_r | |
CustomJoint(axis=[[1,0,0], [0,0,1]], axis_flip=[1, -1]), # 18 hand_r | |
EllipsoidJoint(axis=[[0,1,0], [0,0,1], [1,0,0]], axis_flip=[1, 1, 1]), # 19 scapula_l | |
CustomJoint(axis=[[1,0,0], [0,1,0], [0,0,1]], axis_flip=[1, 1, 1]), # 20 humerus_l | |
CustomJoint(axis=[[-0.0494, -0.0366, 0.99810825]], axis_flip=[[1]]), # 21 ulna_l | |
CustomJoint(axis=[[0.01716099, -0.99266564, -0.11966796]], axis_flip=[[1]]), # 22 radius_l | |
CustomJoint(axis=[[1,0,0], [0,0,1]], axis_flip=[-1, -1]), # 23 hand_l | |
] | |
N_JOINTS = len(JOINTS_DEF) # 24 | |