borglab / gtsam

GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices.
http://gtsam.org
Other
2.58k stars 759 forks source link

JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns. #1664

Closed hcws closed 11 months ago

hcws commented 11 months ago

I use 4.2a6 version,when I play rosbag , it report an error;

PoseEstimation: /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h:636: void Eigen::JacobiSVD<MatrixType, QRPreconditioner>::allocate(Eigen::Index, Eigen::Index, unsigned int) [with _MatrixType = Eigen::Matrix<double, 3, 3>; int QRPreconditioner = 2; Eigen::Index = long int]: Assertion `(!(m_computeThinU || m_computeThinV) || (MatrixType::ColsAtCompileTime==Dynamic)) && "JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns."' failed.

It's an assert.

JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns.
varunagrawal commented 11 months ago

This is an Eigen specific requirement, and would need you to update your code to have the right format that Eigen expects. This doesn't seem to be a GTSAM bug hence closing.