Source code for morse.middleware.pocolibs.sensors.human_posture

import logging; logger = logging.getLogger("morse." + __name__)
from morse.middleware.pocolibs_datastream import *
from spark.struct import *

[docs]class HumanPoster(PocolibsDataStreamOutput): _type_name = "STRUCT_SPARK_CONFIGURATION" _type_url = "http://trac.laas.fr/git/spark-genom/tree/sparkStruct.h#n226"
[docs] def initialize(self): raise NotImplementedError("This Pocolibs exporter has not been updated for the current human avatar, and won't work") PocolibsDataStreamOutput.initialize(self, STRUCT_SPARK_CONFIGURATION) self.obj = STRUCT_SPARK_CONFIGURATION() self.obj.dofNb = 50 self.obj.changed = 1
[docs] def default(self, component): raw_dofs = list(self.data.values()) #for i in range(self.obj.dofNb): for i in range(18): self.obj.dof[i] = raw_dofs[i] #swap pitch and yaw self.obj.dof[5] = raw_dofs[3] self.obj.dof[3] = raw_dofs[5] #swap right shoulder: X <- Y, Y <- Z, Z <- X self.obj.dof[18] = raw_dofs[19] self.obj.dof[19] = raw_dofs[20] self.obj.dof[20] = raw_dofs[18] #Right arm length self.obj.dof[21] = 0 self.obj.dof[22] = raw_dofs[21] self.obj.dof[23] = 0 for i in range(24, 27): self.obj.dof[i] = raw_dofs[i-2] #left shoulder: #X <- Y self.obj.dof[27] = -raw_dofs[26] #Y <- Z self.obj.dof[28] = raw_dofs[27] #Z <- X self.obj.dof[29] = raw_dofs[25] self.obj.dof[30] = 0 self.obj.dof[31] = raw_dofs[28] self.obj.dof[32] = 0 for i in range(33, self.obj.dofNb): self.obj.dof[i] = raw_dofs[i-4] self.write(self.obj)