def setupJointLimitTask(): featureJl = FeatureJointLimits('featureJl') featureJl.actuate() dyn = robot.dynamic plug(dyn.signal('position'), featureJl.signal('joint')) plug(dyn.signal('upperJl'), featureJl.signal('upperJl')) plug(dyn.signal('lowerJl'), featureJl.signal('lowerJl')) taskJl = Task('taskJl') taskJl.add('featureJl') taskJl.signal('controlGain').value = .1
class Nao(AbstractHumanoidRobot): """ This class instanciates a Nao robot as a humanoid robot """ halfSitting = tuple([0.,0.,.31,0.,0.,0.] + halfSitting) def __init__(self, name, filename): AbstractHumanoidRobot.__init__(self, name) self.OperationalPoints.append('waist') p = Parser(self.name + '_dynamic', filename) self.dynamic = p.parse() self.dimension = self.dynamic.getDimension() if self.dimension != len(self.halfSitting): raise RuntimeError("invalid half-sitting pose") self.initializeRobot() self.compoundDrive = CompoundDrive(self.name + '_compoundDrive', self.device) self.compoundDriveTask = Task(self.name + '_compoundDriveTask') self.compoundDriveTask.add(self.name + '_compoundDrive') self.compoundDriveTask.signal('controlGain').value = 1.