pub struct PrismaticFK<const M: usize, const N: usize, F: FKScalar, FK: FKChain<N, F>> { /* private fields */ }Expand description
Wraps an FKChain<N, F> and prepends a prismatic (linear) joint, producing
an FKChain<M, F> where M = N + 1.
The prismatic joint always acts first in the kinematic chain — it
translates the entire arm along axis (world frame). The
q_index_first flag only controls where the prismatic value is read
from in SRobotQ<M, F>: when true it is q[0], when false it is
q[M-1].
Jacobian columns for the prismatic joint are [axis; 0] (pure linear,
no angular contribution). Because the prismatic uniformly shifts all
positions, the revolute Jacobian columns are identical to the inner
chain’s.
Implementations§
Trait Implementations§
Source§impl<const M: usize, const N: usize, F: Clone + FKScalar, FK: Clone + FKChain<N, F>> Clone for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F: Clone + FKScalar, FK: Clone + FKChain<N, F>> Clone for PrismaticFK<M, N, F, FK>
Source§fn clone(&self) -> PrismaticFK<M, N, F, FK>
fn clone(&self) -> PrismaticFK<M, N, F, FK>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const M: usize, const N: usize, F: Debug + FKScalar, FK: Debug + FKChain<N, F>> Debug for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F: Debug + FKScalar, FK: Debug + FKChain<N, F>> Debug for PrismaticFK<M, N, F, FK>
Source§impl<const M: usize, const N: usize, F: FKScalar, FK: FKChain<N, F>> FKChain<M, F> for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F: FKScalar, FK: FKChain<N, F>> FKChain<M, F> for PrismaticFK<M, 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.fn fk(&self, q: &SRobotQ<M, F>) -> Result<[F::AAffine3; M], Self::Error>
fn fk_end(&self, q: &SRobotQ<M, F>) -> Result<F::AAffine3, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<M, F>,
) -> Result<([F::AVec3; M], [F::AVec3; M], F::AVec3), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<M, F>, ) -> Result<([F::AVec3; M], [F::AVec3; M], F::AVec3), Self::Error>
Returns joint rotation axes and axis-origin positions in world frame at
configuration
q, plus the end-effector position.Source§fn jacobian(&self, q: &SRobotQ<M, F>) -> Result<[[F; M]; 6], Self::Error>
fn jacobian(&self, q: &SRobotQ<M, F>) -> Result<[[F; M]; 6], Self::Error>
Geometric Jacobian (6×N) at configuration
q.
Rows 0–2: linear velocity, rows 3–5: angular velocity.Source§fn jacobian_dot(
&self,
q: &SRobotQ<M, F>,
qdot: &SRobotQ<M, F>,
) -> Result<[[F; M]; 6], Self::Error>
fn jacobian_dot( &self, q: &SRobotQ<M, F>, qdot: &SRobotQ<M, F>, ) -> Result<[[F; M]; 6], Self::Error>
First time-derivative of the geometric Jacobian.
Source§fn jacobian_ddot(
&self,
q: &SRobotQ<M, F>,
qdot: &SRobotQ<M, F>,
qddot: &SRobotQ<M, F>,
) -> Result<[[F; M]; 6], Self::Error>
fn jacobian_ddot( &self, q: &SRobotQ<M, F>, qdot: &SRobotQ<M, F>, qddot: &SRobotQ<M, F>, ) -> Result<[[F; M]; 6], Self::Error>
Second time-derivative of the geometric Jacobian.
fn dof(&self) -> usize
Source§impl<const M: usize, const N: usize, FK32, FK64> From<PrismaticFK<M, N, f32, FK32>> for PrismaticFK<M, N, f64, FK64>
impl<const M: usize, const N: usize, FK32, FK64> From<PrismaticFK<M, N, f32, FK32>> for PrismaticFK<M, N, f64, FK64>
Source§fn from(p: PrismaticFK<M, N, f32, FK32>) -> Self
fn from(p: PrismaticFK<M, N, f32, FK32>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<const M: usize, const N: usize, F, FK> Freeze for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F, FK> RefUnwindSafe for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F, FK> Send for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F, FK> Sync for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F, FK> Unpin for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F, FK> UnsafeUnpin for PrismaticFK<M, N, F, FK>
impl<const M: usize, const N: usize, F, FK> UnwindSafe for PrismaticFK<M, 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