|
LegacyPose2D< Float, Storage > | inverse () const |
| Calculate the inverse pose. More...
|
|
| LegacyPose2D () |
| Default constructor. More...
|
|
template<typename Trans > |
| LegacyPose2D (const Angle< Float > &angle, const ecl::linear_algebra::MatrixBase< Trans > &T) |
| Construct the pose using a rotational angle and a translation vector. More...
|
|
template<typename Rot , typename Trans > |
| LegacyPose2D (const ecl::linear_algebra::MatrixBase< Rot > &R, const ecl::linear_algebra::MatrixBase< Trans > &T) |
| Construct the pose using a rotation matrix and a translation vector. More...
|
|
| LegacyPose2D (const Float &x, const Float &y, const Angle< Float > &angle) |
| Construct the pose using scalars for position and rotation angle. More...
|
|
template<enum Pose2DStorageType Storage_> |
| LegacyPose2D (const LegacyPose2D< Float, Storage_ > &pose) |
| Copy constructor that works for copies from any pose type. More...
|
|
template<enum Pose2DStorageType Storage_> |
LegacyPose2D< Float, Storage > | operator* (const LegacyPose2D< Float, Storage_ > &pose) const |
| Combine this pose with the incoming pose. More...
|
|
LegacyPose2D< Float > & | operator*= (const LegacyPose2D< Float > &pose) |
| Transform this pose by the specified input pose. More...
|
|
template<enum Pose2DStorageType Storage_> |
LegacyPose2D< Float, Storage > & | operator= (const LegacyPose2D< Float, Storage_ > &pose) |
| Assign from another Pose2D instance. More...
|
|
template<enum Pose2DStorageType Storage_> |
LegacyPose2D< Float, Storage > | relative (const LegacyPose2D< Float, Storage_ > &pose) const |
| Relative pose between this pose and another. More...
|
|
RotationType & | rotation () |
|
const RotationType & | rotation () const |
| Return a mutable handle to the translation vector. More...
|
|
void | rotation (const Angle< Float > &heading) |
| Set the rotational component with a heading angle. More...
|
|
void | rotation (const RotationMatrix &rotation_matrix) |
| Set the rotational component with a rotation matrix. More...
|
|
template<typename Rot > |
void | rotationMatrix (const ecl::linear_algebra::MatrixBase< Rot > &rotation_matrix) |
| Set the rotational component. More...
|
|
void | setIdentity () |
| Set this pose to zero rotation and zero translation. More...
|
|
Translation & | translation () |
| Return a mutable handle to the rotational storage component. More...
|
|
const Translation & | translation () const |
| Return a const handle to the rotational storage component. More...
|
|
template<typename Trans > |
void | translation (const ecl::linear_algebra::MatrixBase< Trans > &T) |
| Set the translation vector. More...
|
|
void | translation (const Float &x, const Float &y) |
| Set the translation vector from a pair of x,y values. More...
|
|
virtual | ~LegacyPose2D () |
|
template<typename Float, enum Pose2DStorageType Storage>
class ecl::LegacyPose2D< Float, Storage, enable_if< is_float< Float > >::type >
Representation for a 2D pose (3 degrees of freedom).
This represents a transformation typical of that of an object in 2D, e.g. a mobile robot on a horizontal plane. There are two storage types for this object, the default is rotation matrix, but scalar angular storage can be selected by supplying a second template parameter to the type:
LegacyPose2D<double,RotationAngleStorage>
- Template Parameters
-
Float | : must be a float type (e.g. float, double, float32, float64) |
Storage | : type of storage (RotationMatrixStorage, RotationAngleStorage). |
Definition at line 185 of file legacy_pose2d.hpp.
template<typename Float , enum Pose2DStorageType Storage>
Default constructor.
Initialises the pose with zero rotation and zero translation. Might be worth dropping the setting here (aka eigen style) if we need speed, not safety. If we do so, maybe a debug mode is_initialised flag? Also, if we do so make sure to update the Identity static function.
Definition at line 214 of file legacy_pose2d.hpp.
template<typename Float , enum Pose2DStorageType Storage>
template<typename Rot , typename Trans >
Construct the pose using a rotation matrix and a translation vector.
This accepts arbitrary eigen types to use as a rotation matrix and translation vector.
- Parameters
-
R | : 2x2 rotation matrix. |
T | : 2x1 translation vector (will compile error if incorrect size). |
- Template Parameters
-
Rot | : any compatible eigen 2x2 matrix type (e.g. Matrix<Float,2,2>). |
Trans | : any compatible eigen 2x1 matrix type (e.g. Matrix<Float,2,1>). |
Definition at line 239 of file legacy_pose2d.hpp.
template<typename Float , enum Pose2DStorageType Storage>
template<typename Trans >
Construct the pose using a rotational angle and a translation vector.
This accepts an angle (or its Float equivalent) and an arbitrary eigen type to use as a translation vector.
- Parameters
-
angle | : initial heading angle (double is compatible)(radians). |
T | : 2x1 translation vector (will compile error if incorrect size). |
- Template Parameters
-
Trans | : any compatible eigen 2x1 matrix type (e.g. Matrix<Float,2,1>). |
Definition at line 254 of file legacy_pose2d.hpp.
template<typename Float , enum Pose2DStorageType Storage>
template<enum Pose2DStorageType Storage_>
Relative pose between this pose and another.
Evaluates and returns the pose of this pose, relative to the specified pose.
Pose2D<double> a(1.0,1.0,1.57), b(1.0,2.0,3.14);
Pose2D<double> brela = b.relative(a);
std::cout << brela << std::endl;
- Parameters
-
pose | : reference frame for the relative pose. |
- Returns
- Pose2D<Float> : new instance representing the relative.
Definition at line 444 of file legacy_pose2d.hpp.
template<typename Float , enum Pose2DStorageType Storage>
template<typename Trans >
Set the translation vector.
This accepts an arbitrary eigen types to use as a translation vector. Eigen will emit the appropriate compile time error if it is incompatible.
- Parameters
-
T | : 2x1 translation vector. |
- Template Parameters
-
Trans | : any compatible eigen 2x1 matrix type (e.g. Matrix<Float,2,1>). |
Definition at line 334 of file legacy_pose2d.hpp.
template<typename Float , enum Pose2DStorageType Storage>
template<typename OutputStream , typename Float_ , enum Pose2DStorageType Storage_>
OutputStream& operator<< |
( |
OutputStream & |
ostream, |
|
|
const LegacyPose2D< Float_, Storage_ > & |
pose |
|
) |
| |
|
friend |
Insertion operator for output streams.
Note that the output heading angle is formatted in degrees.
- Parameters
-
ostream | : stream satisfying the ecl stream concept. |
pose | : the inserted pose. |
- Returns
- OutputStream : the returning stream handle.
Definition at line 477 of file legacy_pose2d.hpp.