pub struct Leash {
pub translation: f64,
pub rotation: f64,
pub joint: f64,
}Expand description
How far the desired state may run ahead of the measured one. There is no echo of a torque
command to re-anchor the generator on, so every cycle it is anchored on the measured state
pulled toward the previous desired by at most this: while the arm follows, that is exactly
the previous desired and nothing changes; held back (a hand, an obstacle, an unreachable
target) the desired stays within the leash, the force on the arm is bounded by the
stiffness times the leash, and on release the generator resumes from where the arm is
under its budget. The leash bounds the force, not the release: the arm closes the gap it
was held back by under the spring alone, which can outrun the budget. Once a stop holds,
the leash pulls toward the held state instead, so an arm moved during the hold meets the
same bound. The observer reports what the leash took off as leash_alteration.
Fields§
§translation: f64Cartesian interface, translation, m. Default 0.025. The leash bounds the spring, so
the force on whoever holds the arm plateaus: roughly 40-50 N at the default gains in an
FER’s O_F_ext_hat_K estimate (750 N/m × 0.025 m = 18.75 N is the translational
spring alone with project_joint_gains, not
what the robot’s estimate shows). Gentle pushes read well under 30 N; a hard, fast
push briefly exceeds 60 N. Choose a collision force of 40 N for unattended runs and
60 N or more where people push.
rotation: f64Cartesian interface, rotation, rad. Default 0.15.
joint: f64Joint interface, per joint, rad. Default 0.1. On the joint interface the torque clamp,
not the leash, bounds the torque: at the leash the JOINT
preset pulls 60 Nm on joints 1 to 4 (under their 86 Nm clamp) and 25 / 15 / 5 Nm on the
wrist, where joints 5 and 6 meet the 11.5 Nm clamp first; the examples’ 20 Nm joint
collision threshold is reached at 0.033 rad on joints 1 to 4.
Trait Implementations§
impl Copy for Leash
impl StructuralPartialEq for Leash
Auto Trait Implementations§
impl Freeze for Leash
impl RefUnwindSafe for Leash
impl Send for Leash
impl Sync for Leash
impl Unpin for Leash
impl UnsafeUnpin for Leash
impl UnwindSafe for Leash
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.