From 2a2dc7d0c4c5c16a3086576b568b2da2f4b63f4f Mon Sep 17 00:00:00 2001 From: dehann Date: Mon, 22 Jan 2024 03:02:41 -0800 Subject: [PATCH 1/6] update compat for Manifolds v0.9.12 --- Project.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 2125b1c5..9e9b7d25 100644 --- a/Project.toml +++ b/Project.toml @@ -78,8 +78,9 @@ FiniteDifferences = "0.12" FunctionalStateMachine = "0.2.9" JSON3 = "1" KernelDensityEstimate = "0.5.6" +LinearAlgebra = "1" ManifoldDiff = "0.3" -Manifolds = "0.9" +Manifolds = "0.9.12" ManifoldsBase = "0.15" Manopt = "0.4.40" MetaGraphs = "0.7" @@ -96,7 +97,7 @@ StatsBase = "0.32, 0.33, 0.34" StructTypes = "1" TensorCast = "0.3.3, 0.4" TimeZones = "1.3.1" -julia = "1.9" +julia = "1.10" [extras] AMD = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e" From 9a09e88cb3f6062c01d71cd8b709a34e134e4dd7 Mon Sep 17 00:00:00 2001 From: dehann Date: Mon, 22 Jan 2024 03:19:38 -0800 Subject: [PATCH 2/6] std libraries compat to 1.10 --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 9e9b7d25..ec28facd 100644 --- a/Project.toml +++ b/Project.toml @@ -78,7 +78,7 @@ FiniteDifferences = "0.12" FunctionalStateMachine = "0.2.9" JSON3 = "1" KernelDensityEstimate = "0.5.6" -LinearAlgebra = "1" +LinearAlgebra = "1.10" ManifoldDiff = "0.3" Manifolds = "0.9.12" ManifoldsBase = "0.15" @@ -92,7 +92,7 @@ RecursiveArrayTools = "2.31.1, 3" Reexport = "1" SparseDiffTools = "2" StaticArrays = "1" -Statistics = "1" +Statistics = "1.10" StatsBase = "0.32, 0.33, 0.34" StructTypes = "1" TensorCast = "0.3.3, 0.4" From 703865fb6513345a16f6784021b99198132bdac6 Mon Sep 17 00:00:00 2001 From: dehann Date: Mon, 22 Jan 2024 08:25:14 -0800 Subject: [PATCH 3/6] fix broken outdated docstrings --- src/parametric/services/ConsolidateParametricRelatives.jl | 2 +- src/parametric/services/ParametricManopt.jl | 6 +++++- src/services/CalcFactor.jl | 4 ++-- src/services/DeconvUtils.jl | 4 ++-- src/services/GraphProductOperations.jl | 2 +- src/services/TetherUtils.jl | 2 +- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/parametric/services/ConsolidateParametricRelatives.jl b/src/parametric/services/ConsolidateParametricRelatives.jl index c5c8ef9b..28274b83 100644 --- a/src/parametric/services/ConsolidateParametricRelatives.jl +++ b/src/parametric/services/ConsolidateParametricRelatives.jl @@ -18,7 +18,7 @@ DevNotes Related: -[`getMeasurementParametric`](@ref), [`approxConv`](@ref), [`MutablePose2Pose2Gaussian`](@ref) +[`getMeasurementParametric`](@ref), [`approxConvBelief`](@ref), [`MutablePose2Pose2Gaussian`](@ref) """ function solveFactorParameteric( dfg::AbstractDFG, diff --git a/src/parametric/services/ParametricManopt.jl b/src/parametric/services/ParametricManopt.jl index f82165e4..e1d14e74 100644 --- a/src/parametric/services/ParametricManopt.jl +++ b/src/parametric/services/ParametricManopt.jl @@ -562,7 +562,11 @@ function autoinitParametric!( end -## +""" + $SIGNATURES + +Batch parametric graph solve using Riemannian Levenberg Marquardt. +""" solveGraphParametric(args...; kwargs...) = solve_RLM(args...; kwargs...) function DFG.solveGraphParametric!( diff --git a/src/services/CalcFactor.jl b/src/services/CalcFactor.jl index 8cccca2c..90c0d0a2 100644 --- a/src/services/CalcFactor.jl +++ b/src/services/CalcFactor.jl @@ -118,7 +118,7 @@ residual = calcFactorResidual(fg, :x1x2f1, [1.0], [0.0], [0.0]) Related -[`calcFactorResidualTemporary`](@ref), [`_evalFactorTemporary!`](@ref), [`evalFactor`](@ref), [`approxConv`](@ref) +[`calcFactorResidualTemporary`](@ref), [`_evalFactorTemporary!`](@ref), [`evalFactor`](@ref), [`approxConvBelief`](@ref) """ function calcFactorResidual( dfgfct::DFGFactor, @@ -147,7 +147,7 @@ residual = calcFactorResidualTemporary(Pose2Pose2(...), (RoME.Pose2,RoME.Pose2), Related -[`calcFactorResidual`](@ref), [`CalcResidual`](@ref), [`_evalFactorTemporary!`](@ref), [`approxConv`](@ref), [`_buildGraphByFactorAndTypes!`](@ref) +[`calcFactorResidual`](@ref), [`CalcResidual`](@ref), [`_evalFactorTemporary!`](@ref), [`approxConvBelief`](@ref), [`_buildGraphByFactorAndTypes!`](@ref) """ function calcFactorResidualTemporary( fct::AbstractRelative, diff --git a/src/services/DeconvUtils.jl b/src/services/DeconvUtils.jl index 52a1d457..073299e8 100644 --- a/src/services/DeconvUtils.jl +++ b/src/services/DeconvUtils.jl @@ -168,12 +168,12 @@ Generalized deconvolution to find the predicted measurement values of the factor Inverse solve of predicted noise value and returns tuple of (newly predicted, and known "measured" noise) values. Notes -- Opposite operation contained in `approxConv`. +- Opposite operation contained in `approxConvBelief`. - For more notes see [`solveFactorMeasurements`](@ref). Related -[`approxConv`](@ref), `deconvSolveKey` +[`approxConvBelief`](@ref), `deconvSolveKey` """ function approxDeconv( dfg::AbstractDFG, diff --git a/src/services/GraphProductOperations.jl b/src/services/GraphProductOperations.jl index 4304af42..06d2d845 100644 --- a/src/services/GraphProductOperations.jl +++ b/src/services/GraphProductOperations.jl @@ -11,7 +11,7 @@ Notes Related -[`approxConv`](@ref), [`proposalbeliefs!`](@ref), [`AMP.manifoldProduct`](@ref) +[`approxConvBelief`](@ref), [`proposalbeliefs!`](@ref), [`AMP.manifoldProduct`](@ref) """ function propagateBelief( dfg::AbstractDFG, diff --git a/src/services/TetherUtils.jl b/src/services/TetherUtils.jl index c0fc3a58..582bec86 100644 --- a/src/services/TetherUtils.jl +++ b/src/services/TetherUtils.jl @@ -114,7 +114,7 @@ DevNotes Related: -[`approxConv`](@ref), [`solveFactorParameteric`](@ref), `RoME.MutablePose2Pose2Gaussian` +[`approxConvBelief`](@ref), [`solveFactorParameteric`](@ref), `RoME.MutablePose2Pose2Gaussian` """ function accumulateFactorMeans( dfg::AbstractDFG, From ac917245e2391e03b0c8132f5511c504f830bce1 Mon Sep 17 00:00:00 2001 From: dehann Date: Tue, 23 Jan 2024 00:30:47 -0800 Subject: [PATCH 4/6] various doc string fixes --- src/parametric/services/ConsolidateParametricRelatives.jl | 4 +--- src/services/ApproxConv.jl | 2 +- src/services/CalcFactor.jl | 2 +- src/services/EvalFactor.jl | 4 +--- src/services/FGOSUtils.jl | 2 +- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/parametric/services/ConsolidateParametricRelatives.jl b/src/parametric/services/ConsolidateParametricRelatives.jl index 28274b83..c2d5c06f 100644 --- a/src/parametric/services/ConsolidateParametricRelatives.jl +++ b/src/parametric/services/ConsolidateParametricRelatives.jl @@ -16,9 +16,7 @@ DevNotes - TODO ensure type stability, likely returning types `Any` at this time. - TODO MeanMaxPPE currently stored as coordinates, complicating fast calculation. -Related: - -[`getMeasurementParametric`](@ref), [`approxConvBelief`](@ref), [`MutablePose2Pose2Gaussian`](@ref) +Related: [`getMeasurementParametric`](@ref), [`approxConvBelief`](@ref), [`MutablePose2Pose2Gaussian`](@ref) """ function solveFactorParameteric( dfg::AbstractDFG, diff --git a/src/services/ApproxConv.jl b/src/services/ApproxConv.jl index 704e2437..3335c2a8 100644 --- a/src/services/ApproxConv.jl +++ b/src/services/ApproxConv.jl @@ -70,7 +70,7 @@ DevNotes Related -[`approxDeconv`](@ref), `LocalDFG.findShortestPathDijkstra`, [`evalFactor`](@ref) +[`approxDeconv`](@ref), `findShortestPathDijkstra` """ function approxConvBelief( dfg::AbstractDFG, diff --git a/src/services/CalcFactor.jl b/src/services/CalcFactor.jl index 90c0d0a2..2d243c7e 100644 --- a/src/services/CalcFactor.jl +++ b/src/services/CalcFactor.jl @@ -118,7 +118,7 @@ residual = calcFactorResidual(fg, :x1x2f1, [1.0], [0.0], [0.0]) Related -[`calcFactorResidualTemporary`](@ref), [`_evalFactorTemporary!`](@ref), [`evalFactor`](@ref), [`approxConvBelief`](@ref) +[`calcFactorResidualTemporary`](@ref), [`_evalFactorTemporary!`](@ref), [`approxConvBelief`](@ref) """ function calcFactorResidual( dfgfct::DFGFactor, diff --git a/src/services/EvalFactor.jl b/src/services/EvalFactor.jl index 29a61e12..c61ff667 100644 --- a/src/services/EvalFactor.jl +++ b/src/services/EvalFactor.jl @@ -620,9 +620,7 @@ B = _evalFactorTemporary!(EuclidDistance, (ContinuousScalar, ContinuousScalar), # should return `B = 10` ``` -Related - -[`evalFactor`](@ref), [`calcFactorResidual`](@ref), [`testFactorResidualBinary`](@ref), [`solveFactorParameteric`](@ref), [`approxConvBelief`](@ref) +See also: [`calcFactorResidual`](@ref), [`testFactorResidualBinary`](@ref), [`solveFactorParameteric`](@ref), [`approxConvBelief`](@ref) """ function _evalFactorTemporary!( fct::AbstractFactor, diff --git a/src/services/FGOSUtils.jl b/src/services/FGOSUtils.jl index a2531e5c..8d1a976b 100644 --- a/src/services/FGOSUtils.jl +++ b/src/services/FGOSUtils.jl @@ -232,7 +232,7 @@ DevNotes Related -[`getVariablePPE`](@ref), [`setVariablePosteriorEstimates!`](@ref), [`getVariablePPE!`](@ref), [`setPPE!`](@ref) +[`getPPE`](@ref), [`setPPE!`](@ref), [`getVariablePPE`](@ref) """ function calcPPE( var::DFGVariable, From 9f9ee474df84003586305352411ef7ebe06fc46e Mon Sep 17 00:00:00 2001 From: dehann Date: Tue, 23 Jan 2024 05:43:43 -0800 Subject: [PATCH 5/6] docs fixes, typo fix depr solveFactorParameteric --- NEWS.md | 3 ++- src/Deprecated.jl | 1 + src/ExportAPI.jl | 2 +- src/parametric/services/ConsolidateParametricRelatives.jl | 2 +- src/parametric/services/ParametricUtils.jl | 4 ++-- src/services/EvalFactor.jl | 2 +- src/services/SolverUtilities.jl | 2 +- src/services/TetherUtils.jl | 4 ++-- 8 files changed, 11 insertions(+), 9 deletions(-) diff --git a/NEWS.md b/NEWS.md index b4c1f585..b4e49b0a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -24,6 +24,7 @@ The list below highlights breaking changes according to normal semver workflow - - Restore `DifferentialEquation.jl` factor `DERelative` functionality and tests that were suppressed in a previous upgrade (#1774, #1777). - Restore previously suppressed tests (#1781, #1721, #1780) - Improve DERelative factor on-manifold operations (#1775, #1802, #1803). +- Fixed a typo via deprecation, `solveFactorParametric` replaces `solveFactorParameteric`. # Changes in v0.34 @@ -110,7 +111,7 @@ The list below highlights breaking changes according to normal semver workflow - - Upstream `calcHelix_T` canonical generator utility from RoME.jl. - Deserialization of factors with DFG needs new API and change of solverData and CCW type in factor. - Deprecate use of `getParametricMeasurement` and use `getMeasurementParametric` instead, and add `<:AbstractManifold` to API. -- Deprecate use of `solveBinaryFactorParameteric`, instead use `solveFactorParameteric`. +- Deprecate use of `solveBinaryFactorParameteric`, instead use `solveFactorParametric`. - Deprecating `approxConvBinary`, use `approxConvBelief` instead. - Removing obsolete `approxConvCircular`, use `approxConvBelief` instead. - `getSample` should return a single sample and no longer takes the N(number of samples) parameter. diff --git a/src/Deprecated.jl b/src/Deprecated.jl index df3c4d27..c534523b 100644 --- a/src/Deprecated.jl +++ b/src/Deprecated.jl @@ -123,6 +123,7 @@ end ## Deprecate code below before v0.37 ##============================================================================== +@deprecate solveFactorParameteric(w...;kw...) solveFactorParametric(w...;kw...) ##============================================================================== ## Deprecate code below before v0.36 diff --git a/src/ExportAPI.jl b/src/ExportAPI.jl index a415dd4d..5892699f 100644 --- a/src/ExportAPI.jl +++ b/src/ExportAPI.jl @@ -344,7 +344,7 @@ export approxDeconvBelief export cont2disc export rebaseFactorVariable! export accumulateFactorMeans -export solveFactorParameteric +export solveFactorParametric export repeatCSMStep! export attachCSM! diff --git a/src/parametric/services/ConsolidateParametricRelatives.jl b/src/parametric/services/ConsolidateParametricRelatives.jl index c2d5c06f..214b2167 100644 --- a/src/parametric/services/ConsolidateParametricRelatives.jl +++ b/src/parametric/services/ConsolidateParametricRelatives.jl @@ -18,7 +18,7 @@ DevNotes Related: [`getMeasurementParametric`](@ref), [`approxConvBelief`](@ref), [`MutablePose2Pose2Gaussian`](@ref) """ -function solveFactorParameteric( +function solveFactorParametric( dfg::AbstractDFG, fct::DFGFactor, # currval::P1, diff --git a/src/parametric/services/ParametricUtils.jl b/src/parametric/services/ParametricUtils.jl index a4537a6d..6ef19954 100644 --- a/src/parametric/services/ParametricUtils.jl +++ b/src/parametric/services/ParametricUtils.jl @@ -52,7 +52,7 @@ Notes - Originally written just for Lie Groups to support legacy, but future needs may well alter the design. - Original design driven by parametric solve and dead reckon tethering. -See also: [`accumulateFactorMeans`](@ref), [`solveFactorParameteric`](@ref) +See also: [`accumulateFactorMeans`](@ref), [`solveFactorParametric`](@ref) """ function getMeasurementParametric end @@ -648,7 +648,7 @@ DevNotes - WIP - Relates to: https://github.com/JuliaRobotics/IncrementalInference.jl/issues/466#issuecomment-562556953 - Consolidation - - Definitely with [`solveFactorParameteric`](@ref) + - Definitely with [`solveFactorParametric`](@ref) - Maybe with [`solveGraphParametric`](@ref) - https://github.com/JuliaRobotics/IncrementalInference.jl/pull/1588#issuecomment-1210406683 """ diff --git a/src/services/EvalFactor.jl b/src/services/EvalFactor.jl index c61ff667..97f01e09 100644 --- a/src/services/EvalFactor.jl +++ b/src/services/EvalFactor.jl @@ -620,7 +620,7 @@ B = _evalFactorTemporary!(EuclidDistance, (ContinuousScalar, ContinuousScalar), # should return `B = 10` ``` -See also: [`calcFactorResidual`](@ref), [`testFactorResidualBinary`](@ref), [`solveFactorParameteric`](@ref), [`approxConvBelief`](@ref) +See also: [`calcFactorResidual`](@ref), [`testFactorResidualBinary`](@ref), [`solveFactorParametric`](@ref), [`approxConvBelief`](@ref) """ function _evalFactorTemporary!( fct::AbstractFactor, diff --git a/src/services/SolverUtilities.jl b/src/services/SolverUtilities.jl index b5e5a476..6e1fbcd5 100644 --- a/src/services/SolverUtilities.jl +++ b/src/services/SolverUtilities.jl @@ -203,7 +203,7 @@ Notes - This function does not add new variables or factors to `fg`, user must do that themselves after. - Useful to use in combination with `setPPE!` on new variable. - At time of writing `accumulateFactorMeans` could only incorporate priors or binary relative factors. - - internal info, see [`solveFactorParameteric`](@ref), + - internal info, see [`solveFactorParametric`](@ref), - This means at time of writing `factor` must be a binary factor. - Tip, if simulations are inducing odometry bias, think of using two factors from caller (e.g. simPerfect and simBias). diff --git a/src/services/TetherUtils.jl b/src/services/TetherUtils.jl index 582bec86..a2719106 100644 --- a/src/services/TetherUtils.jl +++ b/src/services/TetherUtils.jl @@ -114,7 +114,7 @@ DevNotes Related: -[`approxConvBelief`](@ref), [`solveFactorParameteric`](@ref), `RoME.MutablePose2Pose2Gaussian` +[`approxConvBelief`](@ref), [`solveFactorParametric`](@ref), `RoME.MutablePose2Pose2Gaussian` """ function accumulateFactorMeans( dfg::AbstractDFG, @@ -150,7 +150,7 @@ function accumulateFactorMeans( # first find direction of solve vars = getVariableOrder(fct) trgsym = setdiff(vars, [srcsym])[1] - val = solveFactorParameteric(dfg, fct, [srcsym => val;], trgsym; solveKey) + val = solveFactorParametric(dfg, fct, [srcsym => val;], trgsym; solveKey) srcsym = trgsym end From 2652b2eafa03917014c968233cb2e67ccc4f6b42 Mon Sep 17 00:00:00 2001 From: Dehann Fourie <6412556+dehann@users.noreply.github.com> Date: Tue, 23 Jan 2024 05:49:36 -0800 Subject: [PATCH 6/6] bump v0.35.3 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index ec28facd..8453e3a3 100644 --- a/Project.toml +++ b/Project.toml @@ -2,7 +2,7 @@ name = "IncrementalInference" uuid = "904591bb-b899-562f-9e6f-b8df64c7d480" keywords = ["MM-iSAMv2", "Bayes tree", "junction tree", "Bayes network", "variable elimination", "graphical models", "SLAM", "inference", "sum-product", "belief-propagation"] desc = "Implements the Multimodal-iSAMv2 algorithm." -version = "0.35.2" +version = "0.35.3" [deps] ApproxManifoldProducts = "9bbbb610-88a1-53cd-9763-118ce10c1f89"