-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
create an example of single shooting - parametric optim #751
Labels
enhancement
New feature or request
Comments
I was thinking about this problem and the coming refactor on PhaseParameters @pariterre. With a discussion we have, it would be relevant to have:
And VariableContainer outputs may be extended to be expressed as a function of PhaseParameters, to get parametric time series. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
idea: Implement single shooting parametric approach of Yeadon as an example that use no control and
nshooting = 1
integrator RK4 with several steps
control = none
params = transition time and value for quintic splines (idem with quartic spline of Bessonnet.)
e.g. 3 phases for 1 DoF
params = [t1, t2, t3, Q1, Q2, Q3]
warning: in case of yeadon's quintic function qdot=0 at start and end
params of quintic function give the kinematic q, qdot and qddot of joints.
root integrated according to free-fall acceleration driven equations:
where$M(\q)$ is the mass matrix, $N(\q,\qdot)$ is the nonlinear effects vector and gravity effects, and $\btau_J$ are the joint torques.$\states=[\q_B ; \q_J ; \qdot_B ; \qdot_J]^\top$ and controls are $\controls=\btau_J$ .
With this equation, states are
The reduced equation of motion, namely FFBD is:
with$\states=[\q_B ; \q_J ; \qdot_B ; \qdot_J]^\top$ and controls $\controls=\qddot_J$ .
Find a way to avoid if loop to generate the kinematics: trajectory is the sum of n quintic functions but all but one are zeros according to t.
T = [0] + param[:nb_phases]
for in range(nb_phases):
add = t > T[i] && t < T[i+1]
...
qd[joint] += add* (Qi + tp3 * tp2)
#quintic polynomial of Yeadon.
def trajectory(t):
The text was updated successfully, but these errors were encountered: