예제 #1
0
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
예제 #2
0
    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()
예제 #3
0
    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()
예제 #4
0
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)
예제 #5
0
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)
예제 #6
0
    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 "---------"
예제 #7
0
    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 "---------"