Skip to content

Commit f77ebec

Browse files
committed
update loadTree and graphinit
1 parent 4447cf6 commit f77ebec

File tree

2 files changed

+37
-29
lines changed

2 files changed

+37
-29
lines changed

src/CanonicalGraphExamples.jl

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ Canonical example from literature, Kaess, et al.: ISAM2, IJRR, 2011.
1010
Notes
1111
- Paper variable ordering: p = [:l1;:l2;:x1;:x2;:x3]
1212
"""
13-
function loadCanonicalFG_Kaess()
13+
function loadCanonicalFG_Kaess(;graphinit::Bool=false)
1414
fg = initfg()
1515

1616
addVariable!(fg,:x1, ContinuousScalar)
17-
addFactor!(fg, [:x1;], Prior(Normal()))
17+
addFactor!(fg, [:x1;], Prior(Normal()), autoinit=graphinit)
1818

1919

2020
addVariable!(fg,:x2, ContinuousScalar)
21-
addFactor!(fg,[:x1, :x2], LinearConditional(Normal()))
21+
addFactor!(fg,[:x1, :x2], LinearConditional(Normal()), autoinit=graphinit)
2222

2323
addVariable!(fg, :x3, ContinuousScalar)
24-
addFactor!(fg,[:x2,:x3],LinearConditional(Normal()))
24+
addFactor!(fg,[:x2,:x3],LinearConditional(Normal()), autoinit=graphinit)
2525

2626
addVariable!(fg, :l1, ContinuousScalar)
27-
addFactor!(fg, [:x1,:l1], LinearConditional(Normal()) )
28-
addFactor!(fg, [:x2,:l1], LinearConditional(Normal()) )
27+
addFactor!(fg, [:x1,:l1], LinearConditional(Normal()) , autoinit=graphinit)
28+
addFactor!(fg, [:x2,:l1], LinearConditional(Normal()) , autoinit=graphinit)
2929

3030
addVariable!(fg, :l2, ContinuousScalar)
31-
addFactor!(fg, [:x3,:l2], LinearConditional(Normal()))
31+
addFactor!(fg, [:x3,:l2], LinearConditional(Normal()), autoinit=graphinit)
3232

3333
return fg
3434
end
@@ -42,7 +42,7 @@ Canonical example introduced by Borglab.
4242
Notes
4343
- Known variable ordering: p = [:x1; :l3; :l1; :x5; :x2; :l2; :x4; :x3]
4444
"""
45-
function loadCanonicalFG_TestSymbolic()
45+
function loadCanonicalFG_TestSymbolic(;graphinit::Bool=false)
4646
fg = initfg()
4747

4848
addVariable!(fg, :x1, ContinuousScalar)
@@ -54,16 +54,16 @@ function loadCanonicalFG_TestSymbolic()
5454
addVariable!(fg, :l2, ContinuousScalar)
5555
addVariable!(fg, :l3, ContinuousScalar)
5656

57-
addFactor!(fg, [:x1;:l1], LinearConditional(Normal()))
58-
addFactor!(fg, [:x1;:x2], LinearConditional(Normal()))
59-
addFactor!(fg, [:x2;:l1], LinearConditional(Normal()))
60-
addFactor!(fg, [:x2;:x3], LinearConditional(Normal()))
61-
addFactor!(fg, [:x3;:x4], LinearConditional(Normal()))
62-
addFactor!(fg, [:x4;:l2], LinearConditional(Normal()))
63-
addFactor!(fg, [:x4;:x5], LinearConditional(Normal()))
64-
addFactor!(fg, [:l2;:x5], LinearConditional(Normal()))
65-
addFactor!(fg, [:x4;:l3], LinearConditional(Normal()))
66-
addFactor!(fg, [:x5;:l3], LinearConditional(Normal()))
57+
addFactor!(fg, [:x1;:l1], LinearConditional(Normal()), autoinit=graphinit)
58+
addFactor!(fg, [:x1;:x2], LinearConditional(Normal()), autoinit=graphinit)
59+
addFactor!(fg, [:x2;:l1], LinearConditional(Normal()), autoinit=graphinit)
60+
addFactor!(fg, [:x2;:x3], LinearConditional(Normal()), autoinit=graphinit)
61+
addFactor!(fg, [:x3;:x4], LinearConditional(Normal()), autoinit=graphinit)
62+
addFactor!(fg, [:x4;:l2], LinearConditional(Normal()), autoinit=graphinit)
63+
addFactor!(fg, [:x4;:x5], LinearConditional(Normal()), autoinit=graphinit)
64+
addFactor!(fg, [:l2;:x5], LinearConditional(Normal()), autoinit=graphinit)
65+
addFactor!(fg, [:x4;:l3], LinearConditional(Normal()), autoinit=graphinit)
66+
addFactor!(fg, [:x5;:l3], LinearConditional(Normal()), autoinit=graphinit)
6767

