1 #ifndef OCRA_UTIL_EIGEN_UTILITIES_H 2 #define OCRA_UTIL_EIGEN_UTILITIES_H 14 Eigen::VectorXd tmpVector = Eigen::VectorXd::Zero(7);
17 if (eigenVector.rows()<=3) {
18 for (
auto i = 0; i < eigenVector.rows(); ++i) {
19 tmpVector(i) = eigenVector(i);
22 else if (eigenVector.rows()==7) {
23 tmpVector = eigenVector;
26 return Eigen::Displacementd(tmpVector(0), tmpVector(1), tmpVector(2), tmpVector(3), tmpVector(4), tmpVector(5), tmpVector(6));
31 std::vector<Eigen::Displacementd> dispVec;
32 for(
int i=0; i<eigenVector.size(); i++)
39 inline Eigen::Twistd
eigenVectorToTwistd(
const Eigen::VectorXd& eigenVector,
bool linearOnly=
true,
bool angularOnly=
false)
41 if (eigenVector.size()==6) {
42 return Eigen::Twistd(eigenVector);
43 }
else if (eigenVector.size()==3) {
45 return Eigen::Twistd(0,0,0,eigenVector(0),eigenVector(1),eigenVector(2));
48 return Eigen::Twistd(eigenVector(0),eigenVector(1),eigenVector(2),0,0,0);
51 return Eigen::Twistd::Zero();
54 inline Eigen::Wrenchd
eigenVectorToWrenchd(
const Eigen::VectorXd& eigenVector,
bool linearOnly=
true,
bool angularOnly=
false)
56 if (eigenVector.size()==6) {
57 return Eigen::Wrenchd(eigenVector);
58 }
else if (eigenVector.size()==3) {
60 return Eigen::Wrenchd(0,0,0,eigenVector(0),eigenVector(1),eigenVector(2));
63 return Eigen::Wrenchd(eigenVector(0),eigenVector(1),eigenVector(2),0,0,0);
66 return Eigen::Wrenchd::Zero();
74 #endif // OCRA_UTIL_EIGEN_UTILITIES_H Eigen::Twistd eigenVectorToTwistd(const Eigen::VectorXd &eigenVector, bool linearOnly=true, bool angularOnly=false)
Optimization-based Robot Controller namespace. a library of classes to write and solve optimization p...
Eigen::Displacementd eigenVectorToDisplacementd(const Eigen::VectorXd &eigenVector)
Eigen::Wrenchd eigenVectorToWrenchd(const Eigen::VectorXd &eigenVector, bool linearOnly=true, bool angularOnly=false)