Container class that stores the underlying joint representation. Can represent basic joints within the plane, such as fixed (rigid attachment), float (free-flying in SE(2)), translate (free translation in R^2), prismatic (extension along the X-axis), and revolute (rotation).
More...
#include <joint.h>
|
|
| Joint (const std::string &name, Type type, const Eigen::VectorXd &lower, const Eigen::VectorXd &upper) |
| Constructor. Takes in name of joint (the frame this joint is associated with, normally) and the joint type to create underlying structures. More...
|
|
| Joint (const Joint &)=delete |
|
| Joint (Joint &&)=delete |
|
|
void | enforceBounds (Eigen::Ref< Eigen::VectorXd > q) const |
| Enforces joint limits on a joint configuration. More...
|
|
void | setRandom (Eigen::Ref< Eigen::VectorXd > q) const |
| sets the Joint at a random state respecting the limits. More...
|
|
bool | inBounds (const Eigen::Ref< const Eigen::VectorXd > &q) const |
| Checks if joint limits are satisfied for a joint configuration. More...
|
|
double | distance (const Eigen::Ref< const Eigen::VectorXd > &a, const Eigen::Ref< const Eigen::VectorXd > &b) const |
| Measures distance between two joint configurations. More...
|
|
void | interpolate (const Eigen::Ref< const Eigen::VectorXd > &from, const Eigen::Ref< const Eigen::VectorXd > &to, double t, Eigen::Ref< Eigen::VectorXd > state) const |
| Interpolate between two joint configurations. More...
|
|
std::pair< Eigen::VectorXd, Eigen::VectorXd > | getBounds () const |
| Get the bounds for this joint. For continuous joints, [-pi, pi] is returned. More...
|
|
|
std::string | printDebug () const |
| Print debug information about this frame. More...
|
|
|
const unsigned int | top_ |
| Top index for internal computations. More...
|
|
Container class that stores the underlying joint representation. Can represent basic joints within the plane, such as fixed (rigid attachment), float (free-flying in SE(2)), translate (free translation in R^2), prismatic (extension along the X-axis), and revolute (rotation).
Definition at line 31 of file joint.h.
◆ Type
Type of joint.
Enumerator |
---|
FIXED | Fixed joint, just a rigid transformation.
|
FLOAT | Floating joint, free movement in SE(2). Uses Euclidean metric.
|
FLYING | Floating joint, free movement in SE(2). Continuous rotation, uses SE(2) metric.
|
TRANSLATE | Translating joint, free X- and Y-axis movement.
|
PRISMATIC | Prismatic joint, extends along X-axis.
|
REVOLUTE | Revolute joint, rotates. Uses Euclidean metric.
|
CONTINUOUS | Revolute joint, rotates. Continuous rotation, uses SO(2) metric.
|
Definition at line 38 of file joint.h.
◆ Joint() [1/3]
Joint::Joint |
( |
const std::string & |
name, |
|
|
Type |
type, |
|
|
const Eigen::VectorXd & |
lower, |
|
|
const Eigen::VectorXd & |
upper |
|
) |
| |
Constructor. Takes in name of joint (the frame this joint is associated with, normally) and the joint type to create underlying structures.
- Parameters
-
[in] | name | Name of the joint. |
[in] | type | Type of the joint. |
[in] | lower | Lower limits of frame joint. |
[in] | upper | Upper limits of frame joint. |
Definition at line 31 of file joint.cpp.
◆ Joint() [2/3]
se2ez::Joint::Joint |
( |
const Joint & |
| ) |
|
|
delete |
◆ Joint() [3/3]
se2ez::Joint::Joint |
( |
Joint && |
| ) |
|
|
delete |
◆ distance()
double Joint::distance |
( |
const Eigen::Ref< const Eigen::VectorXd > & |
a, |
|
|
const Eigen::Ref< const Eigen::VectorXd > & |
b |
|
) |
| const |
Measures distance between two joint configurations.
- Parameters
-
[in] | a | First configuration. |
[in] | b | First configuration. |
- Returns
- Distance between a and b
Definition at line 115 of file joint.cpp.
◆ enforceBounds()
void Joint::enforceBounds |
( |
Eigen::Ref< Eigen::VectorXd > |
q | ) |
const |
Enforces joint limits on a joint configuration.
- Parameters
-
[in] | q | Configuration for the joint. |
Definition at line 82 of file joint.cpp.
◆ getBounds()
std::pair< Eigen::VectorXd, Eigen::VectorXd > Joint::getBounds |
( |
| ) |
const |
Get the bounds for this joint. For continuous joints, [-pi, pi] is returned.
- Returns
- A pair of lower and upper bounds for the joint.
Definition at line 149 of file joint.cpp.
◆ inBounds()
bool Joint::inBounds |
( |
const Eigen::Ref< const Eigen::VectorXd > & |
q | ) |
const |
Checks if joint limits are satisfied for a joint configuration.
- Parameters
-
[in] | q | Configuration for the joint. |
- Returns
- True if configuration is within bounds.
Definition at line 103 of file joint.cpp.
◆ interpolate()
void Joint::interpolate |
( |
const Eigen::Ref< const Eigen::VectorXd > & |
from, |
|
|
const Eigen::Ref< const Eigen::VectorXd > & |
to, |
|
|
double |
t, |
|
|
Eigen::Ref< Eigen::VectorXd > |
state |
|
) |
| const |
Interpolate between two joint configurations.
- Parameters
-
[in] | from | Initial configuration. |
[in] | to | Destination configuration. |
[in] | t | Interpolation parameter. |
[out] | state | Output configuration. |
- Returns
- Fills state with interpolated parameters.
Definition at line 125 of file joint.cpp.
◆ printDebug()
Print debug information about this frame.
- Returns
- A string of information about the frame.
Definition at line 168 of file joint.cpp.
◆ setRandom()
void Joint::setRandom |
( |
Eigen::Ref< Eigen::VectorXd > |
q | ) |
const |
sets the Joint at a random state respecting the limits.
- Parameters
-
[in] | q | Configuration for the joint. |
Definition at line 96 of file joint.cpp.
◆ stringToType()
Try to convert a string into a joint type. Not case-sensitive.
- Parameters
-
[in] | joint | String of joint type. See TYPE_STRINGS. |
- Returns
- The type of joint specified by the string, or an exception on failure.
Definition at line 14 of file joint.cpp.
◆ typeToString()
Converts a joint type into its string representation.
- Parameters
-
[in] | type | The type to convert. |
- Returns
- The joint type as a string.
Definition at line 23 of file joint.cpp.
◆ continuous
const bool se2ez::Joint::continuous |
Is this a continuous type joint?
Definition at line 140 of file joint.h.
◆ fixed
const bool se2ez::Joint::fixed |
Is this joint fixed?
Definition at line 141 of file joint.h.
◆ joints
Underlying KDL joints.
Definition at line 139 of file joint.h.
◆ lower
const Eigen::VectorXd se2ez::Joint::lower |
Lower limits of this frame's joint value (closed).
Definition at line 144 of file joint.h.
const unsigned int se2ez::Joint::n |
Number of joints.
Definition at line 142 of file joint.h.
◆ top_
const unsigned int se2ez::Joint::top_ |
|
private |
Top index for internal computations.
Definition at line 148 of file joint.h.
◆ type
const Type se2ez::Joint::type |
Type of joint.
Definition at line 138 of file joint.h.
◆ TYPE_MAX
const unsigned int se2ez::Joint::TYPE_MAX = CONTINUOUS |
|
static |
Maximum value a joint type can have.
Definition at line 49 of file joint.h.
◆ TYPE_STRINGS
Initial value:= {"fixed", "float", "flying", "translate",
"prismatic", "revolute", "continuous"}
String representation of joint type.
Definition at line 51 of file joint.h.
◆ upper
const Eigen::VectorXd se2ez::Joint::upper |
Upper limits of this frame's joint value (closed).
Definition at line 145 of file joint.h.
The documentation for this class was generated from the following files:
- /home/zak/code/se2ez_work/include/se2ez/core/joint.h
- /home/zak/code/se2ez_work/src/core/joint.cpp