Skip to content

Intergration an ocp solution #1034

@vmaggion

Description

@vmaggion

Issue for @EveCharbie following her request during a recent discussion we had.

Get an error while trying to integrate a solution of an ocp with parameters, where the parameters if of the DM type instead of numpy type.

Error message:

Traceback (most recent call last):
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/casadi/casadi.py", line 11225, in toarray
return np.array(self.T.elements()).reshape(self.shape)
^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/casadi/casadi.py", line 11050, in T
@Property

KeyboardInterrupt
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/valentin/.local/share/JetBrains/Toolbox/apps/pycharm/plugins/python-ce/helpers/pydev/pydevd.py", line 1648, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/home/valentin/.local/share/JetBrains/Toolbox/apps/pycharm/plugins/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/valentin/PycharmProjects/hand_model_bioptim/ARMS_simulations/Custom_parameters/Index_test_custom_param.py", line 195, in
main()
~~~~^^
File "/home/valentin/PycharmProjects/hand_model_bioptim/ARMS_simulations/Custom_parameters/Index_test_custom_param.py", line 186, in main
sol2 = sol.integrate(integrator=SolutionIntegrator.SCIPY_RK45)
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/optimization/solution/solution.py", line 833, in integrate
integrated_sol = solve_ivp_interface(
list_of_dynamics=[nlp.dynamics_func] * nlp.ns,
...<8 lines>...
method=integrator,
)
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/interfaces/solve_ivp_interface.py", line 90, in solve_ivp_interface
result = _solve_ivp_scipy_interface(
lambda t, x: np.array(
...<7 lines>...
method=method.value,
)
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/interfaces/solve_ivp_interface.py", line 119, in _solve_ivp_scipy_interface
result: Any = solve_ivp(dynamics, y0=x0, t_span=np.array(t_span), t_eval=t_eval, method=method)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/ivp.py", line 655, in solve_ivp
message = solver.step()
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/base.py", line 197, in step
success, message = self._step_impl()
~~~~~~~~~~~~~~~^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/rk.py", line 144, in _step_impl
y_new, f_new = rk_step(self.fun, t, y, self.f, h, self.A,
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self.B, self.C, self.K)
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/rk.py", line 64, in rk_step
K[s] = fun(t + c * h, y + dy)
~~~^^^^^^^^^^^^^^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/base.py", line 154, in fun
return self.fun_single(t, y)
~~~~~~~~~~~~~~~^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/scipy/integrate/_ivp/base.py", line 23, in fun_wrapped
return np.asarray(fun(t, y), dtype=dtype)
~~~^^^^^^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/bioptim/interfaces/solve_ivp_interface.py", line 91, in
lambda t, x: np.array(
~~~~~~~~^
list_of_dynamics[node](
^^^^^^^^^^^^^^^^^^^^^^^
t, x, _control_function(control_type, t, t_span, u[node]), p, a[node], d[node]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
)[:, 0],
^
File "/opt/miniconda3/envs/bioptim_custom/lib/python3.13/site-packages/casadi/casadi.py", line 11187, in array
return self.array_custom(*args,**kwargs)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
SystemError: <function DM.array_custom at 0x7fd2de958ea0> returned a result with an exception set

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions