pub enum ModelError {
Show 28 variants
NotNormalized {
kind: IdentifierKind,
value: String,
},
ReservedSeparator {
kind: IdentifierKind,
value: String,
},
MalformedCapabilityReference {
value: String,
},
MalformedAssetId {
value: String,
},
UnknownCapability {
reference: CapabilityRef,
},
CapabilityKindMismatch {
reference: CapabilityRef,
expected: CapabilityKind,
actual: CapabilityKind,
},
CapabilityTargetKind {
reference: CapabilityRef,
expected: StructuralKind,
},
UnknownBoundTarget {
reference: CapabilityRef,
kind: StructuralKind,
id: String,
},
UnknownDeclaredTarget {
component_type: ComponentTypeId,
capability_id: CapabilityId,
kind: StructuralKind,
id: String,
},
ComponentIdentityMismatch {
key: ComponentInstanceId,
embedded: ComponentInstanceId,
},
UnknownComponentType {
instance: ComponentInstanceId,
component_type: ComponentTypeId,
},
UnknownMountLink {
instance: ComponentInstanceId,
link: LinkId,
},
DirectionSign {
instance: ComponentInstanceId,
capability_id: CapabilityId,
value: i8,
},
UnknownDirectionSignCapability {
instance: ComponentInstanceId,
capability_id: CapabilityId,
},
UnknownRoleCapability {
instance: ComponentInstanceId,
capability_id: CapabilityId,
},
EmptyCapabilityRoles {
instance: ComponentInstanceId,
capability_id: CapabilityId,
},
DuplicateCapabilityRole {
instance: ComponentInstanceId,
capability_id: CapabilityId,
role: CapabilityRole,
},
SimulationWithoutComponentType {
component_type: ComponentTypeId,
},
SimulationWithoutCapability {
component_type: ComponentTypeId,
capability_id: CapabilityId,
},
SimulationCapabilityKindMismatch {
component_type: ComponentTypeId,
capability_id: CapabilityId,
simulated: CapabilityKind,
declared: CapabilityKind,
},
UnsupportedJointKind {
owner: JointOwner,
joint: JointId,
kind: JointKind,
},
MotionLimit {
field: MotionLimitField,
},
KinematicScalar {
kinematics: KinematicKind,
field: KinematicScalarField,
},
FootprintMovableJoint {
joint: JointId,
},
FootprintMesh {
link: LinkId,
},
FootprintNonFinite,
FootprintRadius,
Structure(StructureError),
}Expand description
A canonical robot model that violates the runtime model’s invariants.
Variants§
NotNormalized
An identifier is not a normalized token.
ReservedSeparator
An identifier contains the separator reserved for flattening a component’s structure into the robot’s.
MalformedCapabilityReference
A capability reference is not written as component.capability.
MalformedAssetId
A logical asset id is not a normalized relative forward-slash path.
UnknownCapability
A reference names a capability the robot does not declare.
Fields
reference: CapabilityRefCapabilityKindMismatch
A capability is not of the kind the caller requires.
CapabilityTargetKind
A capability does not target the kind of structural item the caller requires.
UnknownBoundTarget
A bound capability targets a structural item its component type does not define.
UnknownDeclaredTarget
A component type’s capability targets a structural item that type does not define.
ComponentIdentityMismatch
A component instance is filed under an id other than its own.
UnknownComponentType
A component instance names a component type the model did not load.
UnknownMountLink
A component instance mounts on a link the robot structure lacks.
DirectionSign
A direction sign is neither -1 nor 1.
UnknownDirectionSignCapability
A direction sign names a capability its component type does not declare.
UnknownRoleCapability
A capability role assignment names a capability its component type does not declare.
EmptyCapabilityRoles
A persisted role key must name at least one role.
DuplicateCapabilityRole
A persisted role list may not repeat a role and rely on set coercion.
SimulationWithoutComponentType
A simulation type has no component type to simulate.
Fields
component_type: ComponentTypeIdSimulationWithoutCapability
A simulated capability has no counterpart on the component type.
SimulationCapabilityKindMismatch
A simulated capability models a different kind than the component declares, so the simulator would drive the wrong device.
Fields
component_type: ComponentTypeIdcapability_id: CapabilityIdsimulated: CapabilityKinddeclared: CapabilityKindUnsupportedJointKind
A joint uses a kind the runtime cannot drive.
MotionLimit
A motion limit is not finite, positive, and representable as f32.
The f32 bound is not cosmetic: motion commands cross the bus as
f32, so a limit that does not survive the narrowing is not a limit.
Fields
field: MotionLimitFieldKinematicScalar
A kinematic scalar is not finite and positive.
FootprintMovableJoint
Stock safety cannot conservatively account for a collision shape that is attached below a movable joint.
FootprintMesh
Mesh dimensions depend on asset contents and therefore cannot be compiled into the source-free stock safety envelope.
FootprintNonFinite
A footprint scalar must remain finite after all fixed-joint transforms.
FootprintRadius
A compiled footprint radius is invalid, which must never enter a runtime bundle or authorize motion.
Structure(StructureError)
The canonical structure itself is invalid.
Trait Implementations§
Source§impl Debug for ModelError
impl Debug for ModelError
Source§impl Display for ModelError
impl Display for ModelError
Source§impl Error for ModelError
impl Error for ModelError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()