libalmath
1.14
|
Functions | |
std::vector< Pose2D > | AL::Math::getDubinsSolutions (const Pose2D &pTargetPose, const float pCircleRadius) |
Get the dubins solutions. | |
bool | AL::Math::clipData (const float &pMin, const float &pMax, float &pData) |
Clip an input data inside min and max limit. | |
Position6D | AL::Math::position6DFromVelocity6D (const Velocity6D &pVel) |
Create a Position6D from a Velocity6D. | |
Position3D | AL::Math::operator* (const Rotation &pRot, const Position3D &pPos) |
Overloading of operator * between Rotation and Position3D: | |
Velocity6D | AL::Math::operator* (const float pVal, const Position6D &pPos) |
Overloading of operator * for float to Position6D, give a Velocity6D: | |
Rotation | AL::Math::rotationFromAngleDirection (const float &pTheta, const Position3D &pPos) |
Creates a 3*3 Rotation Matrix from a an angle and a normalized Position3D. | |
void | AL::Math::transformLogarithmInPlace (const Transform &pT, Velocity6D &pVel) |
Compute the logarithme of a transform. Angle must be between . | |
Velocity6D | AL::Math::transformLogarithm (const Transform &pT) |
Compute the logarithme of a transform. Angle must be between . | |
Transform | AL::Math::velocityExponential (const Velocity6D &pVel) |
Compute the logarithme of a transform. Angle must be between . | |
void | AL::Math::changeReferenceVelocity6D (const Transform &pT, const Velocity6D &pVelIn, Velocity6D &pVelOut) |
void | AL::Math::changeReferencePosition6D (const Transform &pT, const Position6D &pPosIn, Position6D &pPosOut) |
void | AL::Math::changeReferencePosition3D (const Transform &pT, const Position3D &pPosIn, Position3D &pPosOut) |
void | AL::Math::changeReferenceTransposePosition3D (const Transform &pT, const Position3D &pPosIn, Position3D &pPosOut) |
void | AL::Math::changeReferenceTransform (const Transform &pT, const Transform &pTIn, Transform &pTOut) |
void | AL::Math::changeReferenceTransposeTransform (const Transform &pT, const Transform &pTIn, Transform &pTOut) |
void | AL::Math::changeReferenceTransposeVelocity6D (const Transform &pT, const Velocity6D &pVelIn, Velocity6D &pVelOut) |
void | AL::Math::changeReferenceTransposePosition6D (const Transform &pT, const Position6D &pPosIn, Position6D &pPosOut) |
void | AL::Math::transformMeanInPlace (const Transform &pTIn1, const Transform &pTIn2, const float &pVal, Transform &pTOut) |
Preform a logarithmic mean of pTIn1 and pTIn2 and put it in pTout. | |
Transform | AL::Math::transformMean (const Transform &pTIn1, const Transform &pTIn2, const float &pVal=0.5f) |
Preform a logarithmic mean of pTIn1 and pTIn2. | |
Transform | AL::Math::transformFromRotationPosition3D (const Rotation &pRot, const float &pX, const float &pY, const float &pZ) |
Create a Transform from 3D cartesian coordiantes and a Rotation. | |
Transform | AL::Math::transformFromRotationPosition3D (const Rotation &pRot, const Position3D &pPos) |
Create a Transform from a Position3D and a Rotation. | |
void | AL::Math::transformFromPosition3DInPlace (const Position3D &pPosition, Transform &pTransform) |
Modify pTransform to set the translation part to pPosition. | |
Transform | AL::Math::transformFromPosition3D (const Position3D &pPosition) |
Create a 4*4 transform matrix from cartesian coordinates given in pPosition. | |
void | AL::Math::transformFromRotationInPlace (const Rotation &pRotation, Transform &pTransform) |
Modify the rotation part of the transform. The translation part of the transform is not modified. | |
Transform | AL::Math::transformFromRotation (const Rotation &pRotation) |
void | AL::Math::rotationFromTransformInPlace (const Transform &pTransform, Rotation &pRotation) |
Extract the position coordinates from a Transform. | |
Rotation | AL::Math::rotationFromTransform (const Transform &pTransform) |
Rotation3D | AL::Math::rotation3DFromRotation (const Rotation &pRotation) |
void | AL::Math::position6DFromTransformInPlace (const Transform &pT, Position6D &pPos) |
Compute Position6D corresponding to the Transform. | |
Position6D | AL::Math::position6DFromTransform (const Transform &pT) |
Compute Position6D corresponding to 4*4 Homogenous Transform. | |
void | AL::Math::transformFromPose2DInPlace (const Pose2D &pPose, Transform &pT) |
Compute a Transform from a Pose2D. | |
Transform | AL::Math::transformFromPose2D (const Pose2D &pPose) |
Create a Transform from a Pose2D. | |
void | AL::Math::pose2DFromTransformInPlace (const Transform &pT, Pose2D &pPos) |
Compute a Pose2D from a Transform. | |
Pose2D | AL::Math::pose2DFromTransform (const Transform &pT) |
Create a Pose2D from a Transform. | |
Transform | AL::Math::transformFromRotation3D (const Rotation3D &pRotation) |
Create a Transform from a Rotation3D. | |
Transform | AL::Math::transformFromPosition6D (const Position6D &pPosition6D) |
Create a Transform from a Position6D. | |
void | AL::Math::position6DFromTransformDiffInPlace (const Transform &pCurrent, const Transform &pTarget, Position6D &result) |
Computes a 6 differential motion require to move from a 4*4 Homogenous transform matrix Current to a 4*4 Homogenous transform matrix target. | |
Position6D | AL::Math::position6DFromTransformDiff (const Transform &pCurrent, const Transform &pTarget) |
Computes a 6 differential motion require to move from a 4*4 Homogenous transform matrix Current to a 4*4 Homogenous transform matrix target. | |
void | AL::Math::position3DFromTransformInPlace (const Transform &pT, Position3D &pPos) |
Compute a Position3D from a Transform. | |
Position3D | AL::Math::position3DFromTransform (const Transform &pT) |
Create a Position3D from a Transform. | |
Rotation3D | AL::Math::rotation3DFromTransform (const Transform &pT) |
Create a Rotation3D (Roll, Pitch, Yaw) corresponding to the rotational part of the Transform. | |
void | AL::Math::transformFromRotVecInPlace (const int pAxis, const float pTheta, const Position3D &pPos, Transform &pT) |
Compute a Transform from. | |
Transform | AL::Math::transformFromRotVec (const int pAxis, const float pTheta, const Position3D &pPos) |
Compute a Transform from a Rotation3D. | |
void | AL::Math::transformFromRotVecInPlace (const Position3D &pPos, Transform &pT) |
Compute a Transform from a Rotation3D. | |
Transform | AL::Math::transformFromRotVec (const Position3D &pPos) |
Compute a Transform from a Rotation3D. | |
Transform | AL::Math::transformFromRotVec (const int &pAxis, const float &pTheta) |
Compute a Transform from a Rotation3D. | |
const bool | AL::Math::avoidFootCollision (const std::vector< Pose2D > &pLFootBoundingBox, const std::vector< Pose2D > &pRFootBoundingBox, const bool &pIsLeftSupport, Pose2D &pMove) |
Compute the best position(orientation) of the foot to avoid collision. | |
const bool | AL::Math::clipFootWithEllipse (const float &pMaxFootX, const float &pMaxFootY, Pose2D &pMove) |
Clip foot move with ellipsoid function. |
const bool AL::Math::avoidFootCollision | ( | const std::vector< Pose2D > & | pLFootBoundingBox, |
const std::vector< Pose2D > & | pRFootBoundingBox, | ||
const bool & | pIsLeftSupport, | ||
Pose2D & | pMove | ||
) |
Compute the best position(orientation) of the foot to avoid collision.
pLFootBoundingBox | vector<Pose2D> of the left footBoundingBox. |
pRFootBoundingBox | vector<Pose2D> of the right footBoundingBox. |
pIsLeftSupport | Bool true if left is the support leg. |
pMove | the desired and return Pose2D. |
void AL::Math::changeReferencePosition3D | ( | const Transform & | pT, |
const Position3D & | pPosIn, | ||
Position3D & | pPosOut | ||
) |
pT | the given Transform |
pPosIn | a Position3D containing the position to change |
pPosOut | a Position3D containing the changed position |
void AL::Math::changeReferencePosition6D | ( | const Transform & | pT, |
const Position6D & | pPosIn, | ||
Position6D & | pPosOut | ||
) |
pT | the given Transform |
pPosIn | a Position6D containing the position to change |
pPosOut | a Position6D containing the changed position |
void AL::Math::changeReferenceTransform | ( | const Transform & | pT, |
const Transform & | pTIn, | ||
Transform & | pTOut | ||
) |
void AL::Math::changeReferenceTransposePosition3D | ( | const Transform & | pT, |
const Position3D & | pPosIn, | ||
Position3D & | pPosOut | ||
) |
pT | the given Transform |
pPosIn | a Position3D containing the position to change |
pPosOut | a Position3D containing the changed position |
void AL::Math::changeReferenceTransposePosition6D | ( | const Transform & | pT, |
const Position6D & | pPosIn, | ||
Position6D & | pPosOut | ||
) |
pT | the given Transform |
pPosIn | a Position6D containing the position to change |
pPosOut | a Position6D containing the changed position |
void AL::Math::changeReferenceTransposeTransform | ( | const Transform & | pT, |
const Transform & | pTIn, | ||
Transform & | pTOut | ||
) |
void AL::Math::changeReferenceTransposeVelocity6D | ( | const Transform & | pT, |
const Velocity6D & | pVelIn, | ||
Velocity6D & | pVelOut | ||
) |
pT | the given Transform |
pVelIn | a Velocity6D containing the velocity to change |
pVelOut | a Velocity6D containing the changed velocity |
void AL::Math::changeReferenceVelocity6D | ( | const Transform & | pT, |
const Velocity6D & | pVelIn, | ||
Velocity6D & | pVelOut | ||
) |
pT | the given Transform |
pVelIn | a Velocity6D containing the velocity to change |
pVelOut | a Velocity6D containing the changed velocity |
bool AL::Math::clipData | ( | const float & | pMin, |
const float & | pMax, | ||
float & | pData | ||
) |
Clip an input data inside min and max limit.
pMin | the min limit |
pMax | the max limit |
pData | the clipped data |
const bool AL::Math::clipFootWithEllipse | ( | const float & | pMaxFootX, |
const float & | pMaxFootY, | ||
Pose2D & | pMove | ||
) |
Clip foot move with ellipsoid function.
pMaxFootX | float of the max step along x axis. |
pMaxFootY | float of the max step along y axis. |
pMove | the desired and return Pose2D. |
std::vector<Pose2D> AL::Math::getDubinsSolutions | ( | const Pose2D & | pTargetPose, |
const float | pCircleRadius | ||
) |
Get the dubins solutions.
pTargetPose | the target pose |
pCircleRadius | the circle radius |
Position3D AL::Math::operator* | ( | const Rotation & | pRot, |
const Position3D & | pPos | ||
) |
Overloading of operator * between Rotation and Position3D:
pRot | the given Rotation |
pPos | the given Position3D |
Velocity6D AL::Math::operator* | ( | const float | pVal, |
const Position6D & | pPos | ||
) |
Overloading of operator * for float to Position6D, give a Velocity6D:
pVal | the given float |
pPos | the given Position6D |
Pose2D AL::Math::pose2DFromTransform | ( | const Transform & | pT | ) |
void AL::Math::pose2DFromTransformInPlace | ( | const Transform & | pT, |
Pose2D & | pPos | ||
) |
Position3D AL::Math::position3DFromTransform | ( | const Transform & | pT | ) |
Create a Position3D from a Transform.
pT | the Transform you want to extract |
void AL::Math::position3DFromTransformInPlace | ( | const Transform & | pT, |
Position3D & | pPos | ||
) |
Compute a Position3D from a Transform.
pT | the Transform you want to extract |
pPos | the result Position3D |
Position6D AL::Math::position6DFromTransform | ( | const Transform & | pT | ) |
Compute Position6D corresponding to 4*4 Homogenous Transform.
pT | the transform you want to extract |
Position6D AL::Math::position6DFromTransformDiff | ( | const Transform & | pCurrent, |
const Transform & | pTarget | ||
) |
Computes a 6 differential motion require to move from a 4*4 Homogenous transform matrix Current to a 4*4 Homogenous transform matrix target.
pCurrent | the Position6D you want to extract |
pTarget | the Position6D you want to extract |
void AL::Math::position6DFromTransformDiffInPlace | ( | const Transform & | pCurrent, |
const Transform & | pTarget, | ||
Position6D & | result | ||
) |
Computes a 6 differential motion require to move from a 4*4 Homogenous transform matrix Current to a 4*4 Homogenous transform matrix target.
pCurrent | the Position6D you want to extract |
pTarget | the Position6D you want to extract |
result | the result Position6D |
void AL::Math::position6DFromTransformInPlace | ( | const Transform & | pT, |
Position6D & | pPos | ||
) |
Compute Position6D corresponding to the Transform.
pT | the transform you want to extract |
pPos | the transform you want to extract |
Position6D AL::Math::position6DFromVelocity6D | ( | const Velocity6D & | pVel | ) |
Create a Position6D from a Velocity6D.
pVel | the given Velocity6D |
Rotation3D AL::Math::rotation3DFromRotation | ( | const Rotation & | pRotation | ) |
pRotation | the Rotation to extract |
Rotation3D AL::Math::rotation3DFromTransform | ( | const Transform & | pT | ) |
Create a Rotation3D (Roll, Pitch, Yaw) corresponding to the rotational part of the Transform.
pT | the Transform you want to extract |
Rotation AL::Math::rotationFromAngleDirection | ( | const float & | pTheta, |
const Position3D & | pPos | ||
) |
Creates a 3*3 Rotation Matrix from a an angle and a normalized Position3D.
pTheta | the float value of angle in radian |
pPos | the Position3D direction of the vector of the rotation, normalized |
Rotation AL::Math::rotationFromTransform | ( | const Transform & | pTransform | ) |
void AL::Math::rotationFromTransformInPlace | ( | const Transform & | pTransform, |
Rotation & | pRotation | ||
) |
Transform AL::Math::transformFromPose2D | ( | const Pose2D & | pPose | ) |
void AL::Math::transformFromPose2DInPlace | ( | const Pose2D & | pPose, |
Transform & | pT | ||
) |
Transform AL::Math::transformFromPosition3D | ( | const Position3D & | pPosition | ) |
Create a 4*4 transform matrix from cartesian coordinates given in pPosition.
pPosition | position in cartesian coordinates |
void AL::Math::transformFromPosition3DInPlace | ( | const Position3D & | pPosition, |
Transform & | pTransform | ||
) |
Modify pTransform to set the translation part to pPosition.
pPosition | a Position3D cartesian coordinates |
pTransform | the given Transform |
Transform AL::Math::transformFromPosition6D | ( | const Position6D & | pPosition6D | ) |
Create a Transform from a Position6D.
pPosition6D | the Position6D you want to extract |
Transform AL::Math::transformFromRotation | ( | const Rotation & | pRotation | ) |
Transform AL::Math::transformFromRotation3D | ( | const Rotation3D & | pRotation | ) |
Create a Transform from a Rotation3D.
pRotation | the Rotation you want to extract |
void AL::Math::transformFromRotationInPlace | ( | const Rotation & | pRotation, |
Transform & | pTransform | ||
) |
Transform AL::Math::transformFromRotationPosition3D | ( | const Rotation & | pRot, |
const float & | pX, | ||
const float & | pY, | ||
const float & | pZ | ||
) |
Transform AL::Math::transformFromRotationPosition3D | ( | const Rotation & | pRot, |
const Position3D & | pPos | ||
) |
Create a Transform from a Position3D and a Rotation.
pPos | the given Position3D |
pRot | the given Rotation |
Transform AL::Math::transformFromRotVec | ( | const int | pAxis, |
const float | pTheta, | ||
const Position3D & | pPos | ||
) |
Transform AL::Math::transformFromRotVec | ( | const Position3D & | pPos | ) |
Compute a Transform from a Rotation3D.
pPos | the Rotation you want to extract |
Transform AL::Math::transformFromRotVec | ( | const int & | pAxis, |
const float & | pTheta | ||
) |
Compute a Transform from a Rotation3D.
void AL::Math::transformFromRotVecInPlace | ( | const int | pAxis, |
const float | pTheta, | ||
const Position3D & | pPos, | ||
Transform & | pT | ||
) |
Compute a Transform from.
pAxis | the Rotation you want to extract |
pTheta | the rotation you want to extract |
pPos | the Position3D you want to extract |
pT | the Rotation you want to extract |
void AL::Math::transformFromRotVecInPlace | ( | const Position3D & | pPos, |
Transform & | pT | ||
) |
Compute a Transform from a Rotation3D.
Velocity6D AL::Math::transformLogarithm | ( | const Transform & | pT | ) |
Compute the logarithme of a transform. Angle must be between .
Cette fonction calcule le logarithme associe a une matrice de type Deplacement - matrice homogene 4x4 (SE3) La sortie est un torseur cinematique de se3. Le resultat n'est garanti que pour des angles dans [-pi+0.001,pi-0.001]. cette fonction calcule la differentielle du logarithme associe a une matrice de type Deplacement - matrice homogene 4x4 (SE3).
pT | the given Transform |
void AL::Math::transformLogarithmInPlace | ( | const Transform & | pT, |
Velocity6D & | pVel | ||
) |
Compute the logarithme of a transform. Angle must be between .
Cette fonction calcule le logarithme associe a une matrice de type Deplacement - matrice homogene 4x4 (SE3) La sortie est un torseur cinematique de se3. Le resultat n'est garanti que pour des angles dans [-pi+0.001,pi-0.001]. cette fonction calcule la differentielle du logarithme associe a une matrice de type Deplacement - matrice homogene 4x4 (SE3).
Transform AL::Math::transformMean | ( | const Transform & | pTIn1, |
const Transform & | pTIn2, | ||
const float & | pVal = 0.5f |
||
) |
void AL::Math::transformMeanInPlace | ( | const Transform & | pTIn1, |
const Transform & | pTIn2, | ||
const float & | pVal, | ||
Transform & | pTOut | ||
) |
Transform AL::Math::velocityExponential | ( | const Velocity6D & | pVel | ) |
Compute the logarithme of a transform. Angle must be between .
Function Velocity Exponential : compute homogenous matrix displacement from a dt * 6D velocity vector.
pVel | the given Velocity6D |