Multi-contact Walking Pattern Generation based on Model Preview Control of 3D COM Accelerations

Stéphane Caron and Abderrahmane Kheddar. Humanoids 2016, Cancún, Mexico, November 2016.

Abstract

We present a multi-contact walking pattern generator based on preview-control of the 3D acceleration of the center of mass (COM). A key point in the design of our algorithm is the calculation of contact-stability constraints. Thanks to a mathematical observation on the algebraic nature of the frictional wrench cone, we show that the 3D volume of feasible COM accelerations is a always an upward-pointing cone. We reduce its computation to a convex hull of (dual) 2D points, for which optimal O(nlogn)\def\bfA{\boldsymbol{A}} \def\bfB{\boldsymbol{B}} \def\bfC{\boldsymbol{C}} \def\bfD{\boldsymbol{D}} \def\bfE{\boldsymbol{E}} \def\bfF{\boldsymbol{F}} \def\bfG{\boldsymbol{G}} \def\bfH{\boldsymbol{H}} \def\bfI{\boldsymbol{I}} \def\bfJ{\boldsymbol{J}} \def\bfK{\boldsymbol{K}} \def\bfL{\boldsymbol{L}} \def\bfM{\boldsymbol{M}} \def\bfN{\boldsymbol{N}} \def\bfO{\boldsymbol{O}} \def\bfP{\boldsymbol{P}} \def\bfQ{\boldsymbol{Q}} \def\bfR{\boldsymbol{R}} \def\bfS{\boldsymbol{S}} \def\bfT{\boldsymbol{T}} \def\bfU{\boldsymbol{U}} \def\bfV{\boldsymbol{V}} \def\bfW{\boldsymbol{W}} \def\bfX{\boldsymbol{X}} \def\bfY{\boldsymbol{Y}} \def\bfZ{\boldsymbol{Z}} \def\bfalpha{\boldsymbol{\alpha}} \def\bfa{\boldsymbol{a}} \def\bfbeta{\boldsymbol{\beta}} \def\bfb{\boldsymbol{b}} \def\bfcd{\dot{\bfc}} \def\bfchi{\boldsymbol{\chi}} \def\bfc{\boldsymbol{c}} \def\bfd{\boldsymbol{d}} \def\bfe{\boldsymbol{e}} \def\bff{\boldsymbol{f}} \def\bfgamma{\boldsymbol{\gamma}} \def\bfg{\boldsymbol{g}} \def\bfh{\boldsymbol{h}} \def\bfi{\boldsymbol{i}} \def\bfj{\boldsymbol{j}} \def\bfk{\boldsymbol{k}} \def\bflambda{\boldsymbol{\lambda}} \def\bfl{\boldsymbol{l}} \def\bfm{\boldsymbol{m}} \def\bfn{\boldsymbol{n}} \def\bfomega{\boldsymbol{\omega}} \def\bfone{\boldsymbol{1}} \def\bfo{\boldsymbol{o}} \def\bfpdd{\ddot{\bfp}} \def\bfpd{\dot{\bfp}} \def\bfphi{\boldsymbol{\phi}} \def\bfp{\boldsymbol{p}} \def\bfq{\boldsymbol{q}} \def\bfr{\boldsymbol{r}} \def\bfsigma{\boldsymbol{\sigma}} \def\bfs{\boldsymbol{s}} \def\bftau{\boldsymbol{\tau}} \def\bftheta{\boldsymbol{\theta}} \def\bft{\boldsymbol{t}} \def\bfu{\boldsymbol{u}} \def\bfv{\boldsymbol{v}} \def\bfw{\boldsymbol{w}} \def\bfxi{\boldsymbol{\xi}} \def\bfx{\boldsymbol{x}} \def\bfy{\boldsymbol{y}} \def\bfzero{\boldsymbol{0}} \def\bfz{\boldsymbol{z}} \def\defeq{\stackrel{\mathrm{def}}{=}} \def\p{\boldsymbol{p}} \def\qdd{\ddot{\bfq}} \def\qd{\dot{\bfq}} \def\q{\boldsymbol{q}} \def\xd{\dot{x}} \def\yd{\dot{y}} \def\zd{\dot{z}} \mathcal{O}(n \log n) algorithms are readily available. This reformulation brings a significant speedup compared to previous methods, which allows us to compute time-varying contact-stability criteria fast enough for the control loop. Next, we propose a conservative trajectory-wide contact-stability criterion, which can be derived from COM-acceleration volumes at marginal cost and directly applied in a model-predictive controller. We finally implement this pipeline and exemplify it with the HRP-4 humanoid model in multi-contact dynamically walking scenarios.

Video

BibTeX

