InterpolationType.CONSTANT, ) muscle_states_init = InitialConditions( [muscle_activated_init] * ocp.nlp[0]["model"].nbMuscles() + [muscle_fatigued_init] * ocp.nlp[0]["model"].nbMuscles() + [muscle_resting_init] * ocp.nlp[0]["model"].nbMuscles(), InterpolationType.CONSTANT, ) X.concatenate(muscle_states_init) # --- Simulate --- # sol_simulate = Simulate.from_controls_and_initial_states(ocp, X, U, single_shoot=True) # --- Save for biorbdviz --- # OptimalControlProgram.save_get_data(ocp, sol_simulate, f"results/simulate.bob", interpolate_nb_frames=100) # --- Graph --- # result_single = ShowResult(ocp, sol_simulate) result_single.graphs() # todo multiphase print("ok") # result_single.animate()
# --- Solve the program --- # tic = time.time() sol, sol_iterations = ocp.solve( show_online_optim=True, return_iterations=True, solver_options={ "tol": 1e-4, "max_iter": 3000, "ipopt.hessian_approximation": "limited-memory" }, ) toc = time.time() - tic print(f"Time to solve : {toc}sec") t = time.localtime(time.time()) date = f"{t.tm_year}_{t.tm_mon}_{t.tm_mday}" OptimalControlProgram.save(ocp, sol, f"results/{date}_xiaModel.bo") OptimalControlProgram.save_get_data(ocp, sol, f"results/{date}_xiaModel.bob", sol_iterations=sol_iterations) OptimalControlProgram.save_get_data( ocp, sol, f"results/{date}_xiaModel_interpolate.bob", interpolate_nb_frames=100) # --- Show results --- # result = ShowResult(ocp, sol) result.graphs()