pub enum DynamicDHChain {
J1(DHChain<1>),
J2(DHChain<2>),
J3(DHChain<3>),
J4(DHChain<4>),
J5(DHChain<5>),
J6(DHChain<6>),
J7(DHChain<7>),
J8(DHChain<8>),
}Variants§
J1(DHChain<1>)
J2(DHChain<2>)
J3(DHChain<3>)
J4(DHChain<4>)
J5(DHChain<5>)
J6(DHChain<6>)
J7(DHChain<7>)
J8(DHChain<8>)
Implementations§
Source§impl DynamicDHChain
impl DynamicDHChain
pub fn try_new(joints: Vec<DHJoint>) -> DekeResult<Self>
pub fn dof(&self) -> usize
pub fn fk_dyn(&self, q: &[f32]) -> DekeResult<Vec<Affine3A>>
pub fn fk_end_dyn(&self, q: &[f32]) -> DekeResult<Affine3A>
Source§impl DynamicDHChain
impl DynamicDHChain
pub fn from_chain(chain: impl Into<Self>) -> Self
Trait Implementations§
Source§impl Clone for DynamicDHChain
impl Clone for DynamicDHChain
Source§fn clone(&self) -> DynamicDHChain
fn clone(&self) -> DynamicDHChain
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 Debug for DynamicDHChain
impl Debug for DynamicDHChain
Source§impl FKChain<1> for DynamicDHChain
impl FKChain<1> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<1>) -> Result<[Affine3A; 1], Self::Error>
fn fk_end(&self, q: &SRobotQ<1>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<1>,
) -> Result<([Vec3A; 1], [Vec3A; 1], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<1>, ) -> Result<([Vec3A; 1], [Vec3A; 1], 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 FKChain<2> for DynamicDHChain
impl FKChain<2> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<2>) -> Result<[Affine3A; 2], Self::Error>
fn fk_end(&self, q: &SRobotQ<2>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<2>,
) -> Result<([Vec3A; 2], [Vec3A; 2], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<2>, ) -> Result<([Vec3A; 2], [Vec3A; 2], 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 FKChain<3> for DynamicDHChain
impl FKChain<3> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<3>) -> Result<[Affine3A; 3], Self::Error>
fn fk_end(&self, q: &SRobotQ<3>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<3>,
) -> Result<([Vec3A; 3], [Vec3A; 3], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<3>, ) -> Result<([Vec3A; 3], [Vec3A; 3], 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 FKChain<4> for DynamicDHChain
impl FKChain<4> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<4>) -> Result<[Affine3A; 4], Self::Error>
fn fk_end(&self, q: &SRobotQ<4>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<4>,
) -> Result<([Vec3A; 4], [Vec3A; 4], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<4>, ) -> Result<([Vec3A; 4], [Vec3A; 4], 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 FKChain<5> for DynamicDHChain
impl FKChain<5> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<5>) -> Result<[Affine3A; 5], Self::Error>
fn fk_end(&self, q: &SRobotQ<5>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<5>,
) -> Result<([Vec3A; 5], [Vec3A; 5], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<5>, ) -> Result<([Vec3A; 5], [Vec3A; 5], 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 FKChain<6> for DynamicDHChain
impl FKChain<6> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<6>) -> Result<[Affine3A; 6], Self::Error>
fn fk_end(&self, q: &SRobotQ<6>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<6>,
) -> Result<([Vec3A; 6], [Vec3A; 6], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<6>, ) -> Result<([Vec3A; 6], [Vec3A; 6], 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 FKChain<7> for DynamicDHChain
impl FKChain<7> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<7>) -> Result<[Affine3A; 7], Self::Error>
fn fk_end(&self, q: &SRobotQ<7>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<7>,
) -> Result<([Vec3A; 7], [Vec3A; 7], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<7>, ) -> Result<([Vec3A; 7], [Vec3A; 7], 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 FKChain<8> for DynamicDHChain
impl FKChain<8> for DynamicDHChain
type Error = DekeError
Source§fn 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.fn fk(&self, q: &SRobotQ<8>) -> Result<[Affine3A; 8], Self::Error>
fn fk_end(&self, q: &SRobotQ<8>) -> Result<Affine3A, Self::Error>
Source§fn joint_axes_positions(
&self,
q: &SRobotQ<8>,
) -> Result<([Vec3A; 8], [Vec3A; 8], Vec3A), Self::Error>
fn joint_axes_positions( &self, q: &SRobotQ<8>, ) -> Result<([Vec3A; 8], [Vec3A; 8], 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 Freeze for DynamicDHChain
impl RefUnwindSafe for DynamicDHChain
impl Send for DynamicDHChain
impl Sync for DynamicDHChain
impl Unpin for DynamicDHChain
impl UnsafeUnpin for DynamicDHChain
impl UnwindSafe for DynamicDHChain
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