| import unittest |
| from tests.core import TestCore |
| from pyrep.objects.joint import Joint |
| from pyrep.const import JointType, JointMode |
|
|
|
|
| class TestJoints(TestCore): |
|
|
| def setUp(self): |
| super().setUp() |
| self.prismatic = Joint('prismatic_joint') |
| self.prismatic_ctr = Joint('prismatic_joint_control_loop') |
| self.revolute = Joint('revolute_joint') |
|
|
| def test_get_joint_type(self): |
| self.assertEqual(self.prismatic.get_joint_type(), JointType.PRISMATIC) |
|
|
| def test_get_set_joint_mode(self): |
| self.prismatic.set_joint_mode(JointMode.IK) |
| self.assertEqual(self.prismatic.get_joint_mode(), JointMode.IK) |
|
|
| def test_get_set_joint_position(self): |
| self.prismatic.set_joint_position(0.5) |
| pos = self.prismatic.get_joint_position() |
| self.assertEqual(pos, 0.5) |
|
|
| def test_get_set_joint_target_position(self): |
| self.prismatic_ctr.set_joint_target_position(0.5) |
| pos = self.prismatic_ctr.get_joint_target_position() |
| self.assertEqual(pos, 0.5) |
| |
| [self.pyrep.step() for _ in range(10)] |
| self.assertAlmostEqual( |
| self.prismatic_ctr.get_joint_position(), 0.5, delta=0.01) |
|
|
| def test_get_set_joint_target_velocity(self): |
| self.prismatic.set_joint_target_velocity(5.0) |
| vel = self.prismatic.get_joint_target_velocity() |
| self.assertEqual(vel, 5.0) |
| |
| [self.pyrep.step() for _ in range(10)] |
| self.assertAlmostEqual( |
| self.prismatic.get_joint_position(), 0.5, delta=0.01) |
|
|
| def test_get_set_joint_force(self): |
| [self.pyrep.step() for _ in range(10)] |
| |
| self.prismatic.set_joint_target_velocity(-99999) |
| self.prismatic.set_joint_force(0.6) |
| self.pyrep.step() |
| force = self.prismatic.get_joint_force() |
| self.assertAlmostEqual(force, 0.6, delta=0.01) |
|
|
| def test_get_velocity(self): |
| self.prismatic.set_joint_target_velocity(0.5) |
| self.pyrep.step() |
| self.assertGreater(self.prismatic.get_joint_velocity(), 0.1) |
|
|
| def test_get_set_joint_interval(self): |
| self.revolute.set_joint_interval(False, [-2.0, 2.0]) |
| cyclic, interval = self.revolute.get_joint_interval() |
| self.assertFalse(cyclic) |
| self.assertEqual(interval, [-2.0, 2.0]) |
|
|
| def test_get_joint_upper_velocity_limit(self): |
| limit = self.prismatic.get_joint_upper_velocity_limit() |
| self.assertEqual(limit, 10.0) |
|
|
| def test_get_set_control_loop_enabled(self): |
| self.assertFalse(self.prismatic.is_control_loop_enabled()) |
| self.prismatic.set_control_loop_enabled(True) |
| self.assertTrue(self.prismatic.is_control_loop_enabled()) |
|
|
| def test_get_set_motor_enabled(self): |
| self.assertTrue(self.prismatic.is_motor_enabled()) |
| self.prismatic.set_motor_enabled(False) |
| self.assertFalse(self.prismatic.is_motor_enabled()) |
|
|
| def test_get_set_motor_locked_at_zero_velocity(self): |
| self.assertFalse(self.prismatic.is_motor_locked_at_zero_velocity()) |
| self.prismatic.set_motor_locked_at_zero_velocity(True) |
| self.assertTrue(self.prismatic.is_motor_locked_at_zero_velocity()) |
|
|
|
|
| if __name__ == '__main__': |
| unittest.main() |
|
|