@inproceedings{caron2016humanoids,
  title = {Multi-contact Walking Pattern Generation based on Model Preview Control of 3D COM Accelerations},
  author = {Caron, St{\'e}phane and Kheddar, Abderrahmane},
  booktitle = {IEEE-RAS International Conference on Humanoid Robots},
  year = {2016},
  month = nov,
  url = {https://hal.archives-ouvertes.fr/hal-01349880},
  doi = {10.1109/HUMANOIDS.2016.7803329},
}

Discussion

You can subscribe to this  Discussion's atom feed to stay tuned.

  • Avatar

    Attendee #1

    Posted on

    In the abstract, you mention a "significant speedup compared to previous methods". How much is that exactly? Is it quantified in the paper?

    • Avatar

      Stéphane

      Posted on

      The main benefit and the real novelty of the algorithms introduced in Section IV (for the ZMP support area and COM acceleration volume) is that they only recompute the time-varying part of these stability criteria. This is e.g. quantified by the computation times in Table III: even using state-of-the-art algorithms, computing the whole criterion from scratch takes 10 times longer than computing only its time-varying part.

  • Avatar

    Attendee #2

    Posted on

    What are are the values of the friction coefficient and contact dimensions used in the elliptic staircase? Can you share the footstep plan?

    • Avatar

      Stéphane

      Posted on

      The friction coefficient is 0.8 while foot sole shapes are 24-cm long and 12-cm wide. Below is the footstep plan in the JSON format. Positions are given in meters with respect to the origin of the world frame, while roll-pitch-yaw angles for the orientation of contact center frames are given in radians.

      [
          { "pos": [1.6790750226171589, -0.055741083799895508, 1.3800924700714658], "rpy": [0.12239102346850544, 0.18269184403942895, 1.505511337823894]},
          { "pos": [1.3999999999999999, 0.000000000000000000, 1.3999999999999999], "rpy": [-0.2307191595592952, 0.14005023026233748, 1.3671482044619634]},
          { "pos": [1.6277728684738832, 0.41563865154759849, 1.5484423755527137], "rpy": [0.066446343242238623, -0.24305457583989062, 1.788875594837358]},
          { "pos": [1.2286155866465218, 0.67119575404588416, 1.6876553231625218], "rpy": [-0.036712809132233307, -0.12345677462093492, 1.915778979941732]},
          { "pos": [1.2292372997080192, 1.1451531168392015, 1.8089832560140005], "rpy": [-0.042587683531614295, -0.24328969513029872, 2.1450327192064917]},
          { "pos": [0.75642322821539576, 1.1780593787310549, 1.9048825908847378], "rpy": [0.18468437297451706, 0.054517851723859902, 2.7247927362357194]},
          { "pos": [0.52974156882405132, 1.5942941605173848, 1.9693907716133516], "rpy": [0.16325566520966647, -0.11415833313084929, 2.739034547242118]},
          { "pos": [0.099032082334784055, 1.3964929812456761, 1.9984969919624325], "rpy": [-0.10872932003557928, -0.18084569868500741, -3.105028843435464]},
          { "pos": [-0.2994533734911467, 1.6530963907482137, 1.990391568124362], "rpy": [-0.013731696227680218, 0.028294240436180281, 3.0135841134247174]},
          { "pos": [-0.58260557116599943, 1.2730163975559541, 1.9455784560954088], "rpy": [0.22057333002838922, -0.2094046622586018, -2.503755238261681]},
          { "pos": [-1.0553316861742015, 1.3071629707717076, 1.8668439181327527], "rpy": [-0.17153278734092464, -0.027926256721656838, -2.8563359588159409]},
          { "pos": [-1.1216010617657073, 0.83786100174553912, 1.7590832864623738], "rpy": [-0.16265342064064445, 0.0073990258466376203, -2.0159402113704354]},
          { "pos": [-1.5528279961025386, 0.64119046664791723, 1.6289965952313989], "rpy": [0.21184053369618741, 0.16798927613661602, -2.2125603339992659]},
          { "pos": [-1.3859894952406235, 0.19756801128381407, 1.4846720048359203], "rpy": [0.16048195519977812, 0.21719408029568646, -1.5649830435325576]},
          { "pos": [-1.6701378558153177, -0.18176782601058195, 1.3350829192819349], "rpy": [-0.01920744890835065, -0.073655097140418041, -1.9080927676601263]},
          { "pos": [-1.3110393622071148, -0.49109651876546767, 1.189530063386228], "rpy": [0.24238826649911999, -0.1744708637280887, -1.3231829156635888]},
          { "pos": [-1.3785397203304621, -0.9602230154871374, 1.0570632087545937], "rpy": [0.099564772223722883, 0.073851368995574443, -1.3506207082990742]},
          { "pos": [-0.91510106920905665, -1.0595234934310993, 0.94591850281524303], "rpy": [0.15092426769712289, 0.0060561552918781542, -0.92305779100058349]},
          { "pos": [-0.74942698305517197, -1.5035821218240202, 0.86300638506284988], "rpy": [-0.23292011949133065, 0.033075653590972032, -0.88755220043368799]},
          { "pos": [-0.29511411920309155, -1.3685421647311358, 0.81348192940094177], "rpy": [-0.12938348938745045, -0.23325713643335089, -0.1344267623518916]},
          { "pos": [0.063171616851800602, -1.6788118854786349, 0.80042432661477314], "rpy": [0.17721401716767826, -0.15012310357885592, -0.05886273650692278]},
          { "pos": [0.39712705964851669, -1.3424939845283939, 0.82464543520211686], "rpy": [-0.21227675597448048, 0.068017193294483413, 0.45303261574222442]},
          { "pos": [0.86030360176629239, -1.4430099489566746, 0.88463930394404477], "rpy": [-0.10423923086549804, -0.012152424300626522, 0.12462320512620527]},
          { "pos": [0.99213768400776392, -0.98775645579854854, 0.97667580465776482], "rpy": [0.22648408250504215, -0.22945202428709771, 0.96331275849737019]},
          { "pos": [1.446803260831355, -0.85390885019875407, 1.0950325535004448], "rpy": [0.16970108320577498, 0.23062004119559906, 0.58312268507903109]},
          { "pos": [1.3442384013105122, -0.39118169747849629, 1.2323507010806445], "rpy": [0.23165496787145182, -0.19394147396643366, 1.059839358262237]}
      ]
      

Feel free to post a comment by e-mail using the form below. Your e-mail address will not be disclosed.

📝 You can use Markdown with $\LaTeX$ formulas in your comment.

By clicking the button below, you agree to the publication of your comment on this page.

Opens your e-mail client.