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
JointModeltrait defines the common interface, implemented by specific joint types. - Different joint types (e.g.,
JointModelContinuous,JointModelPrismatic,JointModelRevolute,JointModelFixed) implement theJointModeltrait. - The
JointModelImplenum encapsulates different joint model implementations. - The
JointWrapperstruct provides a unified interface to interact with different joint types through theJointModeltrait. This is the main entry point for users of the library.
§Joint types
The following joint types are implemented:
continuous::JointModelContinuous: Represents a continuous joint that can rotate indefinitely around a fixed axis.prismatic::JointModelPrismatic: Represents a prismatic joint that allows linear motion along a fixed axis.revolute::JointModelRevolute: Represents a revolute joint that allows rotation around a fixed axis with limits. This is similar to the continuous joint but with defined limits on the rotation.fixed::JointModelFixed: Represents a fixed joint with no degrees of freedom.
The following table summarizes the number of configuration variables (nq) and velocity variables (nv) for each joint type:
| Joint | nq | nv | Description |
|---|---|---|---|
| Continuous | 2 | 1 | Unbounded rotation |
| Prismatic | 1 | 1 | Linear motion |
| Revolute | 1 | 1 | Bounded rotation |
| Fixed | 0 | 0 | No 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.