#[repr(u64)]
pub enum FrankaError {
Show 41 variants JointPositionLimitsViolation, CartesianPositionLimitsViolation, SelfCollisionAvoidanceViolation, JointVelocityViolation, CartesianVelocityViolation, ForceControlSafetyViolation, JointReflex, CartesianReflex, MaxGoalPoseDeviationViolation, MaxPathPoseDeviationViolation, CartesianVelocityProfileSafetyViolation, JointPositionMotionGeneratorStartPoseInvalid, JointMotionGeneratorPositionLimitsViolation, JointMotionGeneratorVelocityLimitsViolation, JointMotionGeneratorVelocityDiscontinuity, JointMotionGeneratorAccelerationDiscontinuity, CartesianPositionMotionGeneratorStartPoseInvalid, CartesianMotionGeneratorElbowLimitViolation, CartesianMotionGeneratorVelocityLimitsViolation, CartesianMotionGeneratorVelocityDiscontinuity, CartesianMotionGeneratorAccelerationDiscontinuity, CartesianMotionGeneratorElbowSignInconsistent, CartesianMotionGeneratorStartElbowInvalid, ForceControllerDesiredForceToleranceViolation, StartElbowSignInconsistent, CommunicationConstraintsViolation, PowerLimitViolation, CartesianMotionGeneratorJointPositionLimitsViolation, CartesianMotionGeneratorJointVelocityLimitsViolation, CartesianMotionGeneratorJointVelocityDiscontinuity, CartesianMotionGeneratorJointAccelerationDiscontinuity, CartesianPositionMotionGeneratorInvalidFrame, ControllerTorqueDiscontinuity, JointP2PInsufficientTorqueForPlanning, TauJRangeViolation, InstabilityDetection, JointMoveInWrongDirection, CartesianSplineViolation, JointViaPlanLimitViolation, BaseAccelerationInitializationTimeout, BaseAccelerationInvalidReading,
}
Expand description

Controlling errors of the robot.

Variants

JointPositionLimitsViolation

The robot moved past the joint limits.

CartesianPositionLimitsViolation

The robot moved past any of the virtual walls.

SelfCollisionAvoidanceViolation

The robot would have collided with itself

JointVelocityViolation

The robot exceeded joint velocity limits.

CartesianVelocityViolation

The robot exceeded Cartesian velocity limits.

ForceControlSafetyViolation

The robot exceeded safety threshold during force control.

JointReflex

A collision was detected, i.e.\ the robot exceeded a torque threshold in a joint motion.

CartesianReflex

A collision was detected, i.e.\ the robot exceeded a torque threshold in a Cartesian motion.

MaxGoalPoseDeviationViolation

Internal motion generator did not reach the goal pose.

MaxPathPoseDeviationViolation

True if internal motion generator deviated from the path.

CartesianVelocityProfileSafetyViolation

Cartesian velocity profile for internal motions was exceeded.

JointPositionMotionGeneratorStartPoseInvalid

An external joint position motion generator was started with a pose too far from the current pose.

JointMotionGeneratorPositionLimitsViolation

An external joint motion generator would move into a joint limit.

JointMotionGeneratorVelocityLimitsViolation

An external joint motion generator exceeded velocity limits.

JointMotionGeneratorVelocityDiscontinuity

Commanded velocity in joint motion generators is discontinuous (target values are too far apart).

JointMotionGeneratorAccelerationDiscontinuity

Commanded acceleration in joint motion generators is discontinuous (target values are too far apart).

CartesianPositionMotionGeneratorStartPoseInvalid

An external Cartesian position motion generator was started with a pose too far from the current pose.

CartesianMotionGeneratorElbowLimitViolation

An external Cartesian motion generator would move into an elbow limit.

CartesianMotionGeneratorVelocityLimitsViolation

An external Cartesian motion generator would move with too high velocity.

CartesianMotionGeneratorVelocityDiscontinuity

Commanded velocity in Cartesian motion generators is discontinuous (target values are too far apart).

