ethz-adrl / towr

A light-weight, Eigen-based C++ library for trajectory optimization for legged robots.
http://wiki.ros.org/towr
BSD 3-Clause "New" or "Revised" License
932 stars 233 forks source link

How to calculate optimised phase durations dT_{i,j} ? #60

Closed neerajpal closed 5 years ago

neerajpal commented 5 years ago

In the paper "Gait and Trajectory Optimization for Legged Systems Through Phase-Based End-Effector Parameterization", you have written that

The duration of each phase, and with that the duration of each foot's polynomial, is changed based on the optimized phase durations ΔTi,j∈R.

NLP formulations don’t naturally allow constraints to simply be turned on or off arbitrarily during the iterations. This is why the sequence and durations of contacts are often specified in advance .

So, how are you using the optimised phase durations in the simulation? Are you randomly initialising it?

The p_{i,j} was supposed to be function of ΔTi,j.

What could be the algorithm to calculate optimised phase duration?

awinkler commented 5 years ago

Yes, the phase durations are initialized arbitrarily, usually with some defined gait. These durations, however, are optimization variables inside the NLP, so IPOPT is constantly changing those values in each iteration, which in turn affects the shape of the endeffector polynomials x(t). The image below might make this clearer, where deltaT are those duration variables (additionally, the node position and velocity are optimized as well and also affect the shape).

43319248-462b20b2-91a4-11e8-8832-a681cd8935af

neerajpal commented 5 years ago

Thank you very much for your reply. I understood it.