Simple URDF support for MoonBit
gmlewis/urdf does not have a README file
pub struct Angle {
radians : Double
}pub struct Density {
kg_per_m3 : Double
}pub(all) enum Diagnostic {
EmptyRobot(String)
DuplicateLinkName(String)
DuplicateJointName(String)
MissingParentLink(String, String)
MissingChildLink(String, String)
SelfLoopJoint(String, String)
MultipleParentJoints(String)
KinematicCycle(String)
DisconnectedGraph(String)
ZeroJointAxis(String)
MissingJointLimit(String)
InvalidJointLimit(String, String)
InvalidMimicJoint(String, String)
InvalidGeometry(String, String)
NonPositiveMass(String, Double)
NonPhysicalInertia(String, String)
} derive(Eq, Debug)pub(all) struct Joint {
name : String
joint_type : JointType
origin : Origin
parent : String
child : String
axis : (Double, Double, Double)
limit : JointLimit?
dynamics : JointDynamics?
calibration : JointCalibration?
safety_controller : SafetyController?
mimic : JointMimic?
extra : Array[RawXmlNode]
} derive(Eq, Debug)fn Joint::continuous(name : String, parent~ : String, child~ : String, origin? : Origin, axis? : (Double, Double, Double), limit? : JointLimit?) -> Jointfn Joint::from_mates(name : String, joint_type : JointType, parent_link~ : String, parent_mate~ : MateConnector, child_link~ : String, child_mate~ : MateConnector, offset? : Double, angle_rad? : Double, flip_axis? : Bool, limit? : JointLimit?, dynamics? : JointDynamics?) -> Jointfn Joint::from_pair(name : String, joint_type : JointType, parent_link~ : String, parent_mate~ : MateConnector, child_link~ : String, child_mate~ : MateConnector, pair~ : MatePair, limit? : JointLimit?, dynamics? : JointDynamics?) -> Jointfn Joint::prismatic(name : String, parent~ : String, child~ : String, limit~ : JointLimit, origin? : Origin, axis? : (Double, Double, Double)) -> Jointfn Joint::revolute(name : String, parent~ : String, child~ : String, limit~ : JointLimit, origin? : Origin, axis? : (Double, Double, Double)) -> Jointfn JointLimit::new(effort~ : Double, velocity~ : Double, lower? : Double?, upper? : Double?) -> JointLimitpub struct Length {
meters : Double
}pub struct Mass {
kilograms : Double
}pub(all) struct RawXmlNode {
tag : String
attrs : Array[(String, String)]
text : String
children : Array[RawXmlNode]
} derive(Eq, Debug)fn Transmission::simple(name : String, joint_name : String, actuator_name : String, reduction? : Double, hardware_interface? : String) -> Transmissionfn UrdfBundle::package_xml(self : UrdfBundle, version? : String, description? : String, maintainer? : String, email? : String, license? : String) -> Stringfn fmt_num(n : Double) -> Stringfn snap_mates(parent_mate : MateConnector, child_mate : MateConnector, offset? : Double, angle_rad? : Double, flip_axis? : Bool) -> (Origin, (Double, Double, Double))fn v3_add(a : (Double, Double, Double), b : (Double, Double, Double)) -> (Double, Double, Double)fn v3_cross(a : (Double, Double, Double), b : (Double, Double, Double)) -> (Double, Double, Double)fn v3_sub(a : (Double, Double, Double), b : (Double, Double, Double)) -> (Double, Double, Double)async fn write_text_file(text : String, out_path : String?) -> Unitfn xml_escape(s : String) -> String