--- a +++ b/app/scratch/basis_position_anybody.py @@ -0,0 +1,73 @@ +from resources.AnyPyTools.anypytools import AnyPyProcess +from resources.AnyPyTools.anypytools import AnyMacro +from resources.AnyPyTools.anypytools import tools +from resources.AnyPyTools.anypytools.macro_commands import (MacroCommand, Load, SetValue, SetValue_random, Dump, + SaveDesign, LoadDesign, SaveValues, LoadValues, + UpdateValues, SaveData, OperationRun) +import os +import json +import numpy as np + + +app = AnyPyProcess(num_processes=1, + return_task_info=True, + anybodycon_path="C:/Program Files/AnyBody Technology/AnyBody.7.1/AnyBodyCon.exe") +macrolist = [ + Load('FreeHand.Main.any'), +] + +joint_values = ['Axes0', 'r0'] +joint_prefix = 'Main.HumanModel.BodyModel.Right.ShoulderArm.Seg.' +joints = { + 'RightElbow': {'path': joint_prefix + 'Radius', 'values': joint_values}, + 'RightHand': {'path': joint_prefix + 'WristJointSeg', 'values': joint_values}, + 'RightHandThumb2': {'path': joint_prefix + 'Hand.Finger1.Seg.Metacarpal', 'values': joint_values}, + 'RightHandThumb3': {'path': joint_prefix + 'Hand.Finger1.Seg.ProximalPhalanx', 'values': joint_values}, + 'RightHandThumb4': {'path': joint_prefix + 'Hand.Finger1.Seg.DistalPhalanx', 'values': joint_values}, + 'RightHandThumb4_Nub': {'path': joint_prefix + 'Hand.Finger1.Seg.DistalPhalanx.DistalJointSurfaceNode', + 'values': ['r']}, + 'RightHandIndex1': {'path': joint_prefix + 'Hand.Finger2.Seg.Metacarpal', 'values': joint_values}, + 'RightHandIndex2': {'path': joint_prefix + 'Hand.Finger2.Seg.ProximalPhalanx', 'values': joint_values}, + 'RightHandIndex3': {'path': joint_prefix + 'Hand.Finger2.Seg.MiddlePhalanx', 'values': joint_values}, + 'RightHandIndex4': {'path': joint_prefix + 'Hand.Finger2.Seg.DistalPhalanx', 'values': joint_values}, + 'RightHandIndex4_Nub': {'path': joint_prefix + 'Hand.Finger2.Seg.DistalPhalanx.DistalJointSurfaceNode', + 'values': ['r']}, + 'RightHandMiddle1': {'path': joint_prefix + 'Hand.Finger3.Seg.Metacarpal', 'values': joint_values}, + 'RightHandMiddle2': {'path': joint_prefix + 'Hand.Finger3.Seg.ProximalPhalanx', 'values': joint_values}, + 'RightHandMiddle3': {'path': joint_prefix + 'Hand.Finger3.Seg.MiddlePhalanx', 'values': joint_values}, + 'RightHandMiddle4': {'path': joint_prefix + 'Hand.Finger3.Seg.DistalPhalanx', 'values': joint_values}, + 'RightHandMiddle4_Nub': {'path': joint_prefix + 'Hand.Finger3.Seg.DistalPhalanx.DistalJointSurfaceNode', + 'values': ['r']}, + 'RightHandRing1': {'path': joint_prefix + 'Hand.Finger4.Seg.Metacarpal', 'values': joint_values}, + 'RightHandRing2': {'path': joint_prefix + 'Hand.Finger4.Seg.ProximalPhalanx', 'values': joint_values}, + 'RightHandRing3': {'path': joint_prefix + 'Hand.Finger4.Seg.MiddlePhalanx', 'values': joint_values}, + 'RightHandRing4': {'path': joint_prefix + 'Hand.Finger4.Seg.DistalPhalanx', 'values': joint_values}, + 'RightHandRing4_Nub': {'path': joint_prefix + 'Hand.Finger4.Seg.DistalPhalanx.DistalJointSurfaceNode', + 'values': ['r']}, + 'RightHandPinky1': {'path': joint_prefix + 'Hand.Finger5.Seg.Metacarpal', 'values': joint_values}, + 'RightHandPinky2': {'path': joint_prefix + 'Hand.Finger5.Seg.ProximalPhalanx', 'values': joint_values}, + 'RightHandPinky3': {'path': joint_prefix + 'Hand.Finger5.Seg.MiddlePhalanx', 'values': joint_values}, + 'RightHandPinky4': {'path': joint_prefix + 'Hand.Finger5.Seg.DistalPhalanx', 'values': joint_values}, + 'RightHandPinky4_Nub': {'path': joint_prefix + 'Hand.Finger5.Seg.DistalPhalanx.DistalJointSurfaceNode', + 'values': ['r']}} + +# Add the dumps to the macrolist +for joint_name in joints: + for value in joints[joint_name]['values']: + macrolist.append(Dump(joints[joint_name]['path'] + '.' + value)) + +cwd = os.getcwd() +os.chdir('D:\\RobinSean\\Sean\\5. Master\\Projekt CSE\\AnybodyModelle\\regensburg-ulm-hand-model\\AnyBody' + '\\Application\\Examples\\FreeHandMove') + +output = app.start_macro(macrolist) + +os.chdir(cwd) + +# save as json +result = {} +for joint_name in joints: + result[joint_name] = {} + for value in joints[joint_name]['values']: + result[joint_name][value] = np.ndarray.tolist(output[0][joints[joint_name]['path'] + '.' + value]) +json.dump(result, open('../config/anybody_joint_values.json', 'w'))