pub trait FKChain<const N: usize>:
Clone
+ Send
+ Sync {
type Error: Into<DekeError>;
// Required methods
fn fk(&self, q: &SRobotQ<N>) -> Result<[Affine3A; N], Self::Error>;
fn fk_end(&self, q: &SRobotQ<N>) -> Result<Affine3A, Self::Error>;
fn joint_axes_positions(
&self,
q: &SRobotQ<N>,
) -> Result<([Vec3A; N], [Vec3A; N], Vec3A), Self::Error>;
// Provided methods
fn dof(&self) -> usize { ... }
fn base_tf(&self) -> Affine3A { ... }
fn max_reach(&self) -> Result<f32, Self::Error> { ... }
fn jacobian(&self, q: &SRobotQ<N>) -> Result<[[f32; N]; 6], Self::Error> { ... }
fn jacobian_dot(
&self,
q: &SRobotQ<N>,
qdot: &SRobotQ<N>,
) -> Result<[[f32; N]; 6], Self::Error> { ... }
fn jacobian_ddot(
&self,
q: &SRobotQ<N>,
qdot: &SRobotQ<N>,
qddot: &SRobotQ<N>,
) -> Result<[[f32; N]; 6], Self::Error> { ... }
}Required Associated Types§
Required Methods§
fn fk(&self, q: &SRobotQ<N>) -> Result<[Affine3A; N], Self::Error>
fn fk_end(&self, q: &SRobotQ<N>) -> Result<Affine3A, Self::Error>
Provided Methods§
fn dof(&self) -> usize
Sourcefn base_tf(&self) -> Affine3A
fn base_tf(&self) -> Affine3A
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.
Sourcefn max_reach(&self) -> Result<f32, Self::Error>
fn max_reach(&self) -> Result<f32, Self::Error>
Theoretical maximum reach: sum of link lengths (upper bound, ignores joint limits).
Sourcefn jacobian(&self, q: &SRobotQ<N>) -> Result<[[f32; N]; 6], Self::Error>
fn jacobian(&self, q: &SRobotQ<N>) -> Result<[[f32; N]; 6], Self::Error>
Geometric Jacobian (6×N) at configuration q.
Rows 0–2: linear velocity, rows 3–5: angular velocity.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.