Closed autonomobil closed 2 years ago
The simplest approach would be to remove the assert or change it to assert(probability_ >= 0);
, since a zero probability in general does not have to be a problem.
What happens if you change the assert (I can imagine this suggestion leads to new problems)?
This leads to:
wire_server: {path_to_file}/HypothesesTree.cpp:253: void mhf::HypothesisTree::expandTree(const mhf::EvidenceSet&): Assertion 'leafs_.size() > 0' failed.
wire_server: {path_to_file}/HypothesesTree.cpp:253: void mhf::HypothesisTree::expandTree(const mhf::EvidenceSet&): Assertion 'leafs_.size() > 0' failed.
The problem you are facing is that all hypotheses get pruned (due to having a probability of zero). In general, the most likely solution would be to tune the models differently (e.g. increase covariances involved). In case you provide more details on the problem you are trying to solve and the situation in which it happens I could perhaps be more specific.
When there are more than ~40 objects the wire_core dies with an error:
This piece is causing the problem:
If I print the value of
assignment_matrix_->getAssignment(i, 0).getProbability()
, it is something like 1e-5, so every loop iterationprobability_
gets smaller until ~1e-360 and then the error appears.What to do about that?