示例#1
0
    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')
示例#2
0
    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')
示例#4
0
    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')