You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/solve.jl
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,7 @@ function ilqr_solve!(prob::ProblemData;
4
4
grad_tol=1.0e-3,
5
5
α_min=1.0e-5,
6
6
linesearch=:armijo,
7
+
reset_cache=true,
7
8
verbose=false)
8
9
9
10
# printstyled("Iterative LQR\n",
@@ -15,6 +16,7 @@ function ilqr_solve!(prob::ProblemData;
15
16
reset!(m_data.model_deriv)
16
17
reset!(m_data.obj_deriv)
17
18
s_data = prob.s_data
19
+
reset_cache &&reset!(s_data)
18
20
19
21
objective!(s_data, m_data, mode=:nominal)
20
22
derivatives!(m_data, mode=:nominal)
@@ -35,6 +37,7 @@ function ilqr_solve!(prob::ProblemData;
35
37
grad_norm =norm(s_data.gradient, Inf)
36
38
37
39
# info
40
+
s_data.iter[1] +=1
38
41
verbose &&println(" iter: $i
39
42
cost: $(s_data.obj[1])
40
43
grad_norm: $(grad_norm)
@@ -99,6 +102,9 @@ function constrained_ilqr_solve!(prob::ProblemData;
99
102
# verbose && printstyled("Iterative LQR\n",
100
103
# color=:red, bold=true)
101
104
105
+
# reset solver cache
106
+
reset!(prob.s_data)
107
+
102
108
# reset duals
103
109
for (t, λ) inenumerate(prob.m_data.obj.λ)
104
110
fill!(λ, 0.0)
@@ -119,6 +125,7 @@ function constrained_ilqr_solve!(prob::ProblemData;
119
125
max_iter=max_iter,
120
126
obj_tol=obj_tol,
121
127
grad_tol=grad_tol,
128
+
reset_cache=false,
122
129
verbose=verbose)
123
130
124
131
# update trajectories
@@ -145,16 +152,9 @@ function solve!(prob::ProblemData{T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O}, args...; kwar
145
152
iterative_lqr!(prob, args...; kwargs...)
146
153
end
147
154
148
-
# function solve!(prob::ProblemData{T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O}, x, u; kwargs...) where {T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O<:Objective{T}}
149
-
# iterative_lqr!(prob, x, u; kwargs...)
150
-
# end
151
-
152
155
functionsolve!(prob::ProblemData{T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O}, args...; kwargs...) where {T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O<:AugmentedLagrangianCosts{T}}
153
156
constrained_ilqr_solve!(prob, args...; kwargs...)
154
157
end
155
158
156
-
# function solve!(prob::ProblemData{T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O}, x, u; kwargs...) where {T,N,M,NN,MM,MN,NNN,MNN,X,U,D,O<:AugmentedLagrangianCosts{T}}
0 commit comments