Giter Club home page Giter Club logo

Comments (8)

agpratik avatar agpratik commented on August 16, 2024 1

Your matrix is not positive semidefinite -- it could be because your graph is not connected. First check if this problem happens with all solvers or only with Cholmod.

from g2o.

skasperski avatar skasperski commented on August 16, 2024

I tried the CSparse-Solver, which shows the same behaviour. The used graph should also be connected, but maybe something went wrong during translation from the SLAM-Frontend. Is there a way to get some hints from the matrix in the generated debug.txt?

from g2o.

RainerKuemmerle avatar RainerKuemmerle commented on August 16, 2024

Can you please check that one of the nodes is fixed, i.e., vertex->setFixed(true) has been called for at least one vertex.

from g2o.

skasperski avatar skasperski commented on August 16, 2024

Gnah, I called vertex->fixed() instead of vertex->setFixed(true), a stupid mistake...
Now it completed 5 optimization runs without the error, so this seems to have solved my problem.

from g2o.

nitin5 avatar nitin5 commented on August 16, 2024

Hi
I am facing same problem.
I have checked that (a) Atleast one node is fixed. (b) Graph is connected.
But I am still getting Cholesky failure because matrix is not positive semo definite.
What could be other problem causes?

from g2o.

RainerKuemmerle avatar RainerKuemmerle commented on August 16, 2024

Be sure that all information matrices are PSD.
You may consider OptimizableGraph::verifyInformationMatrices() for doing
that.

On Tue, Aug 12, 2014 at 11:11 AM, nitin5 [email protected] wrote:

Hi
I am facing same problem.
I have checked that (a) Atleast one node is fixed. (b) Graph is connected.
But I am still getting Cholesky failure because matrix is not positive
semo definite.
What could be other problem causes?


Reply to this email directly or view it on GitHub
#35 (comment).

from g2o.

nitin5 avatar nitin5 commented on August 16, 2024

Hi Rainer,
I have checked that all edges' information matrix have PSD property. I have also verified it using OptimizableGraph::verifyInformationMatrices() . I am not able to solve problem till now.

I have debugged it deeper. I will share the source of SIGSEGV . It might be of help in localizing the problem:
In SparseOptimizerIncremental::optimize(), line _underlyingSolver->buildSystem(), control passes to block_solver.hpp::buildSystem(). At line number 532, e->constructQuadraticForm() is called.
From here control passes to Eigen liibrary.
I do not have exposure to Eigen library. In this library, Segmentation fault is reported for functor scalar_sum_op. It is in file Eigen::functors.h line number 26.

I have saved the graph using SparseOptimizerIncremental::save(filename). After removing ONLINE prefix from vertex and edges, I am able to optimise this graph in g2o_viewer, without any error.

Is it okay if i share dataset which i am sunning which others can try to check whether the problem is in my code?
rgds
nitin

from g2o.

lindzey avatar lindzey commented on August 16, 2024

For anybody encountering this later, I had a similar error that was due to setting the wrong node to fixed, such that my graph still had gauge freedom.

You can test and fix this with something like:

bool has_gauge_freedom = optimizer->gaugeFreedom();
if (has_gauge_freedom) {
  g2o::OptimizableGraph::Vertex* gauge_node = optimizer->findGauge();
  gauge_node->setFixed(true);
}

from g2o.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.