diff --git a/doc/file_format/CollisionModel.pdf b/doc/file_format/CollisionModel.pdf index 07195b492e487ea1fcd89989bd3e518eb1fd3690..32b1c11a9bc37ecfff3a66a5933cc1554998e170 100644 Binary files a/doc/file_format/CollisionModel.pdf and b/doc/file_format/CollisionModel.pdf differ diff --git a/doc/file_format/Joint.pdf b/doc/file_format/Joint.pdf index 474ac3662fb34a67af65c82a273bc0be894534fc..86580efa29795bbca4d6f3a18b8c371a85902bf7 100644 Binary files a/doc/file_format/Joint.pdf and b/doc/file_format/Joint.pdf differ diff --git a/doc/file_format/RobotNode.pdf b/doc/file_format/RobotNode.pdf index d859c1a07f7f960c5730aa26188a11549129f151..cbbe83c5010e2c520f039ca4db4b010597252718 100644 Binary files a/doc/file_format/RobotNode.pdf and b/doc/file_format/RobotNode.pdf differ diff --git a/doc/file_format/Visualization.pdf b/doc/file_format/Visualization.pdf index f0a68f2d3cc260c20c1d70d6b56881c9dbe8aeea..b273ad2cac37cef0bfabd6418e0d4d6ae3ed4132 100644 Binary files a/doc/file_format/Visualization.pdf and b/doc/file_format/Visualization.pdf differ diff --git a/doc/file_format/simox_robot.xsd b/doc/file_format/simox_robot.xsd index f4e5a284199aec7a73e18e7cf6811d0323f3c63c..35c5391d17638476f26069124bc0b97f7afeb33d 100644 --- a/doc/file_format/simox_robot.xsd +++ b/doc/file_format/simox_robot.xsd @@ -1,381 +1,380 @@ <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - <xs:simpleType name="Joint-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="fixed"/> - <xs:enumeration value="revolute"/> - <xs:enumeration value="prismatic"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="Coord-Location-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="joint"/> - <xs:enumeration value="VisualizationBBoxCenter"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="EEFActorCollision-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="None"/> - <xs:enumeration value="Actors"/> - <xs:enumeration value="Static"/> - <xs:enumeration value="All"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="FileLocation-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="relative"/> - <xs:enumeration value="absolute"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="Unit-Length-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="m"/> - <xs:enumeration value="mm"/> - <xs:enumeration value="meter"/> - <xs:enumeration value="millimeter"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="Unit-Time-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="s"/> - <xs:enumeration value="sec"/> - <xs:enumeration value="second"/> - <xs:enumeration value="min"/> - <xs:enumeration value="minute"/> - <xs:enumeration value="h"/> - <xs:enumeration value="hour"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="Unit-Weight-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="g"/> - <xs:enumeration value="kg"/> - <xs:enumeration value="t"/> - <xs:enumeration value="gram"/> - <xs:enumeration value="kilogram"/> - <xs:enumeration value="ton"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="Unit-Angle-Type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="rad"/> - <xs:enumeration value="radian"/> - <xs:enumeration value="deg"/> - <xs:enumeration value="degree"/> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="Com-Type"> - <xs:attribute name="location" type="Coord-Location-Type" default="joint"/> - <xs:attribute name="x" type="xs:decimal" default="0"/> - <xs:attribute name="y" type="xs:decimal" default="0"/> - <xs:attribute name="z" type="xs:decimal" default="0"/> - <xs:attribute name="unit" type="Unit-Length-Type" default="m"/> - </xs:complexType> - - <xs:complexType name="Matrix3x3Row-Type"> - <xs:attribute name="c1" type="xs:decimal" default="0"/> - <xs:attribute name="c2" type="xs:decimal" default="0"/> - <xs:attribute name="c3" type="xs:decimal" default="0"/> - </xs:complexType> - - <xs:complexType name="Matrix3x3-Type"> - <xs:sequence> - <xs:element name="row1" type="Matrix3x3Row-Type" minOccurs="1"/> - <xs:element name="row2" type="Matrix3x3Row-Type" minOccurs="1"/> - <xs:element name="row3" type="Matrix3x3Row-Type" minOccurs="1"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="InertiaMatrix-Type"> - <xs:complexContent> - <xs:extension base="Matrix3x3-Type"> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> - <xs:attribute name="unitsWeight" type="Unit-Weight-Type" default="kg"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="Matrix4x4Row-Type"> - <xs:attribute name="c1" type="xs:decimal" default="0"/> - <xs:attribute name="c2" type="xs:decimal" default="0"/> - <xs:attribute name="c3" type="xs:decimal" default="0"/> - <xs:attribute name="c4" type="xs:decimal" default="0"/> - </xs:complexType> - - <xs:complexType name="Matrix4x4-Type"> - <xs:sequence> - <xs:element name="row1" type="Matrix4x4Row-Type" minOccurs="1"/> - <xs:element name="row2" type="Matrix4x4Row-Type" minOccurs="1"/> - <xs:element name="row3" type="Matrix4x4Row-Type" minOccurs="1"/> - <xs:element name="row4" type="Matrix4x4Row-Type" minOccurs="1"/> - </xs:sequence> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> - </xs:complexType> - - <xs:complexType name="RollPitchYaw-Type"> - <xs:attribute name="roll" type="xs:decimal" use="required"/> - <xs:attribute name="pitch" type="xs:decimal" use="required"/> - <xs:attribute name="yaw" type="xs:decimal" use="required"/> - <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="radian"/> - </xs:complexType> - - <xs:complexType name="Quaternion-Type"> - <xs:attribute name="x" type="xs:decimal" use="required"/> - <xs:attribute name="y" type="xs:decimal" use="required"/> - <xs:attribute name="z" type="xs:decimal" use="required"/> - <xs:attribute name="w" type="xs:decimal" use="required"/> - </xs:complexType> - - <xs:complexType name="Translation-Type"> - <xs:attribute name="x" type="xs:decimal" use="required"/> - <xs:attribute name="y" type="xs:decimal" use="required"/> - <xs:attribute name="z" type="xs:decimal" use="required"/> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> - </xs:complexType> - - <xs:complexType name="Velocity-Type"> - <xs:attribute name="value" type="xs:decimal" default="0"/> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> - <xs:attribute name="unitsTime" type="Unit-Time-Type" default="sec"/> - </xs:complexType> - - <xs:complexType name="Acceleration-Type"> - <xs:attribute name="value" type="xs:decimal" default="0"/> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> - <xs:attribute name="unitsTime" type="Unit-Time-Type" default="sec"/> - </xs:complexType> - - <xs:complexType name="Torque-Type"> - <xs:attribute name="value" type="xs:decimal" default="0"/> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> - </xs:complexType> - - <xs:complexType name="Limits-Type"> - <xs:attribute name="lo" type="xs:decimal" default="-3.14"/> - <xs:attribute name="hi" type="xs:decimal" default="3.14"/> - <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="rad"/> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> - </xs:complexType> - - <xs:complexType name="DH-Type"> - <xs:attribute name="a" type="xs:decimal" default="0"/> - <xs:attribute name="d" type="xs:decimal" default="0"/> - <xs:attribute name="alpha" type="xs:decimal" default="0"/> - <xs:attribute name="theta" type="xs:decimal" default="0"/> - <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="rad"/> - <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> - </xs:complexType> - - <xs:complexType name="Transform-Type"> - <xs:all> - <xs:element name="matrix4x4" type="Matrix4x4-Type" minOccurs="0"/> - <xs:element name="matrix3x3" type="Matrix3x3-Type" minOccurs="0"/> - <xs:element name="rollpitchyaw" type="RollPitchYaw-Type" minOccurs="0"/> - <xs:element name="quaternion" type="Quaternion-Type" minOccurs="0"/> - <xs:element name="translation" type="Translation-Type" minOccurs="0"/> - <xs:element name="dh" type="DH-Type" minOccurs="0"/> - </xs:all> - </xs:complexType> - - <xs:complexType name="File-Type"> - <xs:all> - <xs:element name="file" type="xs:string" minOccurs="1"/> - </xs:all> - <xs:attribute name="type" type="xs:string" default="Inventor"/> - <xs:attribute name="path" type="FileLocation-Type" default="relative"/> - </xs:complexType> - - <xs:complexType name="Col-File-Type"> - <xs:complexContent> - <xs:extension base="File-Type"> - <xs:attribute name="BoundingBox" type="xs:boolean" default="false"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="Coordinate-Type"> - <xs:attribute name="enale" type="xs:boolean" default="true"/> - <xs:attribute name="scaling" type="xs:decimal" default="1.0"/> - <xs:attribute name="text" type="xs:string" default=""/> - </xs:complexType> - - <xs:complexType name="PropagateJointValue-Type"> - <xs:attribute name="factor" type="xs:decimal" default="1.0"/> - <xs:attribute name="name" type="xs:string" default=""/> - </xs:complexType> - - <xs:complexType name="PrimitiveBox-Type"> - <xs:all> - <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> - </xs:all> - <xs:attribute name="width" type="xs:decimal" default="0.0"/> - <xs:attribute name="height" type="xs:decimal" default="0.0"/> - <xs:attribute name="depth" type="xs:decimal" default="0.0"/> - </xs:complexType> - - <xs:complexType name="PrimitiveSphere-Type"> - <xs:all> - <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> - </xs:all> - <xs:attribute name="radius" type="xs:decimal" default="1.0"/> - </xs:complexType> - - <xs:complexType name="Primitive-Type"> - <xs:all> - <xs:element name="box" type="PrimitiveBox-Type" minOccurs="0"/> - <xs:element name="sphere" type="PrimitiveSphere-Type" minOccurs="0"/> - </xs:all> - </xs:complexType> - - <xs:complexType name="JointElement"> - <xs:all> - <xs:element name="limits" type="Limits-Type" minOccurs="1"/> - <xs:element name="axis" type="Translation-Type" minOccurs="1"/> - <xs:element name="translationdirection" type="Translation-Type" minOccurs="1"/> - <xs:element name="maxvelocity" type="Velocity-Type" minOccurs="1"/> - <xs:element name="maxacceleration" type="Acceleration-Type" minOccurs="1"/> - <xs:element name="maxtorque" type="Torque-Type" minOccurs="1"/> - <xs:element name="propagatejointvalue" type="PropagateJointValue-Type" minOccurs="0"/> - </xs:all> - <xs:attribute name="type" type="Joint-Type" default="fixed"/> - </xs:complexType> - - <xs:complexType name="PhysicsElement"> - <xs:all> - <xs:element name="Mass" type="xs:decimal" minOccurs="1" maxOccurs="1"/> - <xs:element name="CoM" type="Com-Type" minOccurs="0" maxOccurs="1"/> - <xs:element name="IntertiaMatrix" type="InertiaMatrix-Type" minOccurs="0" maxOccurs="1"/> - </xs:all> - </xs:complexType> - - <xs:complexType name="VisualizationElement"> - <xs:all> - <xs:element name="File" type="File-Type" minOccurs="0" maxOccurs="1"/> - <xs:element name="Primitives" type="Primitive-Type" minOccurs="0"/> - <xs:element name="CoordinateAxis" type="Coordinate-Type" minOccurs="0" maxOccurs="1"/> - </xs:all> - <xs:attribute name="enable" type="xs:boolean" default="true"/> - <xs:attribute name="useAsCollisionModel" type="xs:boolean" default="false"/> - </xs:complexType> - - <xs:complexType name="CollisionElement"> - <xs:all> - <xs:element name="File" type="Col-File-Type" minOccurs="0" maxOccurs="1"/> - <xs:element name="Primitives" type="Primitive-Type" minOccurs="0"/> - </xs:all> - <xs:attribute name="enable" type="xs:boolean" default="true"/> - </xs:complexType> - - <xs:complexType name="NodeListElement"> - <xs:attribute name="name" type="xs:string" use="required"/> - </xs:complexType> - - <xs:complexType name="ActorNodeListElement"> - <xs:attribute name="name" type="xs:string" use="required"/> - <xs:attribute name="considercollisions" type="EEFActorCollision-Type" default="All"/> - <xs:attribute name="direction" type="xs:float" default="1.0"/> - </xs:complexType> - - <xs:complexType name="SensorElement"> - <xs:all> - <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> - </xs:all> - <xs:attribute name="name" type="xs:string" use="required"/> - <xs:attribute name="type" type="xs:string" use="required"/> - </xs:complexType> - - <xs:complexType name="ConfigurationNodeListElement"> - <xs:attribute name="name" type="xs:string" use="required"/> - <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="radian"/> - <xs:attribute name="value" type="xs:float" default="0"/> - </xs:complexType> - - <xs:complexType name="RobotNodeElement"> - <xs:choice> - <xs:element name="Joint" type="JointElement" minOccurs="0"/> - <xs:element name="Physics" type="PhysicsElement" minOccurs="0"/> - <xs:element name="Visualization" type="VisualizationElement" minOccurs="0"/> - <xs:element name="CollisionModel" type="CollisionElement" minOccurs="0"/> - <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> - <xs:element name="Sensor" type="SensorElement" minOccurs="0"/> - <xs:element name="Child" minOccurs="0" maxOccurs="unbounded"> - <xs:complexType> - <xs:attribute name="name" type="xs:string" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="ChildFromRobot" minOccurs="0" maxOccurs="unbounded"> - <xs:complexType> - <xs:all> - <xs:element name="file" type="File-Type" minOccurs="1" maxOccurs="1"/> - </xs:all> - <xs:attribute name="importEEF" type="xs:boolean" default="true"/> - </xs:complexType> - </xs:element> - </xs:choice> - <xs:attribute name="name" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="RobotNodeSetElement"> - <xs:choice> - <xs:element name="Node" type="NodeListElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:choice> - <xs:attribute name="name" type="xs:string"/> - <xs:attribute name="tcp" type="xs:string"/> - <xs:attribute name="kinematicroot" type="xs:string"/> - </xs:complexType> - - <xs:complexType name="EEFStaticElement"> - <xs:choice> - <xs:element name="Node" type="NodeListElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:choice> - </xs:complexType> - - <xs:complexType name="EEFPreshapeElement"> - <xs:choice> - <xs:element name="Node" type="ConfigurationNodeListElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:choice> - <xs:attribute name="name" type="xs:string" use="required"/> - </xs:complexType> - - <xs:complexType name="EEFActorElement"> - <xs:choice> - <xs:element name="Node" type="ActorNodeListElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:choice> - <xs:attribute name="name" type="xs:string" use="required"/> - </xs:complexType> - - <xs:complexType name="EndEffectorElement"> - <xs:choice> - <xs:element name="Actor" type="EEFActorElement" minOccurs="1" maxOccurs="unbounded"/> - <xs:element name="Static" type="EEFStaticElement" minOccurs="0" maxOccurs="1"/> - <xs:element name="Preshape" type="EEFPreshapeElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:choice> - <xs:attribute name="name" type="xs:string"/> - <xs:attribute name="tcp" type="xs:string"/> - <xs:attribute name="gcp" type="xs:string"/> - <xs:attribute name="base" type="xs:string"/> - </xs:complexType> - - <xs:element name="Robot"> - <xs:complexType> - <xs:choice> - <xs:element name="RobotNode" type="RobotNodeElement" minOccurs="1" maxOccurs="unbounded"/> - <xs:element name="RobotNodeSet" type="RobotNodeSetElement" minOccurs="0" maxOccurs="unbounded"/> - <xs:element name="EndEffector" type="EndEffectorElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:choice> - <xs:attribute name="Type" type="xs:string"/> - <xs:attribute name="RootNode" type="xs:string"/> - </xs:complexType> - </xs:element> - + <xs:simpleType name="Joint-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="fixed"/> + <xs:enumeration value="revolute"/> + <xs:enumeration value="prismatic"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="Coord-Location-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="joint"/> + <xs:enumeration value="VisualizationBBoxCenter"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="EEFActorCollision-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="None"/> + <xs:enumeration value="Actors"/> + <xs:enumeration value="Static"/> + <xs:enumeration value="All"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="FileLocation-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="relative"/> + <xs:enumeration value="absolute"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="Unit-Length-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="m"/> + <xs:enumeration value="mm"/> + <xs:enumeration value="meter"/> + <xs:enumeration value="millimeter"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="Unit-Time-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="s"/> + <xs:enumeration value="sec"/> + <xs:enumeration value="second"/> + <xs:enumeration value="min"/> + <xs:enumeration value="minute"/> + <xs:enumeration value="h"/> + <xs:enumeration value="hour"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="Unit-Weight-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g"/> + <xs:enumeration value="kg"/> + <xs:enumeration value="t"/> + <xs:enumeration value="gram"/> + <xs:enumeration value="kilogram"/> + <xs:enumeration value="ton"/> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="Unit-Angle-Type"> + <xs:restriction base="xs:string"> + <xs:enumeration value="rad"/> + <xs:enumeration value="radian"/> + <xs:enumeration value="deg"/> + <xs:enumeration value="degree"/> + </xs:restriction> + </xs:simpleType> + + <xs:complexType name="Com-Type"> + <xs:attribute name="location" type="Coord-Location-Type" default="joint"/> + <xs:attribute name="x" type="xs:decimal" default="0"/> + <xs:attribute name="y" type="xs:decimal" default="0"/> + <xs:attribute name="z" type="xs:decimal" default="0"/> + <xs:attribute name="unit" type="Unit-Length-Type" default="m"/> + </xs:complexType> + + <xs:complexType name="Matrix3x3Row-Type"> + <xs:attribute name="c1" type="xs:decimal" default="0"/> + <xs:attribute name="c2" type="xs:decimal" default="0"/> + <xs:attribute name="c3" type="xs:decimal" default="0"/> + </xs:complexType> + + <xs:complexType name="Matrix3x3-Type"> + <xs:sequence> + <xs:element name="row1" type="Matrix3x3Row-Type" minOccurs="1"/> + <xs:element name="row2" type="Matrix3x3Row-Type" minOccurs="1"/> + <xs:element name="row3" type="Matrix3x3Row-Type" minOccurs="1"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="InertiaMatrix-Type"> + <xs:complexContent> + <xs:extension base="Matrix3x3-Type"> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> + <xs:attribute name="unitsWeight" type="Unit-Weight-Type" default="kg"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="Matrix4x4Row-Type"> + <xs:attribute name="c1" type="xs:decimal" default="0"/> + <xs:attribute name="c2" type="xs:decimal" default="0"/> + <xs:attribute name="c3" type="xs:decimal" default="0"/> + <xs:attribute name="c4" type="xs:decimal" default="0"/> + </xs:complexType> + + <xs:complexType name="Matrix4x4-Type"> + <xs:sequence> + <xs:element name="row1" type="Matrix4x4Row-Type" minOccurs="1"/> + <xs:element name="row2" type="Matrix4x4Row-Type" minOccurs="1"/> + <xs:element name="row3" type="Matrix4x4Row-Type" minOccurs="1"/> + <xs:element name="row4" type="Matrix4x4Row-Type" minOccurs="1"/> + </xs:sequence> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> + </xs:complexType> + + <xs:complexType name="RollPitchYaw-Type"> + <xs:attribute name="roll" type="xs:decimal" use="required"/> + <xs:attribute name="pitch" type="xs:decimal" use="required"/> + <xs:attribute name="yaw" type="xs:decimal" use="required"/> + <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="radian"/> + </xs:complexType> + + <xs:complexType name="Quaternion-Type"> + <xs:attribute name="x" type="xs:decimal" use="required"/> + <xs:attribute name="y" type="xs:decimal" use="required"/> + <xs:attribute name="z" type="xs:decimal" use="required"/> + <xs:attribute name="w" type="xs:decimal" use="required"/> + </xs:complexType> + + <xs:complexType name="Translation-Type"> + <xs:attribute name="x" type="xs:decimal" use="required"/> + <xs:attribute name="y" type="xs:decimal" use="required"/> + <xs:attribute name="z" type="xs:decimal" use="required"/> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> + </xs:complexType> + + <xs:complexType name="Velocity-Type"> + <xs:attribute name="value" type="xs:decimal" default="0"/> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> + <xs:attribute name="unitsTime" type="Unit-Time-Type" default="sec"/> + </xs:complexType> + + <xs:complexType name="Acceleration-Type"> + <xs:attribute name="value" type="xs:decimal" default="0"/> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> + <xs:attribute name="unitsTime" type="Unit-Time-Type" default="sec"/> + </xs:complexType> + + <xs:complexType name="Torque-Type"> + <xs:attribute name="value" type="xs:decimal" default="0"/> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="m"/> + </xs:complexType> + + <xs:complexType name="Limits-Type"> + <xs:attribute name="lo" type="xs:decimal" default="-3.14"/> + <xs:attribute name="hi" type="xs:decimal" default="3.14"/> + <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="rad"/> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> + </xs:complexType> + + <xs:complexType name="DH-Type"> + <xs:attribute name="a" type="xs:decimal" default="0"/> + <xs:attribute name="d" type="xs:decimal" default="0"/> + <xs:attribute name="alpha" type="xs:decimal" default="0"/> + <xs:attribute name="theta" type="xs:decimal" default="0"/> + <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="rad"/> + <xs:attribute name="unitsLength" type="Unit-Length-Type" default="mm"/> + </xs:complexType> + + <xs:complexType name="Transform-Type"> + <xs:all> + <xs:element name="matrix4x4" type="Matrix4x4-Type" minOccurs="0"/> + <xs:element name="matrix3x3" type="Matrix3x3-Type" minOccurs="0"/> + <xs:element name="rollpitchyaw" type="RollPitchYaw-Type" minOccurs="0"/> + <xs:element name="quaternion" type="Quaternion-Type" minOccurs="0"/> + <xs:element name="translation" type="Translation-Type" minOccurs="0"/> + <xs:element name="dh" type="DH-Type" minOccurs="0"/> + </xs:all> + </xs:complexType> + + <xs:complexType name="File-Type"> + <xs:all> + <xs:element name="file" type="xs:string" minOccurs="1"/> + </xs:all> + <xs:attribute name="type" type="xs:string" default="Inventor"/> + <xs:attribute name="path" type="FileLocation-Type" default="relative"/> + </xs:complexType> + + <xs:complexType name="Col-File-Type"> + <xs:complexContent> + <xs:extension base="File-Type"> + <xs:attribute name="BoundingBox" type="xs:boolean" default="false"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:complexType name="Coordinate-Type"> + <xs:attribute name="enale" type="xs:boolean" default="true"/> + <xs:attribute name="scaling" type="xs:decimal" default="1.0"/> + <xs:attribute name="text" type="xs:string" default=""/> + </xs:complexType> + + <xs:complexType name="PropagateJointValue-Type"> + <xs:attribute name="factor" type="xs:decimal" default="1.0"/> + <xs:attribute name="name" type="xs:string" default=""/> + </xs:complexType> + + <xs:complexType name="PrimitiveBox-Type"> + <xs:all> + <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> + </xs:all> + <xs:attribute name="width" type="xs:decimal" default="0.0"/> + <xs:attribute name="height" type="xs:decimal" default="0.0"/> + <xs:attribute name="depth" type="xs:decimal" default="0.0"/> + </xs:complexType> + + <xs:complexType name="PrimitiveSphere-Type"> + <xs:all> + <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> + </xs:all> + <xs:attribute name="radius" type="xs:decimal" default="1.0"/> + </xs:complexType> + + <xs:complexType name="Primitive-Type"> + <xs:all> + <xs:element name="box" type="PrimitiveBox-Type" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="sphere" type="PrimitiveSphere-Type" minOccurs="0" maxOccurs="unbounded"/> + </xs:all> + </xs:complexType> + + <xs:complexType name="JointElement"> + <xs:all> + <xs:element name="limits" type="Limits-Type" minOccurs="1"/> + <xs:element name="axis" type="Translation-Type" minOccurs="1"/> + <xs:element name="translationdirection" type="Translation-Type" minOccurs="1"/> + <xs:element name="maxvelocity" type="Velocity-Type" minOccurs="1"/> + <xs:element name="maxacceleration" type="Acceleration-Type" minOccurs="1"/> + <xs:element name="maxtorque" type="Torque-Type" minOccurs="1"/> + <xs:element name="propagatejointvalue" type="PropagateJointValue-Type" minOccurs="0"/> + </xs:all> + <xs:attribute name="type" type="Joint-Type" default="fixed"/> + </xs:complexType> + + <xs:complexType name="PhysicsElement"> + <xs:all> + <xs:element name="Mass" type="xs:decimal" minOccurs="1" maxOccurs="1"/> + <xs:element name="CoM" type="Com-Type" minOccurs="0" maxOccurs="1"/> + <xs:element name="IntertiaMatrix" type="InertiaMatrix-Type" minOccurs="0" maxOccurs="1"/> + </xs:all> + </xs:complexType> + + <xs:complexType name="VisualizationElement"> + <xs:all> + <xs:element name="File" type="File-Type" minOccurs="0" maxOccurs="1"/> + <xs:element name="Primitives" type="Primitive-Type" minOccurs="0"/> + <xs:element name="CoordinateAxis" type="Coordinate-Type" minOccurs="0" maxOccurs="1"/> + </xs:all> + <xs:attribute name="enable" type="xs:boolean" default="true"/> + <xs:attribute name="useAsCollisionModel" type="xs:boolean" default="false"/> + </xs:complexType> + + <xs:complexType name="CollisionElement"> + <xs:all> + <xs:element name="File" type="Col-File-Type" minOccurs="0" maxOccurs="1"/> + <xs:element name="Primitives" type="Primitive-Type" minOccurs="0" maxOccurs="1"/> + </xs:all> + <xs:attribute name="enable" type="xs:boolean" default="true"/> + </xs:complexType> + + <xs:complexType name="NodeListElement"> + <xs:attribute name="name" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="ActorNodeListElement"> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="considercollisions" type="EEFActorCollision-Type" default="All"/> + <xs:attribute name="direction" type="xs:float" default="1.0"/> + </xs:complexType> + + <xs:complexType name="SensorElement"> + <xs:all> + <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> + </xs:all> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="type" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="ConfigurationNodeListElement"> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="unitsAngle" type="Unit-Angle-Type" default="radian"/> + <xs:attribute name="value" type="xs:float" default="0"/> + </xs:complexType> + + <xs:complexType name="RobotNodeElement"> + <xs:choice> + <xs:element name="Joint" type="JointElement" minOccurs="0"/> + <xs:element name="Physics" type="PhysicsElement" minOccurs="0"/> + <xs:element name="Visualization" type="VisualizationElement" minOccurs="0"/> + <xs:element name="CollisionModel" type="CollisionElement" minOccurs="0"/> + <xs:element name="Transform" type="Transform-Type" minOccurs="0"/> + <xs:element name="Sensor" type="SensorElement" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="Child" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="name" type="xs:string" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="ChildFromRobot" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:all> + <xs:element name="file" type="File-Type" minOccurs="1" maxOccurs="1"/> + </xs:all> + <xs:attribute name="importEEF" type="xs:boolean" default="true"/> + </xs:complexType> + </xs:element> + </xs:choice> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="RobotNodeSetElement"> + <xs:choice> + <xs:element name="Node" type="NodeListElement" minOccurs="0" maxOccurs="unbounded"/> + </xs:choice> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="tcp" type="xs:string"/> + <xs:attribute name="kinematicroot" type="xs:string"/> + </xs:complexType> + + <xs:complexType name="EEFStaticElement"> + <xs:choice> + <xs:element name="Node" type="NodeListElement" minOccurs="0" maxOccurs="unbounded"/> + </xs:choice> + </xs:complexType> + + <xs:complexType name="EEFPreshapeElement"> + <xs:choice> + <xs:element name="Node" type="ConfigurationNodeListElement" minOccurs="0" maxOccurs="unbounded"/> + </xs:choice> + <xs:attribute name="name" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="EEFActorElement"> + <xs:choice> + <xs:element name="Node" type="ActorNodeListElement" minOccurs="0" maxOccurs="unbounded"/> + </xs:choice> + <xs:attribute name="name" type="xs:string" use="required"/> + </xs:complexType> + + <xs:complexType name="EndEffectorElement"> + <xs:choice> + <xs:element name="Actor" type="EEFActorElement" minOccurs="1" maxOccurs="unbounded"/> + <xs:element name="Static" type="EEFStaticElement" minOccurs="0" maxOccurs="1"/> + <xs:element name="Preshape" type="EEFPreshapeElement" minOccurs="0" maxOccurs="unbounded"/> + </xs:choice> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="tcp" type="xs:string"/> + <xs:attribute name="gcp" type="xs:string"/> + <xs:attribute name="base" type="xs:string"/> + </xs:complexType> + + <xs:element name="Robot"> + <xs:complexType> + <xs:choice> + <xs:element name="RobotNode" type="RobotNodeElement" minOccurs="1" maxOccurs="unbounded"/> + <xs:element name="RobotNodeSet" type="RobotNodeSetElement" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="EndEffector" type="EndEffectorElement" minOccurs="0" maxOccurs="unbounded"/> + </xs:choice> + <xs:attribute name="Type" type="xs:string"/> + <xs:attribute name="RootNode" type="xs:string"/> + </xs:complexType> + </xs:element> </xs:schema>