def test_urdf_load(self): rp.models.wx250s() rp.models.UR5() rp.models.Panda() try: xacro.main("") except BaseException: # lgtm [py/catch-base-exception] pass
def test_urdf_visuals(self): urdf_string = xacro.main( "roboticstoolbox/models/URDF/xacro/franka_description/robots/panda_arm_hand.urdf.xacro") urdf = URDF.loadstr( urdf_string, "roboticstoolbox/models/URDF/xacro/franka_description/robots/panda_arm_hand.urdf.xacro") urdf.links[0].visuals[0].name = "Lonk" self.assertTrue(urdf.links[0].visuals[0].name == "Lonk") self.assertTrue( isinstance( urdf.links[0].visuals[0].origin, np.ndarray)) urdf.links[0].visuals[0].geometry.box = rp.tools.urdf.Box([1, 2, 3]) self.assertTrue( isinstance( urdf.links[0].visuals[0].geometry.geometry, rp.tools.urdf.Box)) urdf.links[0].visuals[0].geometry.cylinder = \ rp.tools.urdf.Cylinder(1, 2) urdf.links[0].visuals[0].geometry.sphere = \ rp.tools.urdf.Sphere(2) nt.assert_array_almost_equal( urdf.links[0].visuals[0].geometry.box.size, [1, 2, 3]) self.assertEqual( urdf.links[0].visuals[0].geometry.cylinder.radius, 1) self.assertEqual( urdf.links[0].visuals[0].geometry.sphere.radius, 2) self.assertTrue( isinstance( urdf.links[0].visuals[0].geometry.mesh, rp.tools.urdf.Mesh)) try: xacro.main("") except BaseException: # lgtm [py/catch-base-exception] pass
def test_urdf_dynamics(self): urdf_string = xacro.main( "roboticstoolbox/models/URDF/xacro/franka_description/robots/panda_arm_hand.urdf.xacro") urdf = URDF.loadstr( urdf_string, "roboticstoolbox/models/URDF/xacro/franka_description/robots/panda_arm_hand.urdf.xacro") self.assertEqual(urdf.joints[0].limit.effort, 87.0) self.assertEqual(urdf.joints[0].limit.velocity, 2.175) try: xacro.main("") except BaseException: # lgtm [py/catch-base-exception] pass
def urdf_to_ets_args(self, file_path, tld=None): """ [summary] :param file_path: File path relative to the xacro folder :type file_path: str, in Posix file path fprmat :param tld: top-level directory, defaults to None :type tld: str, optional :return: Links and robot name :rtype: tuple(ELink list, str) """ # get the path to the class that defines the robot classpath = sys.modules[self.__module__].__file__ # add on relative path to get to the URDF or xacro file base_path = PurePath(classpath).parent.parent / 'URDF' / 'xacro' file_path = base_path / PurePosixPath(file_path) name, ext = splitext(file_path) if ext == '.xacro': # it's a xacro file, preprocess it if tld is not None: tld = base_path / PurePosixPath(tld) urdf_string = xacro.main(file_path, tld) urdf = URDF.loadstr(urdf_string, file_path) else: urdf = URDF.loadstr(open(file_path).read(), file_path) return urdf.elinks, urdf.name
def test_urdf_dynamics(self): urdf_string = xacro.main( path_to_datafile( "xacro/franka_description/robots/panda_arm_hand.urdf.xacro") ) # noqa urdf = URDF.loadstr( urdf_string, path_to_datafile( "xacro/franka_description/robots/panda_arm_hand.urdf.xacro") ) # noqa self.assertEqual(urdf.joints[0].limit.effort, 87.0) self.assertEqual(urdf.joints[0].limit.velocity, 2.175) try: xacro.main("") except BaseException: # lgtm [py/catch-base-exception] pass
def test_urdf_collisions(self): urdf_string = xacro.main( "roboticstoolbox/models/URDF/xacro/franka_description/robots/panda_arm_hand.urdf.xacro") urdf = URDF.loadstr( urdf_string, "roboticstoolbox/models/URDF/xacro/franka_description/robots/panda_arm_hand.urdf.xacro") urdf.links[0].collisions[0].name = "Lonk" self.assertTrue(urdf.links[0].collisions[0].name == "Lonk") self.assertTrue( isinstance( urdf.links[0].collisions[0].origin, np.ndarray)) try: xacro.main("") except BaseException: # lgtm [py/catch-base-exception] pass
def test_urdf_collisions(self): urdf_string = xacro.main( path_to_datafile( "xacro/franka_description/robots/panda_arm_hand.urdf.xacro") ) # noqa urdf = URDF.loadstr( urdf_string, path_to_datafile( "xacro/franka_description/robots/panda_arm_hand.urdf.xacro") ) # noqa urdf.links[0].collisions[0].name = "Lonk" self.assertTrue(urdf.links[0].collisions[0].name == "Lonk") self.assertTrue( isinstance(urdf.links[0].collisions[0].origin, np.ndarray)) try: xacro.main("") except BaseException: # lgtm [py/catch-base-exception] pass