Skip to content

Commit d5e4dab

Browse files
committed
Fix code for the new C API in Knitro 13.2
1 parent 417f7d6 commit d5e4dab

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/transcription/knitro.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@ function solve_with_knitro(problem::Problem, robot::Robot;
2626
ind_v = hcat([range(1 + (i * nₓ) + robot.n_q , length=robot.n_v) for i = (1:problem.num_knots ) .- 1]...)
2727
ind_τ = hcat([range(1 + (i * nₓ) + robot.n_q + robot.n_v, length=robot.n_τ) for i = (1:problem.num_knots - 1) .- 1]...)
2828

29-
KNITRO.KN_set_var_lobnds(kc, Cint.(vec(ind_q) .- 1), repeat(robot.q_lo, problem.num_knots)) # q lower bounds
30-
KNITRO.KN_set_var_upbnds(kc, Cint.(vec(ind_q) .- 1), repeat(robot.q_hi, problem.num_knots)) # q upper bounds
29+
KNITRO.KN_set_var_lobnds(kc, length(ind_q), Cint.(vec(ind_q) .- 1), repeat(robot.q_lo, problem.num_knots)) # q lower bounds
30+
KNITRO.KN_set_var_upbnds(kc, length(ind_q), Cint.(vec(ind_q) .- 1), repeat(robot.q_hi, problem.num_knots)) # q upper bounds
3131

32-
KNITRO.KN_set_var_lobnds(kc, Cint.(vec(ind_v) .- 1), repeat(robot.v_lo, problem.num_knots)) # v lower bounds
33-
KNITRO.KN_set_var_upbnds(kc, Cint.(vec(ind_v) .- 1), repeat(robot.v_hi, problem.num_knots)) # v upper bounds
32+
KNITRO.KN_set_var_lobnds(kc, length(ind_v), Cint.(vec(ind_v) .- 1), repeat(robot.v_lo, problem.num_knots)) # v lower bounds
33+
KNITRO.KN_set_var_upbnds(kc, length(ind_v), Cint.(vec(ind_v) .- 1), repeat(robot.v_hi, problem.num_knots)) # v upper bounds
3434

3535
if !isempty(ind_τ)
36-
KNITRO.KN_set_var_lobnds(kc, Cint.(vec(ind_τ) .- 1), repeat(robot.τ_lo, problem.num_knots - 1)) # τ lower bounds
37-
KNITRO.KN_set_var_upbnds(kc, Cint.(vec(ind_τ) .- 1), repeat(robot.τ_hi, problem.num_knots - 1)) # τ upper bounds
36+
KNITRO.KN_set_var_lobnds(kc, length(ind_τ), Cint.(vec(ind_τ) .- 1), repeat(robot.τ_lo, problem.num_knots - 1)) # τ lower bounds
37+
KNITRO.KN_set_var_upbnds(kc, length(ind_τ), Cint.(vec(ind_τ) .- 1), repeat(robot.τ_hi, problem.num_knots - 1)) # τ upper bounds
3838
end
3939

4040
# Fixed variables
41-
for (k, q) problem.fixed_q KNITRO.KN_set_var_fxbnds(kc, Cint.(vec(ind_q[:,k]) .- 1), q) end
42-
for (k, v) problem.fixed_v KNITRO.KN_set_var_fxbnds(kc, Cint.(vec(ind_v[:,k]) .- 1), v) end
43-
for (k, τ) problem.fixed_τ KNITRO.KN_set_var_fxbnds(kc, Cint.(vec(ind_τ[:,k]) .- 1), τ) end
41+
for (k, q) problem.fixed_q KNITRO.KN_set_var_fxbnds(kc, length(robot.n_q), Cint.(vec(ind_q[:,k]) .- 1), q) end
42+
for (k, v) problem.fixed_v KNITRO.KN_set_var_fxbnds(kc, length(robot.n_v), Cint.(vec(ind_v[:,k]) .- 1), v) end
43+
for (k, τ) problem.fixed_τ KNITRO.KN_set_var_fxbnds(kc, length(robot.n_τ), Cint.(vec(ind_τ[:,k]) .- 1), τ) end
4444

4545
# # # # # # # #
4646
# Constraints #
@@ -59,7 +59,7 @@ function solve_with_knitro(problem::Problem, robot::Robot;
5959
ind_con_ee_pos = (1:m₂) .+ (m₁)
6060

6161
if use_m₁
62-
KNITRO.KN_set_con_eqbnds(kc, collect(Cint, ind_con_dyn .- 1), zeros(m₁))
62+
KNITRO.KN_set_con_eqbnds(kc, m₁, collect(Cint, ind_con_dyn .- 1), zeros(m₁))
6363

6464
if use_inv_dyn
6565
jac = problem.jacdata_inv_dyn.jac
@@ -100,7 +100,7 @@ function solve_with_knitro(problem::Problem, robot::Robot;
100100

101101
@assert length(ind_con_ee_pos) == length(con_ee)
102102

103-
KNITRO.KN_set_con_eqbnds(kc, collect(Cint, ind_con_ee_pos .- 1), vec(con_ee))
103+
KNITRO.KN_set_con_eqbnds(kc, length(con_ee), collect(Cint, ind_con_ee_pos .- 1), vec(con_ee))
104104

105105
cb = KNITRO.KN_add_eval_callback(kc, false, collect(Cint, ind_con_ee_pos .- 1), cb_eval_fc_con_ee)
106106

@@ -155,7 +155,7 @@ function solve_with_knitro(problem::Problem, robot::Robot;
155155
@assert length(initial_guess) == n
156156

157157
# Set starting solution
158-
KNITRO.KN_set_var_primal_init_values(kc, initial_guess)
158+
KNITRO.KN_set_var_primal_init_values_all(kc, initial_guess)
159159

160160
# # # # # # # # #
161161
# User Options #

0 commit comments

Comments
 (0)