ZMP constraints in MPC during stair climbing #12
Replies: 2 comments
-
Regarding the definition of the ZMP: the set of zero-tilting moment points (ZMPs) of a wrench is actually an axis. For practical purposes we can intersect it with a plane, but note that other parameterizations of this axis such as the eCMP or VRP do not make such intersection. When walking on flat floor, taking this plane as the floor plane has practical advantages (for instance, the ZMP support area then becomes the convex hull of ground contact points, although this construction is not valid in general). In the general case, we can always take the ZMP in any plane and construct its support area by polyhedral projection. |
Beta Was this translation helpful? Give feedback.
-
Regarding the ZMP inequality constraints used in the MPC: the model predictive control QP that this controller uses for walking pattern generation follows the formulation from Pierre-Brice Wieber's group, see e.g. this paper. One important point in this formulation is that ZMP constraints are only added with single support phase (SSP) contact areas (see this comment in the construction of the mapping
Also, the output ZMP trajectory is continuous and roughly piecewise linear. In the version from the University of Rome, which parameterizes trajectories in ZMP velocity rather than CoM jerk, it is exactly piecewise linear. Next, by convexity of the support area, a necessary and sufficient condition to ensure that the ZMP lies inside the area during DSP is that (1) it lies in the previous SSP area at the beginning of DSP and (2) it lies in the next SSP area at the end of DSP. Then, at MPC timesteps, you end up only checking SSP areas. This controller uses this simplification as of 2a1220d. It explains why there is no difference between horizontal walking and stair climbing in this MPC: as long as foot contacts are horizontal, they need not be coplanar and we don't have to decide in which plane to consider the ZMP during DSP. On a side note, if foot contacts are not horizontal, we can rectify them using the analytical projection of their contact wrench cone described in Section IV of this paper. I didn't implement this in this controller since non-horizontal foot contacts were not part of our use case. |
Beta Was this translation helpful? Give feedback.
-
Moving @Saeed-Mansouri's second question from #9 to this separate issue:
There are actually two questions:
Beta Was this translation helpful? Give feedback.
All reactions