Skip to main content

Crate dynamics_joint

Crate dynamics_joint 

Source
Expand description

This crate is part of the dynamics ecosystem, and is not intended for direct use.

This module provides structures and traits to represent joints in a robot model.

§Architecture

In order to use static dispatch for different joint types while maintaining a common interface, the following architecture is implemented:

  • The JointModel trait defines the common interface, implemented by specific joint types.
  • Different joint types (e.g., JointModelContinuous, JointModelPrismatic, JointModelRevolute, JointModelFixed) implement the JointModel trait.
  • The JointModelImpl enum encapsulates different joint model implementations.
  • The JointWrapper struct provides a unified interface to interact with different joint types through the JointModel trait. This is the main entry point for users of the library.

§Joint types

The following joint types are implemented:

The following table summarizes the number of configuration variables (nq) and velocity variables (nv) for each joint type:

JointnqnvDescription
Continuous21Unbounded rotation
Prismatic11Linear motion
Revolute11Bounded rotation
Fixed00No motion

Modules§

continuous
Continuous joint, constraining two objects to rotate around a given axis, without limits.
fixed
Fixed joint, without any degree of freedom.
joint
Defines a generic joint model trait and a struct to wrap different joint types.
joint_data
Structure containing the mutable properties of a joint.
limits
Defines joint limits and related operations.
prismatic
Prismatic joint, constraining two objects to translate along a given axis.
revolute
Revolute joint, constraining two objects to rotate around a given axis.