Robotics StackExchange | Archived questions

The Eigen3 library can not compute the eigenvectors together with the eigenvalues

Hi!, I'm using ubuntu 16.04 and ROS-Kinetic branches,

I have cloned elevation mapping package from https://github.com/ethz-asl/elevation_mapping.

The problem is when I launching the elevation mapping packages at first I get some fused elevation mapping data then after sometimes I get an exception error from the Egien3 library which says:

elevationmapping: /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h:347: Eigen::EigenSolver<MatrixType>::EigenvectorsType Eigen::EigenSolver<MatrixType>::eigenvectors() const [with _MatrixType = Eigen::Matrix; Eigen::EigenSolver<MatrixType>::EigenvectorsType = Eigen::Matrixstd::complex<double, 2, 2>; typename Eigen::NumTraits::Real = double]: Assertion `m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues."' failed.

And It crashes.

Is there any way to fix this problem?

I'll appreciate any help.

Asked by DT on 2017-04-17 03:06:44 UTC

Comments

Is there anything else in the error message? Do you know where in elevation_mapping the error is coming from?

Asked by Airuno2L on 2017-04-17 09:04:20 UTC

No, actually I'm on it and when finding it out I'll let you know. But what I know is it refers to "347" lines of the EigenSolver header which relates to ComplexScalar() function.

Asked by DT on 2017-04-17 09:24:58 UTC

I've found it! It comes from line 276 of the ElevationMap.cpp in elevation_mapping. I have tried it with try & catch but It doesn't work.

Asked by DT on 2017-04-18 02:13:09 UTC

this is the line which causes the error and crash; const double ellipseRotation(atan2(solver.eigenvectors().col(maxEigenvalueIndex).real()(1), solver.eigenvectors().col(maxEigenvalueIndex).real()(0)));

Asked by DT on 2017-04-18 02:13:49 UTC

I don't know the code but when I set the default parameters 1,0 permanent the error disappear.

Asked by DT on 2017-04-18 05:46:06 UTC

I've also posted this Issue here https://github.com/ethz-asl/elevation_mapping/issues/39 But got no answer.

Asked by DT on 2017-04-18 08:23:53 UTC

are you sure you don't have any "false" flag set in your code? I'm not sure where but in mine code Eigen::EigenSolver es(matrixname, false); <-- "false" was the reason

Asked by tomek3001 on 2020-02-17 10:40:52 UTC

Answers