8#ifndef INCLUDE_RML_PSEUDOINVERSE_H_
9#define INCLUDE_RML_PSEUDOINVERSE_H_
11#include <eigen3/Eigen/Dense>
62void RegPinv(
const double* J,
int m,
int n,
double* JPInv,
double treshold,
double lambda,
double* prod,
int* flag);
87 int m = mat.rows(), n = mat.cols();
92 Eigen::Map<MatT>(J, m, n) = mat;
97 MatT eigenPinv = Eigen::Map<MatT>(JPInv, n, m);
Types and algorithms for robotic mobile manipulation.
Definition ArmModel.h:19
void RegPinv(const double *J, int m, int n, double *JPInv, double treshold, double lambda, double *prod, int *flag)
Eigen::Matrix< typename MatT::Scalar, MatT::ColsAtCompileTime, MatT::RowsAtCompileTime > RegularizedPseudoInverse(const MatT &mat, RegularizationData ®Data)
Computes the SVD-based regularized matrix pseudoinversion (A = U*S*V')
Definition PseudoInverse.h:83
Regularization parameters and results container.
Definition PseudoInverse.h:50
RegularizationResults results
Definition PseudoInverse.h:52
RegularizationParameters params
Definition PseudoInverse.h:51
RegularizationData()=default
Definition PseudoInverse.h:18
double lambda
The maximum value of the raised cosine.
Definition PseudoInverse.h:20
double threshold
The value above which the raised cosine becomes 0.
Definition PseudoInverse.h:19
RegularizationParameters()
Definition PseudoInverse.h:22
Definition PseudoInverse.h:29
RegularizationResults()
Definition PseudoInverse.h:33
int flag
The number of time the regularization parameter was not zero.
Definition PseudoInverse.h:31
double mu
Product of singular values.
Definition PseudoInverse.h:30