6868
return fg
6969
end
@@ -78,7 +78,7 @@ Canonical example introduced originally as Caesar Hex Example.
7878
Notes
7979
- Paper variable ordering: p = [:x0;:x2;:x4;:x6;:x1;:l1;:x5;:x3;]
8080
"""
81-
function loadCanonicalFG_CaesarRing1D()
81+
function loadCanonicalFG_CaesarRing1D(;graphinit::Bool=false)
8282

8383
fg = initfg()
8484

@@ -90,17 +90,17 @@ function loadCanonicalFG_CaesarRing1D()
9090
addVariable!(fg, :x5, ContinuousScalar)
9191
addVariable!(fg, :x6, ContinuousScalar)
9292

93-
addFactor!(fg, [:x0], Prior(Normal()))
94-
addFactor!(fg, [:x0;:x1], LinearConditional(Normal()))
95-
addFactor!(fg, [:x1;:x2], LinearConditional(Normal()))
96-
addFactor!(fg, [:x2;:x3], LinearConditional(Normal()))
97-
addFactor!(fg, [:x3;:x4], LinearConditional(Normal()))
98-
addFactor!(fg, [:x4;:x5], LinearConditional(Normal()))
99-
addFactor!(fg, [:x5;:x6], LinearConditional(Normal()))
93+
addFactor!(fg, [:x0], Prior(Normal()), autoinit=graphinit)
94+
addFactor!(fg, [:x0;:x1], LinearConditional(Normal()), autoinit=graphinit)
95+
addFactor!(fg, [:x1;:x2], LinearConditional(Normal()), autoinit=graphinit)
96+
addFactor!(fg, [:x2;:x3], LinearConditional(Normal()), autoinit=graphinit)
97+
addFactor!(fg, [:x3;:x4], LinearConditional(Normal()), autoinit=graphinit)
98+
addFactor!(fg, [:x4;:x5], LinearConditional(Normal()), autoinit=graphinit)
99+
addFactor!(fg, [:x5;:x6], LinearConditional(Normal()), autoinit=graphinit)
100100

101101
addVariable!(fg, :l1, ContinuousScalar)
102-
addFactor!(fg, [:x0;:l1], LinearConditional(Normal()))
103-
addFactor!(fg, [:x6;:l1], LinearConditional(Normal()))
102+
addFactor!(fg, [:x0;:l1], LinearConditional(Normal()), autoinit=graphinit)
103+
addFactor!(fg, [:x6;:l1], LinearConditional(Normal()), autoinit=graphinit)
104104

105105
return fg
106106
end

src/JunctionTree.jl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1533,5 +1533,13 @@ IIF.saveTree, DFG.saveDFG, DFG.loadDFG, JLD2.@save, JLD2.@load
15331533
function loadTree(filepath=joinpath("/tmp","caesar","savetree.jld2"))
15341534
data = @load filepath savetree
15351535

1536-
@warn "loadTree implementation not complete yet, got data=$data"
1536+
# convert back to a type that which could not be serialized by JLD2
1537+
for i in 1:length(savetree.cliques)
1538+
if savetree.cliques[i].attributes["data"] isa PackedBayesTreeNodeData
1539+
savetree.cliques[i].attributes["data"] = convert(BayesTreeNodeData, savetree.cliques[i].attributes["data"])
1540+
end
1541+
end
1542+
1543+
# return loaded and converted tree
1544+
return savetree
15371545
end

0 commit comments

Comments
 (0)