def read_human_kinematic(matlab_data): # dict of correspondance notation matlab_dict = {} matlab_dict['shoulderCenter'] = 'shoulder_C' matlab_dict['shoulderRight'] = 'shoulder_R' matlab_dict['shoulderLeft'] = 'shoulder_L' matlab_dict['elbowRight'] = 'elbow_R' matlab_dict['wristRight'] = 'wrist_R' matlab_dict['handRight'] = 'hand_R' # create skeleton data skel_data = {} for joint in matlab_data: joint_name = matlab_dict[joint['name']] joint_pos = joint['xyz'] skel_data[joint_name]['position'] = joint_pos # appened fake values for the res of the body value = [0,0,0] skel_data['head']['position'] = value skel_data['elbow_L']['position'] = value skel_data['wrist_L']['position'] = value skel_data['hand_L']['position'] = value skel_data['spine']['position'] = value skel_data['hip_C']['position'] = value skel_data['hip_L']['position'] = value skel_data['hip_R']['position'] = value # get the angles from the skeleton reba_data = skeleton_to_joints.convert_skel_to_joints(skel_data) # put fake values for the fake angles reba_data['shoulder_L'] = value reba_data['elbow_L'] = value reba_data['wrist_L'] = value reba_data['neck'] = value reba_data['trunk'] = value return reba_data
def process_skeleton(self, skeleton): # first convert the skeleton data to the joints angles joints_data = skel.convert_skel_to_joints(skeleton.joints) print joints_data # calculate the reba score reba_score = self.reba.assess(joints_data) self.show_reba_score()
def process_skeleton(self, skeleton): # first convert the skeleton data to the joints angles joints_data = skel.convert_skel_to_joints(skeleton.joints) print joints_data # calculate the reba score reba_score = self.reba.assess(joints_data) self.show_reba_score()
import json from pause.assessment import Assessment from pause import skeleton_to_joints as skel import sys if __name__ == '__main__': name = sys.argv[1] filename = '/tmp/'+ name + '.json' with open(filename) as data_file: skel_data = json.load(data_file) # convert skeleton to joints joints_data = skel.convert_skel_to_joints(skel_data) print joints_data # assess the posture reba = Assessment(25) score = reba.assess(joints_data) print 'name : {}, score = {}'.format(name,score)
import json from pause.assessment import Assessment from pause import skeleton_to_joints as skel import sys if __name__ == '__main__': name = sys.argv[1] filename = '/tmp/' + name + '.json' with open(filename) as data_file: skel_data = json.load(data_file) # convert skeleton to joints joints_data = skel.convert_skel_to_joints(skel_data) print joints_data # assess the posture reba = Assessment(25) score = reba.assess(joints_data) print 'name : {}, score = {}'.format(name, score)
def test_skeleton_to_joints(self): filename = '/home/buschbapti/Documents/pause/data_test/pose_data_test.json' with open(filename) as data_file: data = json.load(data_file) ######### neutral posture ########### print "neutral" joints_data = cv.convert_skel_to_joints(data["neutral"]) self.assertAlmostEqual(joints_data["shoulder_L"][0],0.) self.assertAlmostEqual(joints_data["shoulder_L"][1],0.) self.assertAlmostEqual(joints_data["shoulder_R"][0],0.) self.assertAlmostEqual(joints_data["shoulder_R"][1],0.) self.assertAlmostEqual(joints_data["elbow_L"][0],0.) self.assertAlmostEqual(joints_data["elbow_R"][0],0.) self.assertAlmostEqual(joints_data["wrist_L"][0],0.) self.assertAlmostEqual(joints_data["wrist_R"][0],0.) self.assertAlmostEqual(joints_data["wrist_L"][1],0.) self.assertAlmostEqual(joints_data["wrist_R"][1],0.) self.assertAlmostEqual(joints_data["neck"][0],0.) self.assertAlmostEqual(joints_data["neck"][0],0.) self.write_joint_angles(joints_data, "neutral") print "---------" ######### shoulder flexion ########### print "shoulder_flexion" joints_data = cv.convert_skel_to_joints(data["shoulder_flexion"]) self.assertAlmostEqual(joints_data["shoulder_L"][0],90.) self.assertAlmostEqual(joints_data["shoulder_R"][0],90.) self.write_joint_angles(joints_data, "shoulder_flexion") print "---------" ######### shoulder abduction ########### print "shoulder_abduction" joints_data = cv.convert_skel_to_joints(data["shoulder_abduction"]) self.assertAlmostEqual(joints_data["shoulder_L"][1],90.) self.assertAlmostEqual(joints_data["shoulder_R"][1],90.) self.write_joint_angles(joints_data, "shoulder_abduction") print "---------" ######### elbow flexion ########### print "elbow flexion" joints_data = cv.convert_skel_to_joints(data["elbow_flexion"]) self.assertAlmostEqual(joints_data["elbow_L"][0],90.) self.assertAlmostEqual(joints_data["elbow_R"][0],90.) self.write_joint_angles(joints_data, "elbow_flexion") print "---------" ######### wrist flexion ########### print "wrist flexion" joints_data = cv.convert_skel_to_joints(data["wrist_flexion"]) self.assertAlmostEqual(joints_data["wrist_L"][0],90.) self.assertAlmostEqual(joints_data["wrist_R"][0],90.) self.write_joint_angles(joints_data, "wrist_flexion") print "---------" ######### neck flexion ########### print "neck flexion" joints_data = cv.convert_skel_to_joints(data["neck_flexion"]) self.assertAlmostEqual(joints_data["neck"][0],45.) self.assertAlmostEqual(joints_data["neck"][0],45.) self.write_joint_angles(joints_data, "neck_flexion") print "---------" ######### neck bending ########### print "neck bending" joints_data = cv.convert_skel_to_joints(data["neck_bending"]) self.assertAlmostEqual(joints_data["neck"][1],45.) self.assertAlmostEqual(joints_data["neck"][1],45.) self.write_joint_angles(joints_data, "neck_bending") print "---------" ######### trunk flexion ########### print "trunk flexion" joints_data = cv.convert_skel_to_joints(data["trunk_flexion"]) self.assertAlmostEqual(joints_data["trunk"][0],45.) self.assertAlmostEqual(joints_data["trunk"][0],45.) self.write_joint_angles(joints_data, "trunk_flexion") print "---------" ######### trunk bending ########### print "trunk bending" joints_data = cv.convert_skel_to_joints(data["trunk_bending"]) self.assertAlmostEqual(joints_data["trunk"][1],45.) self.assertAlmostEqual(joints_data["trunk"][1],45.) self.write_joint_angles(joints_data, "trunk_bending") print "---------"
def test_skeleton_to_joints(self): filename = '/home/buschbapti/Documents/pause/data_test/pose_data_test.json' with open(filename) as data_file: data = json.load(data_file) ######### neutral posture ########### print "neutral" joints_data = cv.convert_skel_to_joints(data["neutral"]) self.assertAlmostEqual(joints_data["shoulder_L"][0], 0.) self.assertAlmostEqual(joints_data["shoulder_L"][1], 0.) self.assertAlmostEqual(joints_data["shoulder_R"][0], 0.) self.assertAlmostEqual(joints_data["shoulder_R"][1], 0.) self.assertAlmostEqual(joints_data["elbow_L"][0], 0.) self.assertAlmostEqual(joints_data["elbow_R"][0], 0.) self.assertAlmostEqual(joints_data["wrist_L"][0], 0.) self.assertAlmostEqual(joints_data["wrist_R"][0], 0.) self.assertAlmostEqual(joints_data["wrist_L"][1], 0.) self.assertAlmostEqual(joints_data["wrist_R"][1], 0.) self.assertAlmostEqual(joints_data["neck"][0], 0.) self.assertAlmostEqual(joints_data["neck"][0], 0.) self.write_joint_angles(joints_data, "neutral") print "---------" ######### shoulder flexion ########### print "shoulder_flexion" joints_data = cv.convert_skel_to_joints(data["shoulder_flexion"]) self.assertAlmostEqual(joints_data["shoulder_L"][0], 90.) self.assertAlmostEqual(joints_data["shoulder_R"][0], 90.) self.write_joint_angles(joints_data, "shoulder_flexion") print "---------" ######### shoulder abduction ########### print "shoulder_abduction" joints_data = cv.convert_skel_to_joints(data["shoulder_abduction"]) self.assertAlmostEqual(joints_data["shoulder_L"][1], 90.) self.assertAlmostEqual(joints_data["shoulder_R"][1], 90.) self.write_joint_angles(joints_data, "shoulder_abduction") print "---------" ######### elbow flexion ########### print "elbow flexion" joints_data = cv.convert_skel_to_joints(data["elbow_flexion"]) self.assertAlmostEqual(joints_data["elbow_L"][0], 90.) self.assertAlmostEqual(joints_data["elbow_R"][0], 90.) self.write_joint_angles(joints_data, "elbow_flexion") print "---------" ######### wrist flexion ########### print "wrist flexion" joints_data = cv.convert_skel_to_joints(data["wrist_flexion"]) self.assertAlmostEqual(joints_data["wrist_L"][0], 90.) self.assertAlmostEqual(joints_data["wrist_R"][0], 90.) self.write_joint_angles(joints_data, "wrist_flexion") print "---------" ######### neck flexion ########### print "neck flexion" joints_data = cv.convert_skel_to_joints(data["neck_flexion"]) self.assertAlmostEqual(joints_data["neck"][0], 45.) self.assertAlmostEqual(joints_data["neck"][0], 45.) self.write_joint_angles(joints_data, "neck_flexion") print "---------" ######### neck bending ########### print "neck bending" joints_data = cv.convert_skel_to_joints(data["neck_bending"]) self.assertAlmostEqual(joints_data["neck"][1], 45.) self.assertAlmostEqual(joints_data["neck"][1], 45.) self.write_joint_angles(joints_data, "neck_bending") print "---------" ######### trunk flexion ########### print "trunk flexion" joints_data = cv.convert_skel_to_joints(data["trunk_flexion"]) self.assertAlmostEqual(joints_data["trunk"][0], 45.) self.assertAlmostEqual(joints_data["trunk"][0], 45.) self.write_joint_angles(joints_data, "trunk_flexion") print "---------" ######### trunk bending ########### print "trunk bending" joints_data = cv.convert_skel_to_joints(data["trunk_bending"]) self.assertAlmostEqual(joints_data["trunk"][1], 45.) self.assertAlmostEqual(joints_data["trunk"][1], 45.) self.write_joint_angles(joints_data, "trunk_bending") print "---------"