Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odometry disconnect at the end of long chains #382

Open
mc2922 opened this issue Aug 22, 2019 · 11 comments
Open

Odometry disconnect at the end of long chains #382

mc2922 opened this issue Aug 22, 2019 · 11 comments

Comments

@mc2922
Copy link
Collaborator

mc2922 commented Aug 22, 2019

Odometry chains break towards the end of a longer chain?

Range-only factors, 190 Point2:
ex2-1.pdf
ex2-2.pdf
ex2-2

Range-only factors, 200 Point2:
ex1-1.pdf
ex1-2.pdf
ex1-2

See example script
here, with minimum number 171 point2s:
https://github.com/JuliaRobotics/Caesar.jl/blob/dynSAS/examples/marine/asv/kayaks/testRangeOnlyOdo.jl

Bayes Tree:
bt.pdf

ex3-2

@dehann
Copy link
Member

dehann commented Aug 25, 2019

Depiction of the Bayes tree that associated with this issue. The short branch has a prior on 'X', but that prior information is not properly distributed down the long sibling branch.

IMG_1675

@dehann
Copy link
Member

dehann commented Aug 25, 2019

another anecdotal piece of information is that the problem also occurred on a single long branch.

@dehann
Copy link
Member

dehann commented Aug 27, 2019

Think this may be related to JuliaRobotics/IncrementalInference.jl#244 which has been postponed for the DFG and CSM upgrades.

@dehann
Copy link
Member

dehann commented Sep 2, 2019

From the photo above, the triangle is x169, square is x170. When looking at the clique low down on right hand branch (x169), the following subgraph is obtained. Note priors represent the downward belief messages during the final stages of the complete solve. This is where the disconnect in odo [x169 -- x170] seems to be occurring:

Screenshot from 2019-09-02 12-33-06

@dehann
Copy link
Member

dehann commented Sep 2, 2019

All these loose fragments should also be computed in parallel btw.

@dehann
Copy link
Member

dehann commented Sep 3, 2019

Ha, a little more progress. By looking closer I found that odometry factor x168--x169 is working the wrong way round for some reason,
Screenshot from 2019-09-02 23-35-02

and then found this. The order of fields x168 and x169 is important here, but clearly wrong:
Screenshot from 2019-09-02 23-37-58

@GearsAD , do you have any ideas here -- think we spoke a little while back on this but I cannot recall what we decided to do about fncargvID?

Values in factor seem fine:
Screenshot from 2019-09-02 23-35-31

Oh, and the factor graph here sfg31bd stands for sub factor graph inside cliq 31 before the down solve is performed.
Screenshot from 2019-09-02 23-44-33

dehann added a commit to JuliaRobotics/RoMEPlotting.jl that referenced this issue Sep 3, 2019
@dehann
Copy link
Member

dehann commented Sep 3, 2019

this does not seem to be present in the original factor graph:
Screenshot from 2019-09-02 23-51-44

@dehann
Copy link
Member

dehann commented Sep 3, 2019

right, so part of the problem was that downward results were not being transferred from cliq sub graphs back to main dfg -- this was an oversight in the new CSM code. However, the issue is not yet fully resolved since downward messages from root into the target clique might have inconsistencies, and I'm looking specifically at that now.

@dehann dehann modified the milestones: v0.4.1, v0.4.3 Oct 10, 2019
@dehann
Copy link
Member

dehann commented Oct 10, 2019

performance should be better with IIF v0.7.7 or greater. Keep open for rigorous testing

@dehann dehann modified the milestones: v0.4.3, v0.4.4 Jan 1, 2020
@dehann
Copy link
Member

dehann commented Jan 1, 2020

need to retest -- currently on IIF v0.8.3 with many improvements since this issue was logged.

@dehann dehann modified the milestones: v0.4.4, v0.4.x Feb 6, 2020
@dehann
Copy link
Member

dehann commented Feb 6, 2020

Will re-evaluate after JuliaRobotics/IncrementalInference.jl#579 is fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants