pub struct TransformedFK<const N: usize, F: FKScalar, FK: FKChain<N, F>> { /* private fields */ }Expand description
Wraps an FKChain with an optional prefix (base) and/or suffix (tool) transform.
fkapplies only the prefix — intermediate frames stay in world coordinates without the tool offset.fk_endandjoint_axes_positionsapply both — the end-effector includes the tool tip.
Implementations§
Source§impl<const N: usize, F: FKScalar, FK: FKChain<N, F>> TransformedFK<N, F, FK>
impl<const N: usize, F: FKScalar, FK: FKChain<N, F>> TransformedFK<N, F, FK>
pub const fn new(inner: FK) -> Self
pub fn with_prefix(self, prefix: F::AAffine3) -> Self
pub fn with_suffix(self, suffix: F::AAffine3) -> Self
Sourcepub fn with_prefix_opt(self, prefix: Option<F::AAffine3>) -> Self
pub fn with_prefix_opt(self, prefix: Option<F::AAffine3>) -> Self
Infallible setter for the prefix. None clears any previously set prefix.
Sourcepub fn with_suffix_opt(self, suffix: Option<F::AAffine3>) -> Self
pub fn with_suffix_opt(self, suffix: Option<F::AAffine3>) -> Self
Infallible setter for the suffix. None clears any previously set suffix.
pub fn set_prefix(&mut self, prefix: Option<F::AAffine3>)
pub fn set_suffix(&mut self, suffix: Option<F::AAffine3>)
pub fn prefix(&self) -> Option<&F::AAffine3>
pub fn suffix(&self) -> Option<&F::AAffine3>
pub fn inner(&self) -> &FK
Source§impl<const N: usize, FK: FKChain<N, f32>> TransformedFK<N, f32, FK>
impl<const N: usize, FK: FKChain<N, f32>> TransformedFK<N, f32, FK>
Sourcepub fn with_prefix_joints(
self,
joints: &[URDFJoint],
) -> Result<Self, URDFBuildError>
pub fn with_prefix_joints( self, joints: &[URDFJoint], ) -> Result<Self, URDFBuildError>
Compose a slice of fixed URDF joints (parent→child order) and set the
result as the base-side prefix transform, replacing any existing
prefix. Every joint in joints must be URDFJointType::Fixed. An
empty slice clears the prefix.
Sourcepub fn with_suffix_joints(
self,
joints: &[URDFJoint],
) -> Result<Self, URDFBuildError>
pub fn with_suffix_joints( self, joints: &[URDFJoint], ) -> Result<Self, URDFBuildError>
Compose a slice of fixed URDF joints (parent→child order) and set the
result as the tool-side suffix transform, replacing any existing
suffix. Every joint in joints must be URDFJointType::Fixed. An
empty slice clears the suffix.
Trait Implementations§
Source§impl<const N: usize, F: Clone + FKScalar, FK: Clone + FKChain<N, F>> Clone for TransformedFK<N, F, FK>
impl<const N: usize, F: Clone + FKScalar, FK: Clone + FKChain<N, F>> Clone for TransformedFK<N, F, FK>
Source§fn clone(&self) -> TransformedFK<N, F, FK>
fn clone(&self) -> TransformedFK<N, F, FK>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const N: usize, F: Debug + FKScalar, FK: Debug + FKChain<N, F>> Debug for TransformedFK<N, F, FK>
impl<const N: usize, F: Debug + FKScalar, FK: Debug + FKChain<N, F>> Debug for TransformedFK<N, F, FK>
Source§impl<const N: usize, F: FKScalar, FK: FKChain<N, F>> FKChain<N, F> for TransformedFK<N, F, FK>
impl<const N: usize, F: FKScalar, FK: FKChain<N, F>> FKChain<N, F> for TransformedFK<N, F, FK>
type Error = <FK as FKChain<N, F>>::Error
Source§fn base_tf(&self) -> F::AAffine3
fn base_tf(&self) -> F::AAffine3
Configuration-independent transform from the robot’s base frame to the
world frame. Defaults to identity; wrappers that install a static
prefix (e.g.
TransformedFK with a prefix set, or URDFChain
with fixed leading joints baked in) override this so downstream
consumers (collision validators, visualizers) can place the static
base body at the correct pose.Source§fn max_reach(&self) -> Result<F, Self::Error>
fn max_reach(&self) -> Result<F, Self::Error>
Theoretical maximum reach: sum of link lengths (upper bound, ignores joint limits).
fn fk(&self, q: &SRobotQ<N, F>) -> Result<[F::AAffine3; N], Self::Error>
fn fk_end(&self, q: &SRobotQ<N, F>) -> Result<F::AAffine3, Self::Error>
Source§fn all_fk(
&self,
q: &SRobotQ<N, F>,
) -> Result<(F::AAffine3, [F::AAffine3; N], F::AAffine3), Self::Error>
fn all_fk( &self, q: &SRobotQ<N, F>, ) -> Result<(F::AAffine3, [F::AAffine3; N], F::AAffine3), Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<N, F>,
) -> Result<([F::AVec3; N], [F::AVec3; N], F::AVec3), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<N, F>, ) -> Result<([F::AVec3; N], [F::AVec3; N], F::AVec3), Self::Error>
Returns joint rotation axes and axis-origin positions in world frame at
configuration
q, plus the end-effector position.fn dof(&self) -> usize
Source§fn jacobian(&self, q: &SRobotQ<N, F>) -> Result<[[F; N]; 6], Self::Error>
fn jacobian(&self, q: &SRobotQ<N, F>) -> Result<[[F; N]; 6], Self::Error>
Geometric Jacobian (6×N) at configuration
q.
Rows 0–2: linear velocity, rows 3–5: angular velocity.Source§impl<const N: usize, FK32, FK64> From<TransformedFK<N, f32, FK32>> for TransformedFK<N, f64, FK64>
impl<const N: usize, FK32, FK64> From<TransformedFK<N, f32, FK32>> for TransformedFK<N, f64, FK64>
Source§fn from(t: TransformedFK<N, f32, FK32>) -> Self
fn from(t: TransformedFK<N, f32, FK32>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<const N: usize, F, FK> Freeze for TransformedFK<N, F, FK>
impl<const N: usize, F, FK> RefUnwindSafe for TransformedFK<N, F, FK>
impl<const N: usize, F, FK> Send for TransformedFK<N, F, FK>
impl<const N: usize, F, FK> Sync for TransformedFK<N, F, FK>
impl<const N: usize, F, FK> Unpin for TransformedFK<N, F, FK>
impl<const N: usize, F, FK> UnsafeUnpin for TransformedFK<N, F, FK>
impl<const N: usize, F, FK> UnwindSafe for TransformedFK<N, F, FK>
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
Mutably borrows from an owned value. Read more