def test_A(self):
        l0 = rp.DHLink(sigma=0)
        l1 = rp.DHLink(sigma=1)
        l2 = rp.DHLink(sigma=0, mdh=0)
        l3 = rp.DHLink(sigma=1, mdh=1)
        l4 = rp.DHLink(flip=True)

        T0 = sm.SE3(np.array([
            [-1, 0, 0, 0],
            [0, -1, 0, 0],
            [0, 0, 1, 0],
            [0, 0, 0, 1]
        ]))

        T1 = sm.SE3(np.array([
            [1, 0, 0, 0],
            [0, 1, 0, 0],
            [0, 0, 1, np.pi],
            [0, 0, 0, 1]
        ]))

        nt.assert_array_almost_equal(l0.A(np.pi).A, T0.A)
        nt.assert_array_almost_equal(l1.A(np.pi).A, T1.A)
        nt.assert_array_almost_equal(l2.A(np.pi).A, T0.A)
        nt.assert_array_almost_equal(l3.A(np.pi).A, T1.A)
        nt.assert_array_almost_equal(l4.A(np.pi).A, T0.A)
    def test_sigma(self):
        l0 = rp.DHLink(sigma=0)
        l1 = rp.DHLink(sigma=1)

        self.assertEqual(l0.isrevolute(), True)
        self.assertEqual(l0.isprismatic(), False)
        self.assertEqual(l1.isrevolute(), False)
        self.assertEqual(l1.isprismatic(), True)
    def test_Tc(self):
        l0 = rp.DHLink(Tc=1)
        l1 = rp.DHLink(Tc=[1])
        l2 = rp.DHLink(Tc=[1, 2])

        Tc0 = np.array([1, -1])
        Tc1 = np.array([1, -1])
        Tc2 = np.array([1, 2])

        nt.assert_array_almost_equal(l0.Tc, Tc0)
        nt.assert_array_almost_equal(l1.Tc, Tc1)
        nt.assert_array_almost_equal(l2.Tc, Tc2)
    def test_I(self):
        l0 = rp.DHLink(I=[1, 2, 3])
        l1 = rp.DHLink(I=[0, 1, 2, 3, 4, 5])
        l2 = rp.DHLink(I=np.eye(3))

        I0 = np.array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])

        I1 = np.array([[0, 3, 5], [3, 1, 4], [5, 4, 2]])

        I2 = np.eye(3)

        nt.assert_array_almost_equal(l0.I, I0)
        nt.assert_array_almost_equal(l1.I, I1)
        nt.assert_array_almost_equal(l2.I, I2)
    def test_nofriction(self):
        l0 = rp.DHLink(Tc=2, B=3)
        l1 = rp.DHLink(Tc=2, B=3)
        l2 = rp.DHLink(Tc=2, B=3)
        l3 = rp.DHLink(Tc=2, B=3)

        n0 = l1.nofriction()
        n1 = l2.nofriction(viscous=True)
        n2 = l3.nofriction(coulomb=False)

        nt.assert_array_almost_equal(n0.B, l0.B)
        nt.assert_array_almost_equal(n0.Tc, [0, 0])

        nt.assert_array_almost_equal(n1.B, 0)
        nt.assert_array_almost_equal(n1.Tc, [0, 0])

        nt.assert_array_almost_equal(n2.B, l0.B)
        nt.assert_array_almost_equal(n2.Tc, l0.Tc)
Beispiel #6
0
    def test_nofriction(self):
        l0 = rp.DHLink(Tc=2, B=3)
        l1 = rp.DHLink(Tc=2, B=3)
        l2 = rp.DHLink(Tc=2, B=3)
        l3 = rp.DHLink(Tc=2, B=3)
        L = [l0, l1, l2, l3]

        r0 = rp.DHRobot(L)

        n0 = r0.nofriction()
        n1 = r0.nofriction(viscous=True)
        n2 = r0.nofriction(coulomb=False)

        for i in range(4):
            nt.assert_array_almost_equal(n0.links[i].B, L[i].B)
            nt.assert_array_almost_equal(n0.links[i].Tc, [0, 0])

            nt.assert_array_almost_equal(n1.links[i].B, 0)
            nt.assert_array_almost_equal(n1.links[i].Tc, [0, 0])

            nt.assert_array_almost_equal(n2.links[i].B, L[i].B)
            nt.assert_array_almost_equal(n2.links[i].Tc, L[i].Tc)
Beispiel #7
0
 def test_teach2_basic(self):
     l0 = rp.DHLink(d=2)
     r0 = rp.DHRobot([l0, l0])
     e = r0.teach2(block=False)
     e.step()
     e.close()
Beispiel #8
0
 def test_DHRobot(self):
     l0 = rp.DHLink()
     rp.DHRobot([l0])
    def test_qlim(self):
        l0 = rp.DHLink(qlim=[-1, 1])

        self.assertEqual(l0.islimit(-0.9), False)
        self.assertEqual(l0.islimit(-1.9), True)
        self.assertEqual(l0.islimit(2.9), True)
 def test_link(self):
     rp.DHLink()
    def test_properties(self):
        l0 = rp.DHLink()

        self.assertEqual(l0.m, 0.0)
        nt.assert_array_almost_equal(l0.r, np.zeros(3))
        self.assertEqual(l0.Jm, 0.0)
    def test_add(self):
        l0 = rp.DHLink()
        l1 = rp.DHLink()

        self.assertIsInstance(l0 + l1, rp.DHRobot)
        self.assertRaises(TypeError, l0.__add__, 1)