def retarget(self,source_joint_angles): '''returns the retargeted target joint angles given the source joint angles. ''' angles_matrix = np.matrix(source_joint_angles) self.source = mlab.setJointAngles(self.source, angles_matrix) self.target = mlab.easy_retarget(self.source, self.target) return self.target.joints.angles
pr2_initial_angles = np.matrix([0,0,0,0]) pr2 = mlab.setJointAngles(pr2, pr2_initial_angles) human_initial_angles = np.matrix([0,-110,40,-60]) human = mlab.setJointAngles(human, human_initial_angles) # Visualize chains with the draw() function. mlab.figure() mlab.grid('on') mlab.headSphere() #creates a dummy head that provides context. mlab.draw(pr2,'k') mlab.draw(human) # ----------------------------------------------------------- # # Retargeting Chains: # ----------------------------------------------------------- # # easy_retarget(source, target) abstracts away all the messy bits. pr2_retargeted = mlab.easy_retarget(human, pr2) # draw on the open figure: mlab.draw(pr2_retargeted,'g') mlab.title('Retargeting Demo') mlab.legend('black - pr2 initial pose','blue - human source pose', 'green - pr2 retargeted pose')