def setup(cls, robot): robot._primitive_manager._filter = partial(numpy.sum, axis=0) if robot.simulated: cls.vrep_hack(robot) for m in robot.motors: m.compliant_behavior = 'dummy' m.goto_behavior = 'minjerk' # Add Kinematic chains for each arm lc = IKChain.from_poppy_creature(robot, motors=robot.torso + robot.l_arm, passiv=robot.torso, tip=[0, 0.18, 0]) rc = IKChain.from_poppy_creature(robot, motors=robot.torso + robot.r_arm, passiv=robot.torso, tip=[0, 0.18, 0], reversed_motors=[robot.r_shoulder_x]) robot.l_arm_chain = lc robot.r_arm_chain = rc robot.attach_primitive(LimitTorque(robot, torque_max=80), 'limit_torque') #robot.limit_torque.start() # Temperature monitoring if not in vrep if not robot.simulated: sound_file = os.path.join( os.path.dirname(os.path.abspath(__file__)), 'media', 'sounds', 'error.wav') robot.attach_primitive(TemperatureMonitor(robot, sound=sound_file), 'temperature_monitoring') robot.temperature_monitoring.start() robot.attach_primitive(SimpleBodyBeatMotion(robot, 50), 'dance_beat_motion') # Idle primitives robot.attach_primitive(UpperBodyIdleMotion(robot, 50), 'upper_body_idle_motion') robot.attach_primitive(HeadIdleMotion(robot, 50), 'head_idle_motion') # Interaction primitives robot.attach_primitive(TorsoTurnCompliant(robot, 300), 'torso_turn_compliant') robot.attach_primitive(ArmsTurnCompliant(robot, 50), 'arms_turn_compliant') robot.attach_primitive(PuppetMaster(robot, 50), 'arms_copy_motion')
def setup(cls, robot): robot._primitive_manager._filter = partial(sum, axis=0) c = IKChain.from_poppy_creature(robot, motors=robot.motors, passiv=[], tip=[0, 0, -0.07]) robot.chain = c robot.attach_primitive(SafePowerUp(robot), 'safe_power_up') robot.attach_primitive(Dance(robot), 'dance') robot.attach_primitive(BasePosture(robot, 2.), 'base_posture') robot.attach_primitive(RestPosture(robot, 2.), 'rest_posture') robot.attach_primitive(CuriousPosture(robot, 2.), 'curious_posture') robot.attach_primitive(TetrisPosture(robot, 2.), 'tetris_posture') if not robot.simulated and hasattr(robot, 'marker_detector'): robot.attach_primitive(TrackingFeedback(robot, 25.), 'tracking_feedback') for m in robot.motors: m.pid = (4, 2, 0) m.torque_limit = 70. m.led = 'off' if not robot.simulated and hasattr(robot, 'face_tracking'): robot.attach_primitive( FaceTracking(robot, 10, robot.face_detector), 'face_tracking')
def setup(cls, robot): robot._primitive_manager._filter = partial(sum, axis=0) c = IKChain.from_poppy_creature(robot, motors=robot.motors, passiv=[], tip=[0, 0, -0.07]) robot.chain = c robot.attach_primitive(SafePowerUp(robot), 'safe_power_up') robot.attach_primitive(Dance(robot), 'dance') robot.attach_primitive(Jump(robot), 'jump') robot.attach_primitive(BasePosture(robot, 2.), 'base_posture') robot.attach_primitive(RestPosture(robot, 2.), 'rest_posture') robot.attach_primitive(CuriousPosture(robot, 2.), 'curious_posture') robot.attach_primitive(TetrisPosture(robot, 2.), 'tetris_posture') if not robot.simulated and hasattr(robot, 'marker_detector'): robot.attach_primitive(TrackingFeedback(robot, 25.), 'tracking_feedback') robot.tracking_feedback.start() for m in robot.motors: m.pid = (4, 2, 0) m.torque_limit = 70. m.led = 'off' if not robot.simulated and hasattr(robot, 'face_tracking'): robot.attach_primitive(FaceTracking(robot, 10, robot.face_detector), 'face_tracking')
def setup(cls, robot): robot._primitive_manager._filter = partial(numpy.sum, axis=0) if robot.simulated: cls.vrep_hack(robot) for m in robot.motors: m.compliant_behavior = 'dummy' m.goto_behavior = 'minjerk' # Add Kinematic chains for each arm lc = IKChain.from_poppy_creature(robot, motors=robot.torso + robot.l_arm, passiv=robot.torso, tip=[0, 0.18, 0]) rc = IKChain.from_poppy_creature(robot, motors=robot.torso + robot.r_arm, passiv=robot.torso, tip=[0, 0.18, 0], reversed_motors=[robot.r_shoulder_x]) robot.l_arm_chain = lc robot.r_arm_chain = rc robot.attach_primitive(LimitTorque(robot, torque_max=80), 'limit_torque') #robot.limit_torque.start() # Temperature monitoring if not in vrep if not robot.simulated: sound_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'media', 'sounds', 'error.wav') robot.attach_primitive(TemperatureMonitor(robot, sound=sound_file), 'temperature_monitoring') robot.temperature_monitoring.start() robot.attach_primitive(SimpleBodyBeatMotion(robot, 50), 'dance_beat_motion') # Idle primitives robot.attach_primitive(UpperBodyIdleMotion(robot, 50), 'upper_body_idle_motion') robot.attach_primitive(HeadIdleMotion(robot, 50), 'head_idle_motion') # Interaction primitives robot.attach_primitive(TorsoTurnCompliant(robot, 300), 'torso_turn_compliant') robot.attach_primitive(ArmsTurnCompliant(robot, 50), 'arms_turn_compliant') robot.attach_primitive(PuppetMaster(robot, 50), 'arms_copy_motion')