CartesianMotionGeneratorAccelerationDiscontinuity

Commanded acceleration in Cartesian motion generators is discontinuous (target values are too far apart).

CartesianMotionGeneratorElbowSignInconsistent

Commanded elbow values in Cartesian motion generators are inconsistent.

CartesianMotionGeneratorStartElbowInvalid

The first elbow value in Cartesian motion generators is too far from initial one.

ForceControllerDesiredForceToleranceViolation

The torque set by the external controller is discontinuous.

StartElbowSignInconsistent

The start elbow sign was inconsistent. Applies only to motions started from Desk.

CommunicationConstraintsViolation

Minimum network communication quality could not be held during a motion.

PowerLimitViolation

Commanded values would result in exceeding the power limit.

CartesianMotionGeneratorJointPositionLimitsViolation

The joint position limits would be exceeded after IK calculation.

CartesianMotionGeneratorJointVelocityLimitsViolation

The joint velocity limits would be exceeded after IK calculation.

CartesianMotionGeneratorJointVelocityDiscontinuity

The joint velocity in Cartesian motion generators is discontinuous after IK calculation

CartesianMotionGeneratorJointAccelerationDiscontinuity

The joint acceleration in Cartesian motion generators is discontinuous after IK calculation.

CartesianPositionMotionGeneratorInvalidFrame

Cartesian pose is not a valid transformation matrix.

ControllerTorqueDiscontinuity

The torque set by the external controller is discontinuous.

JointP2PInsufficientTorqueForPlanning

The robot is overloaded for the required motion.

Applies only to motions started from Desk.

TauJRangeViolation

The measured torque signal is out of the safe range.

InstabilityDetection

An instability is detected.

JointMoveInWrongDirection

The robot is in joint position limits violation error and the user guides the robot further towards the limit.

CartesianSplineViolation

The generated motion violates a joint limit.

JointViaPlanLimitViolation

The generated motion violates a joint limit.

BaseAccelerationInitializationTimeout

The gravity vector could not be initialized by measuring the base acceleration.

BaseAccelerationInvalidReading

Base acceleration O_ddP_O cannot be determined.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Formats the value using the given formatter. Read more

Converts an i64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an u64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an isize to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an i8 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an i16 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an i32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an i128 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts a usize to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an u8 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an u16 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an u32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts an u128 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts a f32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

Converts a f64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Converts the value of self to an i64. If the value cannot be represented by an i64, then None is returned. Read more

Converts the value of self to a u64. If the value cannot be represented by a u64, then None is returned. Read more

Converts the value of self to an isize. If the value cannot be represented by an isize, then None is returned. Read more

Converts the value of self to an i8. If the value cannot be represented by an i8, then None is returned. Read more

Converts the value of self to an i16. If the value cannot be represented by an i16, then None is returned. Read more

Converts the value of self to an i32. If the value cannot be represented by an i32, then None is returned. Read more

Converts the value of self to an i128. If the value cannot be represented by an i128 (i64 under the default implementation), then None is returned. Read more

Converts the value of self to a usize. If the value cannot be represented by a usize, then None is returned. Read more

Converts the value of self to a u8. If the value cannot be represented by a u8, then None is returned. Read more

Converts the value of self to a u16. If the value cannot be represented by a u16, then None is returned. Read more

Converts the value of self to a u32. If the value cannot be represented by a u32, then None is returned. Read more

Converts the value of self to a u128. If the value cannot be represented by a u128 (u64 under the default implementation), then None is returned. Read more

Converts the value of self to an f32. Overflows may map to positive or negative inifinity, otherwise None is returned if the value cannot be represented by an f32. Read more

Converts the value of self to an f64. Overflows may map to positive or negative inifinity, otherwise None is returned if the value cannot be represented by an f64. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

Performance hack: Clone doesn’t get inlined for Copy types in debug mode, so make it inline anyway.

Tests if Self the same as the type T Read more

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more

Checks if self is actually part of its subset T (and can be converted to it).

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

The inclusion map: converts self to the equivalent element of its superset.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.