EDIT, some of these code snippets are out of date.
Console
# save clique subgraphs during inference at critical steps
getSolverParams(fg).dbg = true
# record CSM steps for later analysis
tree, smt, hist = solveTree!(fg, recordcliqs=ls(fg))
# print to screen the CSM steps for clique with frontal :x2
printCliqHistorySummary(tree, :x2)
# where is everything saved???
getLogPath(fg)
clid = getCliq(tree, :x5).index
STEP = 8
fncAS = hist[clid][STEP][3]
dataAS = deepcopy(hist[clid][STEP][4])
fncAS(dataAS)
solveTree! will always generate content at getLogPath(fg) location.
- More or less will be stored there depending
getSolverParams(fg).dbg.
recordcliqs=[:x1;:x2;...] will save the CSM history to RAM.
Animate CSM Video
Can also make concurrent video of CSM at work:
# new interface
csmAnimate(tree, hist, frames=1000)
run(`ffmpeg -r 10 -i /tmp/caesar/csmCompound/csm_%d.png -c:v libtheora -vf fps=25 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -q 10 /tmp/caesar/csmCompound/out.ogv`)
@async run(`totem /tmp/caesar/csmCompound/out.ogv`)
Also see csmAnimate's own documentation.
EDIT
new Caesar.writevideo function directly engages with ffmpeg which is easier:
https://github.com/JuliaRobotics/Caesar.jl/blob/b514d18cbb6cc3b5557f67617ed08918c4260a26/src/images/images.jl#L6-L50
Also see example of debug process in #754
EDIT, some of these code snippets are out of date.
Console
solveTree!will always generate content atgetLogPath(fg)location.getSolverParams(fg).dbg.recordcliqs=[:x1;:x2;...]will save the CSM history to RAM.Animate CSM Video
Can also make concurrent video of CSM at work:
Also see
csmAnimate's own documentation.EDIT
new
Caesar.writevideofunction directly engages withffmpegwhich is easier:https://github.com/JuliaRobotics/Caesar.jl/blob/b514d18cbb6cc3b5557f67617ed08918c4260a26/src/images/images.jl#L6-L50
Also see example of debug process in #754