Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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