The second optimization using ACADOS does not behave the same as the first because ACADOS automatically changes X0. It was decided to hamonize with IPOPT which does not change X0
Solved in https://github.com/pyomeca/bioptim/pull/214 thanks to update_an_init_solver(). Since x_init and u_init are mandatory at the construction of OCP, I think the default behavior is correct now.
The second optimization using ACADOS does not behave the same as the first because ACADOS automatically changes X0. It was decided to hamonize with IPOPT which does not change X0