pub struct DHChain<const N: usize> { /* private fields */ }Expand description
Precomputed standard-DH chain with SoA layout.
Convention: T_i = Rz(θ) · Tz(d) · Tx(a) · Rx(α)
Implementations§
Trait Implementations§
Source§impl<const N: usize> FKChain<N> for DHChain<N>
impl<const N: usize> FKChain<N> for DHChain<N>
Source§fn fk(&self, q: &SRobotQ<N>) -> Result<[Affine3A; N], Self::Error>
fn fk(&self, q: &SRobotQ<N>) -> Result<[Affine3A; N], Self::Error>
DH forward kinematics exploiting the structure of Rz(θ)·Rx(α).
The per-joint accumulation decomposes into two 2D column rotations:
- Rotate
(c0, c1)by θ →(new_c0, perp) - Rotate
(perp, c2)by α →(new_c1, new_c2)Translation reusesnew_c0:t += a·new_c0 + d·old_c2
type Error = DekeError
fn fk_end(&self, q: &SRobotQ<N>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<N>,
) -> Result<([Vec3A; N], [Vec3A; N], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<N>, ) -> Result<([Vec3A; N], [Vec3A; N], Vec3A), 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 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).
Source§fn 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.Source§impl From<DHChain<1>> for DynamicDHChain
impl From<DHChain<1>> for DynamicDHChain
Source§impl From<DHChain<2>> for DynamicDHChain
impl From<DHChain<2>> for DynamicDHChain
Source§impl From<DHChain<3>> for DynamicDHChain
impl From<DHChain<3>> for DynamicDHChain
Source§impl From<DHChain<4>> for DynamicDHChain
impl From<DHChain<4>> for DynamicDHChain
Source§impl From<DHChain<5>> for DynamicDHChain
impl From<DHChain<5>> for DynamicDHChain
Source§impl From<DHChain<6>> for DynamicDHChain
impl From<DHChain<6>> for DynamicDHChain
Source§impl From<DHChain<7>> for DynamicDHChain
impl From<DHChain<7>> for DynamicDHChain
Auto Trait Implementations§
impl<const N: usize> Freeze for DHChain<N>
impl<const N: usize> RefUnwindSafe for DHChain<N>
impl<const N: usize> Send for DHChain<N>
impl<const N: usize> Sync for DHChain<N>
impl<const N: usize> Unpin for DHChain<N>
impl<const N: usize> UnsafeUnpin for DHChain<N>
impl<const N: usize> UnwindSafe for DHChain<N>
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