@@ -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