コード例 #1
0
class Group(xmlr.Object):
    def __init__(self, name=None):
        self.aggregate_init()
        self.name = name
        self.links = []
        self.joints = []
        self.chains = []
        self.groups = []
        self.subgroups = self.groups


xmlr.reflect(Group,
             params=[
                 name_attribute,
                 xmlr.AggregateElement('link', Link),
                 xmlr.AggregateElement('joint', Joint),
                 xmlr.AggregateElement('chain', Chain),
                 xmlr.AggregateElement('group', Group)
             ])


class GroupState(xmlr.Object):
    def __init__(self, name=None, group=None):
        self.aggregate_init()
        self.name = name
        self.joints = []
        self.group = group


xmlr.reflect(GroupState,
コード例 #2
0
ファイル: urdf.py プロジェクト: YulongWang2020/CourseWork
class TransmissionJoint(xmlr.Object):
    def __init__(self, name=None):
        self.aggregate_init()
        self.name = name
        self.hardwareInterfaces = []

    def check_valid(self):
        assert len(self.hardwareInterfaces) > 0, "no hardwareInterface defined"


xmlr.reflect(TransmissionJoint,
             tag='joint',
             params=[
                 name_attribute,
                 xmlr.AggregateElement('hardwareInterface', str),
             ])


class Transmission(xmlr.Object):
    """ New format: http://wiki.ros.org/urdf/XML/Transmission """
    def __init__(self, name=None):
        self.aggregate_init()
        self.name = name
        self.joints = []
        self.actuators = []

    def check_valid(self):
        assert len(self.joints) > 0, "no joint defined"
        assert len(self.actuators) > 0, "no actuator defined"
コード例 #3
0
ファイル: urdf.py プロジェクト: jmonga-1675/sawyer_pykdl
    @classmethod
    def from_parameter_server(cls, key='robot_description'):
        """
		Retrieve the robot model on the parameter server
		and parse it to create a URDF robot structure.

		Warning: this requires roscore to be running.
		"""
        # Could move this into xml_reflection
        import rospy
        return cls.from_xml_string(rospy.get_param(key))


xmlr.reflect(
    Robot,
    tag='robot',
    params=[
        # 	name_attribute,
        xmlr.Attribute('name', str, False),  # Is 'name' a required attribute?
        xmlr.AggregateElement('link', Link),
        xmlr.AggregateElement('joint', Joint),
        xmlr.AggregateElement('gazebo', xmlr.RawType()),
        xmlr.AggregateElement('transmission', 'transmission'),
        xmlr.AggregateElement('material', Material)
    ])

# Make an alias
URDF = Robot

xmlr.end_namespace()
コード例 #4
0
        if self.collisions:
            self.collisions[0] = collision
        else:
            self.collisions.append(collision)

    # Properties for backwards compatibility
    visual = property(__get_visual, __set_visual)
    collision = property(__get_collision, __set_collision)


xmlr.reflect(Link,
             tag='link',
             params=[
                 name_attribute,
                 origin_element,
                 xmlr.AggregateElement('visual', Visual),
                 xmlr.AggregateElement('collision', Collision),
                 xmlr.Element('inertial', Inertial, False),
             ])


class PR2Transmission(xmlr.Object):
    def __init__(self,
                 name=None,
                 joint=None,
                 actuator=None,
                 type=None,
                 mechanicalReduction=1):
        self.name = name
        self.type = type
        self.joint = joint
コード例 #5
0
ファイル: sdf.py プロジェクト: YulongWang2020/CourseWork
             ])


class Link(Entity):
    def __init__(self, name=None, pose=None, inertial=None, kinematic=False):
        Entity.__init__(self, name, pose)
        self.inertial = inertial
        self.kinematic = kinematic


xmlr.reflect(Link,
             parent_cls=Entity,
             params=[
                 xmlr.Element('inertial', Inertial),
                 xmlr.Attribute('kinematic', bool, False),
                 xmlr.AggregateElement('visual', Visual, var='visuals'),
                 xmlr.AggregateElement('collision',
                                       Collision,
                                       var='collisions')
             ])


class Model(Entity):
    def __init__(self, name=None, pose=None):
        Entity.__init__(self, name, pose)
        self.links = []
        self.joints = []
        self.plugins = []


xmlr.reflect(Model,
コード例 #6
0

class Link(Entity):
    def __init__(self, name=None, pose=None, inertial=None, kinematic=False):
        Entity.__init__(self, name, pose)
        self.inertial = inertial
        self.kinematic = kinematic


xmlr.reflect(
    Link,
    parent_cls=Entity,
    params=[
        xmlr.Element("inertial", Inertial),
        xmlr.Attribute("kinematic", bool, False),
        xmlr.AggregateElement("visual", Visual, var="visuals"),
        xmlr.AggregateElement("collision", Collision, var="collisions"),
    ],
)


class Model(Entity):
    def __init__(self, name=None, pose=None):
        Entity.__init__(self, name, pose)
        self.links = []
        self.joints = []
        self.plugins = []


xmlr.reflect(
    Model,