pub struct URDFChain<const N: usize> { /* private fields */ }Expand description
FK chain using exact URDF joint transforms.
Accumulation works directly on columns:
- Translation:
t += fx·c0 + fy·c1 + fz·c2 - Fixed rotation:
(c0,c1,c2) = (c0,c1,c2) * fixed_rot - Joint rotation: 2D rotation on the appropriate column pair
When fixed_rot is identity (RPY = 0, the common case), step 2 is
skipped entirely, making per-joint cost a single 2D column rotation
plus translation — cheaper than DH.
Implementations§
Trait Implementations§
Source§impl<const N: usize> FKChain<N> for URDFChain<N>
impl<const N: usize> FKChain<N> for URDFChain<N>
type Error = DekeError
fn fk(&self, q: &SRobotQ<N>) -> Result<[Affine3A; N], Self::Error>
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<URDFChain<1>> for DynamicURDFChain
impl From<URDFChain<1>> for DynamicURDFChain
Source§impl From<URDFChain<2>> for DynamicURDFChain
impl From<URDFChain<2>> for DynamicURDFChain
Source§impl From<URDFChain<3>> for DynamicURDFChain
impl From<URDFChain<3>> for DynamicURDFChain
Source§impl From<URDFChain<4>> for DynamicURDFChain
impl From<URDFChain<4>> for DynamicURDFChain
Source§impl From<URDFChain<5>> for DynamicURDFChain
impl From<URDFChain<5>> for DynamicURDFChain
Source§impl From<URDFChain<6>> for DynamicURDFChain
impl From<URDFChain<6>> for DynamicURDFChain
Source§impl From<URDFChain<7>> for DynamicURDFChain
impl From<URDFChain<7>> for DynamicURDFChain
Auto Trait Implementations§
impl<const N: usize> Freeze for URDFChain<N>
impl<const N: usize> RefUnwindSafe for URDFChain<N>
impl<const N: usize> Send for URDFChain<N>
impl<const N: usize> Sync for URDFChain<N>
impl<const N: usize> Unpin for URDFChain<N>
impl<const N: usize> UnsafeUnpin for URDFChain<N>
impl<const N: usize> UnwindSafe for URDFChain<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