示例#1
0
from urdf_parser_py.xml_reflection.basics import *
import urdf_parser_py.xml_reflection as xmlr

xmlr.start_namespace('srdf')

verbose = True

# Common stuff
name_attribute = xmlr.Attribute('name', str)


class Link(xmlr.Object):
    def __init__(self, name=None):
        self.name = name


xmlr.reflect(Link, params=[name_attribute])


class Joint(xmlr.Object):
    def __init__(self, name=None):
        self.name = name


xmlr.reflect(Joint, params=[name_attribute])


class JointVal(xmlr.Object):
    def __init__(self, name=None, value=[]):
        self.name = name
        self.value = value
示例#2
0
from urdf_parser_py.xml_reflection.basics import *
import urdf_parser_py.xml_reflection as xmlr

# Add a 'namespace' for names so that things don't conflict between URDF and SDF?
# A type registry? How to scope that? Just make a 'global' type pointer?
# Or just qualify names? urdf.geometric, sdf.geometric

xmlr.start_namespace('urdf')

xmlr.add_type('element_link', xmlr.SimpleElementType('link', str))
xmlr.add_type('element_xyz', xmlr.SimpleElementType('xyz', 'vector3'))

verbose = True

class Pose(xmlr.Object):
	def __init__(self, xyz=None, rpy=None):
		self.xyz = xyz
		self.rpy = rpy
	
	def check_valid(self):
		assert self.xyz is not None or self.rpy is not None
	
	# Aliases for backwards compatibility
	@property
	def rotation(self): return self.rpy
	@rotation.setter
	def rotation(self, value): self.rpy = value
	@property
	def position(self): return self.xyz
	@position.setter
	def position(self, value): self.xyz = value
示例#3
0
文件: sdf.py 项目: k-okada/urdfdom
from urdf_parser_py.xml_reflection.basics import *
import urdf_parser_py.xml_reflection as xmlr

# What is the scope of plugins? Model, World, Sensor?

xmlr.start_namespace("sdf")


class Pose(xmlr.Object):
    def __init__(self, vec=None, extra=None):
        self.xyz = None
        self.rpy = None
        if vec is not None:
            assert isinstance(vec, list)
            count = len(vec)
            if len == 3:
                xyz = vec
            else:
                self.from_vec(vec)
        elif extra is not None:
            assert xyz is None, "Cannot specify 6-length vector and 3-length vector"
            assert len(extra) == 3, "Invalid length"
            self.rpy = extra

    def from_vec(self, vec):
        assert len(vec) == 6, "Invalid length"
        self.xyz = vec[:3]
        self.rpy = vec[3:6]

    def as_vec(self):
        xyz = self.xyz if self.xyz else [0, 0, 0]
示例#4
0
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.

from urdf_parser_py.xml_reflection.basics import *
import urdf_parser_py.xml_reflection as xmlr

# What is the scope of plugins? Model, World, Sensor?

xmlr.start_namespace('sdf')

class Pose(xmlr.Object):
	def __init__(self, vec=None, extra=None):
		self.xyz = None
		self.rpy = None
		if vec is not None:
			assert isinstance(vec, list)
			count = len(vec)
			if len == 3:
				xyz = vec
			else:
				self.from_vec(vec)
		elif extra is not None:
			assert xyz is None, "Cannot specify 6-length vector and 3-length vector"
			assert len(extra) == 3, "Invalid length"
示例#5
0
from urdf_parser_py.xml_reflection.basics import *
import urdf_parser_py.xml_reflection as xmlr

# What is the scope of plugins? Model, World, Sensor?

xmlr.start_namespace("sdf")


class Pose(xmlr.Object):
    def __init__(self, vec=None, extra=None):
        self.xyz = None
        self.rpy = None
        if vec is not None:
            assert isinstance(vec, list)
            count = len(vec)
            if len == 3:
                xyz = vec
            else:
                self.from_vec(vec)
        elif extra is not None:
            assert (
                xyz is None
            ), "Cannot specify 6-length vector and 3-length vector"  # noqa
            assert len(extra) == 3, "Invalid length"
            self.rpy = extra

    def from_vec(self, vec):
        assert len(vec) == 6, "Invalid length"
        self.xyz = vec[:3]
        self.rpy = vec[3:6]