pub struct IkOptions {
pub damping: f64,
pub nullspace_gain: f64,
pub iterations: u32,
pub tolerance: f64,
pub rotation_weight: 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 inside
the cycle’s joint box, with a posture bias through the nullspace.
Fields§
§damping: f64λ of the damped least squares J̃ᵀ (J̃ J̃ᵀ + λ² I)⁻¹ on the weighted Jacobian
J̃ = W J, its rotation rows scaled by rotation_weight. 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: f64Weighted residual below which a cycle stops iterating. Default 1e-6.
rotation_weight: f64m per rad: the orientation error’s weight against the position error’s in the task, the
residual and tolerance. At 0.1, 1 mm costs as much as 10 mrad, so a pose the joints
cannot reach gives up orientation before position; while a joint limit stalls the goal,
position comes first, to within micrometres. Within (0, 1]. Default 0.1.
Implementations§
Source§impl IkOptions
impl IkOptions
Sourcepub fn validate(&self) -> FrankaResult<()>
pub fn validate(&self) -> FrankaResult<()>
§Errors
FrankaError::InvalidArgument unless it has a finite, positive damping, finite and
non-negative nullspace_gain and tolerance, a rotation_weight within (0, 1], and at least
one iteration.
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.