pub struct IkOptions {
pub damping: f64,
pub nullspace_gain: f64,
pub iterations: u32,
pub tolerance: f64,
pub limit_margin: f64,
pub max_step: f64,
}Expand description
Options of the Cartesian backend’s differential inverse kinematics: every cycle, from the
previous joint goal, up to iterations damped-least-squares steps toward the pose, a
posture bias through the nullspace, the step capped at max_step and clamped inside the
joint limits.
Fields§
§damping: f64λ of the damped least squares Jᵀ (J Jᵀ + λ² I)⁻¹. Default 0.05.
nullspace_gain: f64Gain, 1/s, of the nullspace pull toward the posture; the pull moves no joint faster
than MAX_POSTURE_RATE whatever the gain and the distance. Default 1.0.
iterations: u32Steps per cycle. Default 3.
tolerance: f64Residual (m plus rad, one norm) below which a cycle stops iterating. Default 1e-6.
limit_margin: f64How far, rad, inside the joint position limits the solution is kept, its start (the measured configuration) included. Default 0.02.
max_step: f64The most, rad, any joint of the solution moves in one cycle: a larger step is scaled down as a whole, so an unreachable or singular pose is approached at a bounded rate instead of jumped at. Default 0.01 (10 rad/s).
Implementations§
Source§impl IkOptions
impl IkOptions
Sourcepub fn validate(&self) -> FrankaResult<()>
pub fn validate(&self) -> FrankaResult<()>
§Errors
FrankaError::InvalidArgument unless damping and max_step are finite and
positive, nullspace_gain, tolerance and limit_margin finite and non-negative, and
iterations at least one.
Trait Implementations§
impl Copy for IkOptions
impl StructuralPartialEq for IkOptions
Auto Trait Implementations§
impl Freeze for IkOptions
impl RefUnwindSafe for IkOptions
impl Send for IkOptions
impl Sync for IkOptions
impl Unpin for IkOptions
impl UnsafeUnpin for IkOptions
impl UnwindSafe for IkOptions
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.