The purpose of this repo is to present all the work I've done on optima control backbend simulations during my 6-month internship at the S2M laboratory of the Université de Montréal . In particular, we worked on the robustness of the movement and on the implementation of a closed loop of the kinematic chain during the tucked phase of a back somersault.
Create model 2D from 3D model with the file GeneratePlanarModel.py
in the folder (code_salto.py
)
All jump and salto simulations can be found in the folder: (code_salto.py
)
In first, I create codes to generate simple jump in two (Salto_2phases.py
) and
three phases(Salto_3phases.py
) in order to learn how to use bioptim.
The second step was to add a backward somersault during the flight phase, when the model attain the maximal height of
his centre of mass (CoM). I begin by implement a backward somersault in a 3 phases movement (Salto_3phases.py
)
and gradually I increase the number of phases until reach 7 phases(Salto_7phases.py
).
We also tried to simulate a backward salto with actuator dynamics (Salto_actuator.py
).
After this, we want a code who produce two different techniques of backward somersault (Dedoublement_phase.py
):
one in 6 phases and an other with a waiting phase (i.e. phase 2) between the propulsion phase and the take-of phase.
These two methods have the same results for the preparation of propulsion and the propulsion phase.
We also tried to simulate a backward salto with a closed-loop during the tucked phase,
all these simulations can be found in the folder: (holonomic_research
).
Several salto with and without floating base and with a certain number of phases were simulated up to 6 phases
(`Salto_6phases_CL.py).
However, the 6-phase salto is not yet complete, as the landing is too rigid.
We list all the results of the simulation of jump and salto (simple, actuator, robustness and closed-loop) into a Google Sheets.
The different model use are in the folder "Model".
The name of the model is defines like this: "Model2D_8Dof_2C_3M"
according to the type of the model (i.e. 2D or 3D), the number of degree of freedom (i.e. Dof)
the number of contact (i.e. C) and the number of markers (i.e. M).
To save data, we use a function save_results_with_pickle, from the Save file, who use pickle to save all parameters (states, states dot, controls, cost, objectives, contraints). There are different codes for saving data depending on the nature of the salto (with or without a closed-loop during the grouping phase) because the variables (i.e. q and qdot) do not have the same name with a closed-loop (i.e. q_u and qdot_u).
To visualize data, we use the file Visualisation. There are different codes to visualize the simulation according to the nature of the movement (i.e. with or without closed-loop) and according to the number of phases (from 1 to 6).