예제 #1
0
파일: test_kinio.py 프로젝트: afcarl/pydyn
    def test_kinmotor_ctrl(self):
        _m13 = kinmotor.KinMotor('AX-12', 13)
        _m17 = kinmotor.KinMotor('AX-12', 17)
        c = kinio.KinCable(_m13.ports[1], _m17.ports[0])

        self.kio.connect(_m13.ports[0])
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)
        ctrl.start()

        for motor in ctrl.motors:
            motor.angle_limits = (-150, 150)
            motor.max_torque = 50
            motor.status_return_level = 1
            motor.torque_limit = 50

        sleep = 0.2
        for motor in ctrl.motors:
            motor.position = -10

        time.sleep(sleep)
        for motor in ctrl.motors:
            self.assertTrue(-10.2 <= motor.position <= -9.8)
            motor.position = 10

        time.sleep(sleep)
        for motor in ctrl.motors:
            self.assertTrue(9.8 <= motor.position <= 10.2)

        ctrl.close()
예제 #2
0
 def setUp(self):
     self.mcom = fakecom.FakeCom()
     self.mcom._add_motor(3, 'AX-12')
     self.mcom._add_motor(17, 'AX-12')
     self.ctrl = controller.DynamixelController(self.mcom)
     mids = self.ctrl.discover_motors(verbose=False)
     self.ctrl.load_motors(mids)
     self.ctrl.start()
예제 #3
0
파일: test_fake.py 프로젝트: afcarl/pydyn
    def test_copy_motor(self):
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)

        with self.assertRaises(RuntimeError):
            m = copy.copy(ctrl.motors[0])
        with self.assertRaises(RuntimeError):
            m = copy.deepcopy(ctrl.motors[0])
예제 #4
0
파일: test_kinio.py 프로젝트: afcarl/pydyn
    def test_kinmotor_discover(self):
        m13 = kinmotor.KinMotor('AX-12', 13)
        m17 = kinmotor.KinMotor('AX-12', 17)
        c = kinio.KinCable(m13.ports[1], m17.ports[0])

        self.kio.connect(m13.ports[0])
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        self.assertEqual(len(mids), 2)
        self.assertEqual(set(mids), set([13, 17]))
예제 #5
0
 def setUp(self):
     self.kio = kinio.KinSerial()
     self.mcom = serialcom.SerialCom(self.kio)
     m13 = kinmotor.KinMotor('AX-12', 13)
     m17 = kinmotor.KinMotor('AX-12', 17)
     c = kinio.KinCable(m13.ports[1], m17.ports[0])
     self.kio.connect(m13.ports[0])
     self.ctrl = controller.DynamixelController(self.mcom)
     mids = self.ctrl.discover_motors(verbose=False)
     self.ctrl.load_motors(mids)
     self.ctrl.start()
예제 #6
0
파일: test_fake.py 프로젝트: afcarl/pydyn
    def test_setattr(self):
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)
        m = ctrl.motors[0]

        with self.assertRaises(AttributeError):
            m.does_not_exists = 312

        m.cw_angle_limit = 40
        m.compliant = False
예제 #7
0
파일: test_kinio.py 프로젝트: afcarl/pydyn
    def test_kinmotor_ctrl(self):
        m13 = kinmotor.KinMotor('AX-12', 13)
        m17 = kinmotor.KinMotor('AX-12', 17)
        c = kinio.KinCable(m13.ports[1], m17.ports[0])

        self.kio.connect(m13.ports[0])
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)
        ctrl.start()
        time.sleep(0.3)
        ctrl.close()
예제 #8
0
파일: test_fake.py 프로젝트: afcarl/pydyn
    def test_sync_motor(self):
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)
        ctrl.start()

        m = ctrl.motors[0]
        m.goal_position_bytes = 312
        time.sleep(0.1)
        self.assertEqual(m.goal_position_bytes, 312)
        self.assertEqual(m.present_position, m.position)

        ctrl.stop()
예제 #9
0
    def test_motor(self):
        """DynamixelController"""
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)
        ctrl.start()
        m = ctrl.motors[0]

        time.sleep(0.1)

        # position checks
        m.goal_position = 0
        time.sleep(0.1)
        self.assertEqual(m.goal_position_bytes, 512)
예제 #10
0
파일: test_fake.py 프로젝트: afcarl/pydyn
    def test_motor(self):
        """DynamixelController"""
        ctrl = controller.DynamixelController(self.mcom)
        mids = ctrl.discover_motors(verbose=False)
        ctrl.load_motors(mids)
        m = ctrl.motors[0]

        # position checks
        m.goal_position_bytes = 0
        m.goal_position_bytes
        m.present_position_bytes
        with self.assertRaises(AttributeError):
            m.present_position_bytes = 0

        with self.assertRaises(ValueError):
            m.goal_position_bytes = 1024
        with self.assertRaises(ValueError):
            m.goal_position_bytes = -1
        with self.assertRaises(ValueError):
            m.max_torque_bytes = 1.3
예제 #11
0
파일: test_fake.py 프로젝트: afcarl/pydyn
 def test_ctrl(self):
     """DynamixelController"""
     ctrl = controller.DynamixelController(self.mcom)
     mids = ctrl.discover_motors(verbose=False)
     ctrl.load_motors(mids)