def test_inertial_parser_data(urdf_file): r_original = RobotModel.from_urdf_file(urdf_file) r = RobotModel.from_data(r_original.data) assert r.links[0].inertial.origin is not None assert r.links[0].inertial.origin.point == [0.0, 0.0, 0.5] assert r.links[0].inertial.mass.value == 1.0 assert r.links[0].inertial.inertia.izz == 100.0
def test_unknown_urdf_attributes_data(): r_original = RobotModel.from_urdf_string( """<?xml version="1.0" encoding="UTF-8"?><robot name="panda" some_random_attr="1337"></robot>""" ) r = RobotModel.from_data(r_original.data) assert r.name == 'panda' assert r.attr['some_random_attr'] == '1337'
def test_link_parser_data(urdf_file): r_original = RobotModel.from_urdf_file(urdf_file) r = RobotModel.from_data(r_original.data) assert r.links[0].name == 'panda_link0' assert r.links[1].name == 'panda_link1' assert r.links[2].name == 'panda_link2' assert r.links[0].type == 'test_type' assert len(r.links) == 12
def test_geometry_parser_data(urdf_file_with_shapes): r_original = RobotModel.from_urdf_file(urdf_file_with_shapes) r = RobotModel.from_data(r_original.data) assert r.links[0].visual[0].geometry.shape.filename == 'package://franka_description/meshes/visual/link0.dae' assert r.links[0].visual[0].geometry.shape.scale == [1.0, 1.0, 1.0] assert isinstance(r.links[0].collision[0].geometry.shape, (Sphere, SphereProxy)) assert r.links[0].collision[0].geometry.shape.radius == 0.2 assert isinstance(r.links[1].visual[0].geometry.shape, (Box, BoxProxy)) assert r.links[1].visual[0].geometry.shape.size == [0.6, 0.1, 0.2] assert isinstance(r.links[1].collision[0].geometry.shape, (Cylinder, CylinderProxy)) assert r.links[1].collision[0].geometry.shape.length == 0.6 assert r.links[1].collision[0].geometry.shape.radius == 0.2
def test_unknown_axis_attribute_data(urdf_with_unknown_attr): r_original = RobotModel.from_urdf_file(urdf_with_unknown_attr) r = RobotModel.from_data(r_original.data) assert r.joints[0].axis.attr['rpy'] == '0 0 0'
def test_root_data(urdf_file): r_original = RobotModel.from_urdf_file(urdf_file) r = RobotModel.from_data(r_original.data) assert 'panda_link0' == r.root.name
def test_parse_from_file_data(urdf_file): r_original = RobotModel.from_urdf_file(urdf_file) r = RobotModel.from_data(r_original.data) assert r is not None assert r.name == 'panda'
def test_ur5_urdf_data(ur5_file): r_original = RobotModel.from_urdf_file(ur5_file) r = RobotModel.from_data(r_original.data) assert r.name == 'ur5' assert len(list(filter(lambda i: i.type == Joint.REVOLUTE, r.joints))) == 6