Skip to content

Commit 84d96eb

Browse files
authored
Merge pull request #1851 from JuliaRobotics:24Q4/maint/manidiff4
update for ManifoldDiff v0.4 backend
2 parents 40be469 + 1f9d059 commit 84d96eb

File tree

5 files changed

+31
-7
lines changed

5 files changed

+31
-7
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ Interpolations = "0.15"
8484
JSON3 = "1"
8585
KernelDensityEstimate = "0.5.6"
8686
LinearAlgebra = "1.10"
87-
ManifoldDiff = "0.3"
87+
ManifoldDiff = "0.3, 0.4"
8888
Manifolds = "0.10"
8989
ManifoldsBase = "0.15"
90-
Manopt = "0.4.40, 0.5"
90+
Manopt = "^0.5.3"
9191
MetaGraphs = "0.7, 0.8"
9292
Optim = "1"
9393
OrderedCollections = "1"

src/parametric/services/ParametricOptim.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ function optimizeManifold_FD(
88
)
99
# finitediff setup
1010
r_backend = ManifoldDiff.TangentDiffBackend(
11-
ManifoldDiff.FiniteDifferencesBackend()
11+
if v"0.4" <= pkgversion(ManifoldDiff)
12+
ManifoldDiff.AutoFiniteDifferences(central_fdm(5, 1))
13+
else
14+
ManifoldDiff.FiniteDifferencesBackend()
15+
end
1216
)
1317

1418
## finitediff gradient (non-manual)

src/services/FactorGradients.jl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ function factorJacobian(
66
fg,
77
faclabel::Symbol,
88
p0 = ArrayPartition(first.(getVal.(fg, getVariableOrder(fg, faclabel), solveKey = :parametric))...),
9-
backend = ManifoldDiff.TangentDiffBackend(ManifoldDiff.FiniteDiffBackend()),
9+
backend = ManifoldDiff.TangentDiffBackend(
10+
if v"0.4" <= pkgversion(ManifoldDiff)
11+
ManifoldDiff.AutoFiniteDifferences(central_fdm(5, 1))
12+
else
13+
ManifoldDiff.FiniteDifferencesBackend()
14+
end
15+
)
1016
)
1117

1218
fac = getFactor(fg, faclabel)

test/manifolds/factordiff.jl

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,15 @@ function resid_SE2(X, p, q)
9797
end
9898

9999

100+
# finitediff setup
100101
# finitediff setup
101102
r_backend = ManifoldDiff.TangentDiffBackend(
102-
ManifoldDiff.FiniteDifferencesBackend()
103+
if v"0.4" <= pkgversion(ManifoldDiff)
104+
ManifoldDiff.AutoFiniteDifferences(central_fdm(5, 1))
105+
else
106+
ManifoldDiff.FiniteDifferencesBackend()
107+
end
103108
)
104-
105109
Me = Euclidean(3)
106110

107111
function _factorJac!(J, z, p1, p2)
@@ -123,9 +127,15 @@ J_ = _factorJac!(J, z, p1, p2)
123127
# @profview _factorJac!(J, z, p1, p2)
124128

125129
if false
130+
# finitediff setup
126131
z_backend = ManifoldDiff.TangentDiffBackend(
127-
ManifoldDiff.ZygoteDiffBackend()
132+
if v"0.4" <= pkgversion(ManifoldDiff)
133+
ManifoldDiff.AutoFiniteDifferences(central_fdm(5, 1))
134+
else
135+
ManifoldDiff.FiniteDifferencesBackend()
136+
end
128137
)
138+
129139
g = ManifoldDiff.jacobian(M, Euclidean(3), f_SE2_x0, p1, z_backend)
130140
else
131141
@info "ManifoldDiff.ZygoteDiffBackend usage still under development (23Q3)"

test/manifolds/manifolddiff.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ import Rotations as _Rot
1313

1414
# finitediff setup
1515
r_backend = ManifoldDiff.TangentDiffBackend(
16+
if v"0.4" <= pkgversion(ManifoldDiff)
17+
ManifoldDiff.AutoFiniteDifferences(central_fdm(5, 1))
18+
else
1619
ManifoldDiff.FiniteDifferencesBackend()
20+
end
1721
)
1822

1923
##

0 commit comments

Comments
 (0)