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
Bug in getKDERange/getKDEMax #1185
Comments
Hi, yes these kind of errors follows from the new inflate feature in v0.21.2. The right way to fix this problem is via Manifolds.jl and using the exp and log maps properly. Perhaps we can come back to this issue after JuliaRobotics/ApproxManifoldProducts.jl#41 and JuliaRobotics/RoME.jl#244... Is there an immediate show stopping issue for which we could try a workaround? BTW Pose3Pose3 has the same issue since Euler rotations [0,0,0] is "equivalent" (not really) to [pi,pi,pi]. Once transitioned to Manifolds.jl as standard then I expect these issues to go away too. |
I wonder if a quick fix can be to update the optim step to use a circular manifold as with Parametric. But RoME 244 is a way better long-term solution, so don't know if it would be worth it. |
A quick experiment yielded the optimization results:
manikde! on the results works as expected. |
The bug is in It returns the wrong part of the manifold.
|
MWE n = Normal(-pi, 0.1)
N=100
fg = initfg()
v = addVariable!(fg, :x, Circular)
addFactor!(fg, [:x], PriorCircular(n))
ensureAllInitialized!(fg)
P = getBelief(v)
ops = buildHybridManifoldCallbacks((:Circular,))
rangeV = getKDERange(P; addop=ops[1], diffop=ops[2])
# julia> rangeV = getKDERange(P; addop=ops[1], diffop=ops[2])
# 1×2 Matrix{Float64}:
# -3.1398 3.13912
# julia> getPPE(fg, :x).suggested
# 1-element Vector{Float64}:
# -3.138374303631888 |
Trying to fix this via #1197 and related. |
See updated MWE above.
|
Originally logged as: "Possible issue with Sphere1"
I see a lot of failures on the last element of this test:
IncrementalInference.jl/test/testSphere1.jl
Line 27 in 733a605
It fails only on the value where a pi wrap happens
Here are 7 runs:
0.04340732121322821
0.04892840689558042
-0.03620065175907605
-0.5407379392747547
-0.0035459366733765485
-0.03978010457882153
0.07482259301990224
It does not look like an accuracy failure.
The text was updated successfully, but these errors were encountered: