Robowflex
v0.1
Making MoveIt Easy
|
The specification of a TSR. More...
#include <tsr.h>
Public Member Functions | |
Constructors | |
Specification ()=default | |
Default constructor. More... | |
Specification (const std::string &structure, const std::string &target_frame, const Eigen::Ref< const Eigen::Vector3d > &position, const Eigen::Quaterniond &rotation) | |
Constructor for basic pose TSR constrained in world frame. More... | |
void | setTarget (const std::string &structure, const std::string &frame) |
Setting TSR Frame. More... | |
void | setBase (const std::string &structure, const std::string &frame) |
Set the base frame. More... | |
void | setFrame (const std::string &structure, const std::string &target, const std::string &base=magic::ROOT_FRAME) |
Set the base and target frame. More... | |
void | addSuffix (const std::string &suffix) |
Add a suffix to the structures for the target and base frame. More... | |
void | setPosition (const Eigen::Ref< const Eigen::Vector3d > &position) |
Setting TSR Pose. More... | |
void | setPosition (double x, double y, double z) |
Set the position of the TSR. More... | |
void | setRotation (const Eigen::Quaterniond &orientation) |
Set the rotation of the TSR. More... | |
void | setRotation (double w, double x, double y, double z) |
Set the rotation of the TSR as a quaternion. More... | |
void | setRotation (double x, double y, double z) |
Set the rotation of the TSR as XYZ Euler angles. More... | |
void | setPose (const RobotPose &other) |
Set the pose of the TSR. More... | |
void | setPose (const Eigen::Ref< const Eigen::Vector3d > &position, const Eigen::Quaterniond &rotation) |
Set the pose of the TSR. More... | |
void | setPose (double xp, double yp, double zp, double wr, double xr, double yr, double zr) |
Set the pose of the TSR. More... | |
void | setPoseFromWorld (const WorldPtr &world) |
Set the pose of the TSR for the desired frame in a provided world. Uses world's current configuration. More... | |
void | setXPosTolerance (double bound) |
Setting Position Tolerances. More... | |
void | setYPosTolerance (double bound) |
Set the Y position tolerance to (-bound, bound). More... | |
void | setZPosTolerance (double bound) |
Set the Z position tolerance to (-bound, bound). More... | |
void | setXPosTolerance (double lower, double upper) |
Set the X position tolerance to (lower, upper). More... | |
void | setYPosTolerance (double lower, double upper) |
Set the Y position tolerance to (lower, upper). More... | |
void | setZPosTolerance (double lower, double upper) |
Set the Z position tolerance to (lower, upper). More... | |
void | setNoXPosTolerance () |
Set no position tolerance on the X-axis. More... | |
void | setNoYPosTolerance () |
Set no position tolerance on the Y-axis. More... | |
void | setNoZPosTolerance () |
Set no position tolerance on the Z-axis. More... | |
void | setNoPosTolerance () |
Set no position tolerance at all. More... | |
void | setXRotTolerance (double bound) |
Setting Orientation Tolerances. More... | |
void | setYRotTolerance (double bound) |
Set the Y orientation tolerance to (-bound, bound). More... | |
void | setZRotTolerance (double bound) |
Set the Z orientation tolerance to (-bound, bound). More... | |
void | setXRotTolerance (double lower, double upper) |
Set the X orientation tolerance to (lower, upper). More... | |
void | setYRotTolerance (double lower, double upper) |
Set the Y orientation tolerance to (lower, upper). More... | |
void | setZRotTolerance (double lower, double upper) |
Set the Z orientation tolerance to (lower, upper). More... | |
void | setNoXRotTolerance () |
Set no orientation tolerance on the X-axis. More... | |
void | setNoYRotTolerance () |
Set no orientation tolerance on the Y-axis. More... | |
void | setNoZRotTolerance () |
Set no orientation tolerance on the Z-axis. More... | |
void | setNoRotTolerance () |
Set no orientation tolerance at all. More... | |
Eigen::Vector3d | getPosition () const |
Getters and Informative Methods. More... | |
Eigen::Quaterniond | getRotation () const |
Get the current desired orientation. More... | |
Eigen::Vector3d | getEulerRotation () const |
Get the current desired orientation. More... | |
bool | isPositionConstrained () const |
Returns true if TSR is position constrained. More... | |
bool | isRotationConstrained () const |
Returns true if TSR is orientation constrained. More... | |
bool | isRelative () const |
Returns true if TSR is a relative reference frame (not the world). More... | |
void | print (std::ostream &out) const |
Print out this TSR information. More... | |
bool | intersect (const Specification &other) |
Operations. More... | |
Public Attributes | |
struct { | |
std::string structure | |
Structure target frame is in. More... | |
std::string frame | |
Name of target frame. More... | |
} | target |
Target frame. More... | |
struct { | |
std::string structure | |
Structure base frame is in. More... | |
std::string frame {magic::ROOT_FRAME} | |
Name of base frame. More... | |
} | base |
Base frame. More... | |
RobotPose | pose {RobotPose::Identity()} |
Pose of TSR. More... | |
struct { | |
ROBOWFLEX_EIGEN Eigen::Vector3d upper {magic::DEFAULT_IK_TOLERANCES} | |
Upper position tolerance. More... | |
Eigen::Vector3d lower {-magic::DEFAULT_IK_TOLERANCES} | |
Lower position tolerance. More... | |
} | position |
Position tolerances. More... | |
struct { | |
ROBOWFLEX_EIGEN Eigen::Vector3d upper {magic::DEFAULT_IK_TOLERANCES} | |
Upper orientation tolerance. More... | |
Eigen::Vector3d lower {-magic::DEFAULT_IK_TOLERANCES} | |
Lower orientation tolerance. More... | |
} | orientation |
Orientation tolerances. More... | |
std::size_t | dimension {6} |
Number of constrained dimensions. More... | |
std::vector< bool > | indices {std::vector<bool>(6, true)} |
Vector of active constraints. If an index is true, that constraint is active. Ordered by X-, Y-, Z- orientation constraints, then X-, Y-, Z- position. More... | |
std::size_t | maxIter {50} |
Maximum iterations for solver. More... | |
double | tolerance {magic::DEFAULT_IK_TOLERANCE} |
Tolerance on solution for solver. More... | |
Private Member Functions | |
void | fixBounds () |
Fixes bounds so they are correct. More... | |
std::size_t | getDimension () const |
Compute and return constraint dimension of the TSR. More... | |
bool | isPosConstrained (double lower, double upper) const |
Checks if two values correspond to a position constraint. More... | |
bool | isRotConstrained (double lower, double upper) const |
Checks if two values correspond to a orientation constraint. More... | |
|
default |
Default constructor.
TSR::Specification::Specification | ( | const std::string & | structure, |
const std::string & | target_frame, | ||
const Eigen::Ref< const Eigen::Vector3d > & | position, | ||
const Eigen::Quaterniond & | rotation | ||
) |
Constructor for basic pose TSR constrained in world frame.
[in] | structure | Structure TSR is on (both target and base frames). |
[in] | target_frame | Target frame. |
[in] | position | Desired position. |
[in] | rotation | Desired orientation. |
Definition at line 25 of file tsr.cpp.
void TSR::Specification::addSuffix | ( | const std::string & | suffix | ) |
Add a suffix to the structures for the target and base frame.
[in] | suffix | Suffix to add to structures in target and base frame. |
Definition at line 58 of file tsr.cpp.
|
private |
|
private |
Eigen::Vector3d TSR::Specification::getEulerRotation | ( | ) | const |
Get the current desired orientation.
Definition at line 321 of file tsr.cpp.
Eigen::Vector3d TSR::Specification::getPosition | ( | ) | const |
Eigen::Quaterniond TSR::Specification::getRotation | ( | ) | const |
bool TSR::Specification::intersect | ( | const Specification & | other | ) |
Operations.
Compute the intersection of this TSR with the other.
Definition at line 326 of file tsr.cpp.
|
private |
Checks if two values correspond to a position constraint.
bool TSR::Specification::isPositionConstrained | ( | ) | const |
bool TSR::Specification::isRelative | ( | ) | const |
bool TSR::Specification::isRotationConstrained | ( | ) | const |
|
private |
void TSR::Specification::print | ( | std::ostream & | out | ) | const |
Print out this TSR information.
[in] | out | Output stream. |
Definition at line 425 of file tsr.cpp.
void TSR::Specification::setBase | ( | const std::string & | structure, |
const std::string & | frame | ||
) |
void TSR::Specification::setFrame | ( | const std::string & | structure, |
const std::string & | target, | ||
const std::string & | base = magic::ROOT_FRAME |
||
) |
Set the base and target frame.
[in] | structure | Structure frames are in. |
[in] | target | Target frame name. |
[in] | base | Base frame name. |
void TSR::Specification::setNoPosTolerance | ( | ) |
Set no position tolerance at all.
Definition at line 233 of file tsr.cpp.
void TSR::Specification::setNoRotTolerance | ( | ) |
Set no orientation tolerance at all.
Definition at line 255 of file tsr.cpp.
void TSR::Specification::setNoXPosTolerance | ( | ) |
Set no position tolerance on the X-axis.
Definition at line 218 of file tsr.cpp.
void TSR::Specification::setNoXRotTolerance | ( | ) |
Set no orientation tolerance on the X-axis.
Definition at line 240 of file tsr.cpp.
void TSR::Specification::setNoYPosTolerance | ( | ) |
Set no position tolerance on the Y-axis.
Definition at line 223 of file tsr.cpp.
void TSR::Specification::setNoYRotTolerance | ( | ) |
Set no orientation tolerance on the Y-axis.
Definition at line 245 of file tsr.cpp.
void TSR::Specification::setNoZPosTolerance | ( | ) |
Set no position tolerance on the Z-axis.
Definition at line 228 of file tsr.cpp.
void TSR::Specification::setNoZRotTolerance | ( | ) |
Set no orientation tolerance on the Z-axis.
Definition at line 250 of file tsr.cpp.
void TSR::Specification::setPose | ( | const Eigen::Ref< const Eigen::Vector3d > & | position, |
const Eigen::Quaterniond & | rotation | ||
) |
Set the pose of the TSR.
[in] | position | Desired position. |
[in] | rotation | Desired rotation. |
Definition at line 98 of file tsr.cpp.
void TSR::Specification::setPose | ( | const RobotPose & | other | ) |
void TSR::Specification::setPose | ( | double | xp, |
double | yp, | ||
double | zp, | ||
double | wr, | ||
double | xr, | ||
double | yr, | ||
double | zr | ||
) |
Set the pose of the TSR.
[in] | xp | X-coordinate of position. |
[in] | yp | Y-coordinate of position. |
[in] | zp | Z-coordinate of position. |
[in] | wr | W-component of quaternion. |
[in] | xr | X-component of quaternion. |
[in] | yr | Y-component of quaternion. |
[in] | zr | Z-component of quaternion. |
void TSR::Specification::setPoseFromWorld | ( | const WorldPtr & | world | ) |
void TSR::Specification::setPosition | ( | const Eigen::Ref< const Eigen::Vector3d > & | position | ) |
void TSR::Specification::setPosition | ( | double | x, |
double | y, | ||
double | z | ||
) |
Set the position of the TSR.
[in] | x | X-coordinate. |
[in] | y | Y-coordinate. |
[in] | z | Z-coordinate. |
void TSR::Specification::setRotation | ( | const Eigen::Quaterniond & | orientation | ) |
Set the rotation of the TSR.
[in] | orientation | Desired quaternion. |
void TSR::Specification::setRotation | ( | double | w, |
double | x, | ||
double | y, | ||
double | z | ||
) |
Set the rotation of the TSR as a quaternion.
[in] | w | W-component of quaternion. |
[in] | x | X-component of quaternion. |
[in] | y | Y-component of quaternion. |
[in] | z | Z-component of quaternion. |
void TSR::Specification::setRotation | ( | double | x, |
double | y, | ||
double | z | ||
) |
void TSR::Specification::setTarget | ( | const std::string & | structure, |
const std::string & | frame | ||
) |
void TSR::Specification::setXPosTolerance | ( | double | bound | ) |
Setting Position Tolerances.
Set the X position tolerance to (-bound, bound).
[in] | bound | Bound to set. |
void TSR::Specification::setXPosTolerance | ( | double | lower, |
double | upper | ||
) |
Set the X position tolerance to (lower, upper).
[in] | lower | Lower bound. |
[in] | upper | Upper bound. |
Definition at line 143 of file tsr.cpp.
void TSR::Specification::setXRotTolerance | ( | double | bound | ) |
Setting Orientation Tolerances.
Set the X orientation tolerance to (-bound, bound).
[in] | bound | Bound to set. |
void TSR::Specification::setXRotTolerance | ( | double | lower, |
double | upper | ||
) |
void TSR::Specification::setYPosTolerance | ( | double | bound | ) |
Set the Y position tolerance to (-bound, bound).
[in] | bound | Bound to set. |
void TSR::Specification::setYPosTolerance | ( | double | lower, |
double | upper | ||
) |
Set the Y position tolerance to (lower, upper).
[in] | lower | Lower bound. |
[in] | upper | Upper bound. |
void TSR::Specification::setYRotTolerance | ( | double | bound | ) |
Set the Y orientation tolerance to (-bound, bound).
[in] | bound | Bound to set. |
void TSR::Specification::setYRotTolerance | ( | double | lower, |
double | upper | ||
) |
void TSR::Specification::setZPosTolerance | ( | double | bound | ) |
Set the Z position tolerance to (-bound, bound).
[in] | bound | Bound to set. |
void TSR::Specification::setZPosTolerance | ( | double | lower, |
double | upper | ||
) |
Set the Z position tolerance to (lower, upper).
[in] | lower | Lower bound. |
[in] | upper | Upper bound. |
void TSR::Specification::setZRotTolerance | ( | double | bound | ) |
Set the Z orientation tolerance to (-bound, bound).
[in] | bound | Bound to set. |
void TSR::Specification::setZRotTolerance | ( | double | lower, |
double | upper | ||
) |
struct { ... } robowflex::darts::TSR::Specification::base |
Base frame.
std::size_t robowflex::darts::TSR::Specification::dimension {6} |
std::string robowflex::darts::TSR::Specification::frame {magic::ROOT_FRAME} |
std::vector<bool> robowflex::darts::TSR::Specification::indices {std::vector<bool>(6, true)} |
Eigen::Vector3d robowflex::darts::TSR::Specification::lower {-magic::DEFAULT_IK_TOLERANCES} |
std::size_t robowflex::darts::TSR::Specification::maxIter {50} |
struct { ... } robowflex::darts::TSR::Specification::orientation |
Orientation tolerances.
RobotPose robowflex::darts::TSR::Specification::pose {RobotPose::Identity()} |
struct { ... } robowflex::darts::TSR::Specification::position |
Position tolerances.
std::string robowflex::darts::TSR::Specification::structure |
ROBOWFLEX_EIGEN { ... } robowflex::darts::TSR::Specification::target |
Target frame.
double robowflex::darts::TSR::Specification::tolerance {magic::DEFAULT_IK_TOLERANCE} |
ROBOWFLEX_EIGEN Eigen::Vector3d robowflex::darts::TSR::Specification::upper {magic::DEFAULT_IK_TOLERANCES} |