3 #ifndef __PRODUCT_OF_EXPONENTIALS_HPP__
4 #define __PRODUCT_OF_EXPONENTIALS_HPP__
8 #include <kdl/chain.hpp>
9 #include <kdl/frames.hpp>
10 #include <kdl/jntarray.hpp>
12 #include "MatrixExponential.hpp"
35 explicit PoeExpression(
const KDL::Frame & H_S_T = KDL::Frame::Identity()) : H_S_T(H_S_T) {}
61 void append(
const PoeExpression & poe,
const KDL::Frame & H_new_old = KDL::Frame::Identity());
77 {
return exps.size(); }
87 {
return exps.at(i); }
105 { H_S_T = H_S_T * H_new_old; }
116 bool evaluate(
const KDL::JntArray & q, KDL::Frame & H)
const;
161 std::vector<MatrixExponential> exps;
Abstraction of a term in a product of exponentials (POE) formula.
Definition: MatrixExponential.hpp:19
MatrixExponential cloneWithBase(const KDL::Frame &H_new_old) const
Clones this instance and refers the internal coordinates of the screw to a different base.
Definition: MatrixExponential.cpp:70
Abstraction of a product of exponentials (POE) formula.
Definition: ProductOfExponentials.hpp:28
KDL::Chain toChain() const
Makes a KDL::Chain from this instance.
Definition: ProductOfExponentials.cpp:138
void reverseSelf()
Inverts this POE formula.
Definition: ProductOfExponentials.cpp:104
bool evaluate(const KDL::JntArray &q, KDL::Frame &H) const
Performs forward kinematics.
Definition: ProductOfExponentials.cpp:82
static PoeExpression fromChain(const KDL::Chain &chain)
Builds a PoeExpression from a KDL::Chain.
Definition: ProductOfExponentials.cpp:167
void changeBaseFrame(const KDL::Frame &H_new_old)
Refers the internal coordinates of this POE to a different base.
Definition: ProductOfExponentials.cpp:70
const MatrixExponential & exponentialAtJoint(int i) const
Retrieves a term of the POE formula.
Definition: ProductOfExponentials.hpp:86
const KDL::Frame & getTransform() const
Retrieves the transformation between base and tool frames.
Definition: ProductOfExponentials.hpp:68
void append(const MatrixExponential &exp, const KDL::Frame &H_new_old=KDL::Frame::Identity())
Appends a new term to this POE formula.
Definition: ProductOfExponentials.hpp:47
int size() const
Size of this POE.
Definition: ProductOfExponentials.hpp:76
PoeExpression(const KDL::Frame &H_S_T=KDL::Frame::Identity())
Constructor.
Definition: ProductOfExponentials.hpp:35
PoeExpression makeReverse() const
Creates a new POE entity from the inverse of this POE formula.
Definition: ProductOfExponentials.cpp:118
void changeToolFrame(const KDL::Frame &H_new_old)
Updates the tool frame.
Definition: ProductOfExponentials.hpp:104
The main, catch-all namespace for Robotics Lab UC3M.
Definition: groups.dox:6