arXiv is now an independent nonprofit! Learn more
License: arXiv.org perpetual non-exclusive license
arXiv:2006.01987v1 [cs.RO] 03 Jun 2020

Impact-Aware Task-Space Quadratic-Programming Control

Yuquan Wang    Niels Dehio    Arnaud Tanguy    and Abderrahmane Kheddar Email: wyqsnddd@gmail.com
Abstract

Generating on-purpose impacts with rigid robots is challenging as they may lead to severe hardware failures due to abrupt changes in the velocities and torques. Without dedicated hardware and controllers, robots typically operate at a near-zero velocity in the vicinity of contacts. We assume knowing how much of impact the hardware can absorb and focus solely on the controller aspects. Hybrid controllers with reset maps provided elegant solutions for given impact tasks. The novelty of our approach is twofold: (i) it uses the task-space inverse dynamics formalism that we extend by seamlessly integrating impact tasks; (ii) it does not require separate models with switches or a reset map to operate the robot undergoing impact tasks. Our main idea lies in integrating post-impact states prediction and impact-aware inequality constraints as part of our existing general-purpose whole-body controller. To achieve such prediction, we formulate task-space impacts and its spreading along the kinematic –and potentially arborescent, structure of a floating-base robot with subsequent joint velocity and torque jumps. As a result, the feasible solution set accounts for various constraints due to expected impacts. In a multi-contact situation of under-actuated legged robots subject to multiple impacts, we also enforce the dynamic equilibrium margins. By design, our controller does not require precise knowledge of impact location and timing. We assessed our formalism with the humanoid robot HRP-4, generating maximum contact velocities, neither breaking established contacts nor damaging the hardware.

keywords
Task-space control, quadratic optimization control, humanoids, impact tasks.
runninghead: Impact-Aware Task-Space Quadratic-Programming Controlaffiliation: Y. Wang, N. Dehio and A. Kheddar are with the CNRS-University of Montpellier, LIRMM, Interactive Digital Humans group, Montpellier, France.
A. Tanguy and A. Kheddar are with the CNRS-AIST Joint Robotics Laboratory, IRL, Tsukuba, Japan.
Y. Wang and A. Kheddar are in part with the Beijing Institute of Technology, Beijing, China.
corresponding: Yuquan Wang

1 Introduction

In robotics, instantaneous impacts occur when robots make contact – intentionally or accidentally – at relatively high velocities (cf. Fig. 1). Impacts may cause high impulsive forces and velocity jumps at the contacting surfaces. Impact energy and jumps propagate through the robot’s links in the joints, which might cause severe mechanical damage. Abrupt changes in velocity or torque mean discontinuities that may destabilize closed-loop controllers. Floating-base robots can also witness sudden breaks of pre-existing unilateral contacts resulting in a sudden loss of balance.

When possible, a simple solution is to plan and control new contacts carefully with near-zero contact admissible velocities. Otherwise, new contacts are made with relatively high velocities, e.g., walking or jumping humanoids. In this case, the robot continuous dynamic equations of motions are not a good match for the induced physics, and another set of equations must be considered together with a transition policy (called reset maps), see a review in Sec. 2. Such a transition policy requires knowledge of additional parameters that depend on the environment (and robot) stiffness, the impact model, the impact localization on the robot (and the environment), the contact normal, the exact impact time, and even more. Acquiring in-situ, instantaneously, and reliably these parameters are not always possible in practice.

Figure 1: In this schematic sketch, a humanoid robot is impacting a wooden piece as we can commonly find in karate. In stance (a), there are m1=2{m_{1}}=2 established contacts (red), m2=0{m_{2}}=0 impacting end-effectors (green), and m3=2{m_{3}}=2 free limbs (yellow). Stance (b) is represented by m1=2{m_{1}}=2, m2=1{m_{2}}=1, m3=1{m_{3}}=1 and stance (c) by m1=3{m_{1}}=3, m2=0{m_{2}}=0, m3=1{m_{3}}=1.

In fact, a large part of handling properly robotic impacts must be tackled first from a hardware design perspective, see the introductory part of Sec. 2. It is the hardware design that reveals how much impact the robot can achieve without failures. Once we know the hardware capabilities in terms of impact resilience, we can consider impact-aware motion planning and control. For classical robot controllers, the impact duration is too small to react within the impact events (51\!-\!5 ms), see details in Sec. 2. Yet, we can apply a low-level controller design to regulate the pre-impact velocity safely.

In this paper, we address general-purpose impact-aware tasks, including floating-base robots. Instead of explicitly designing a dedicated controller to handle task-aware impacts, we integrate impact and continuous dynamic models as well as constraints consistently as part of our whole-body multi-objective controller that relies on quadratic program (QP) solving (Bouyarmane et al. 2019).

The core idea is to perform a one-step-ahead prediction in every control cycle based on the impact model. That is to say, nearby intended or expected impact, we assume that it will happen in the next iteration. As a result, the controller becomes aware of impact-induced jumps and restricts the robot motion to meet impact with (possibly maximum) velocities that can handle the upcoming impact safely, i.e., within the pre-defined hardware resilience and task-dictated acceptable bounds. By our approach, the resulting robot motion is robust to uncertainties in impact time and location. This feature is the main novelty and the most appealing aspect of our approach w.r.t. State-of-the-art.

In more details, our main contributions are:

  1. C.1

    We formulate the problem of impact propagation as an auxiliary Impulse Distribution Quadratic Program (IDQP) to estimate the impulses associated with kinematic branches and their effects on links of interest that are free or that are in unilateral-contacts (Sec. 4.4).

  2. C.2

    Building upon the predicted impact effect, we gather all the state jumps (Sec. 4.5) that floating-base multi-limb robots may experience concerning the velocity space, force and torque space, and the centroidal space states.

  3. C.3

    Approximating post-impact states using Euler-forward method, we propose a generic template constraint to bound the post-impact state of a generic quantity (Sec. 5.1).

  4. C.4

    Our framework can also deal with multiple impacts simultaneously. Integrating impact constraints into the QP controller enables multi-impact-aware multi-contact whole-body motion generation (Sec. 5.5), which is validated through experiments on our humanoid robot HRP-4 (Sec. 6).

To sum-up, our novel approach ensures the feasibility of the underlying task-space quadratic programming controller, accounting for hardware safety and feedback state abrupt jumps. It allows a built-in seamless interplay between continuous and impact dynamics without branching and reset-maps. It is an alternative (and not necessarily a replacement or a competitor) to existing well-established hybrid and or reset map approaches.

2 Background

Analyses in Tsujita et al. 2008; Pashah et al. 2008 revealed that impact duration is typical of the range of milliseconds order or less, even for low-velocities. Suppose that the impact effects are given, it is non-trivial to devise a controller that prevents hardware from being somehow hindered within such a short period. Thus various hardware solutions have been proposed to mitigate the impulse. As it is not our primary concern, we report only a few in Sec. 2.1.

In specific scenarios, impacts have to be accounted for in the control design. Nevertheless, it is rather more a part of the task to achieve than something that we would like to control directly (Sec. 2.2). For example, biped walking induces impacts because of the nature of the walking task, and it is essential to control the gaits with dynamic balance. Instead, kicking a ball is rather a task for which we would like to control the impacts of the feet with the ball.

On the other hand, our proposed approach exploits on-purpose impacts to increase robot manipulation efficiency (e.g., kicking the ball) and generates a broad spectrum of impulsive forces directly related to task performance. We summarize controllers of this kind in Sec. 2.3.

2.1 Mitigating impact through hardware improvements

Hardware resilience to impact shall inform on how much impact a robot can perform without breaking links, joint mechanisms and embedded electronics. For example, employing variable stiffness actuator (VSA) technologies lowers damage risks at impacts. However, it may need more than 1010 ms to generate the joint torque that can counterbalance the torque jump (Haddadin et al. 2009). Despite numerous VSA paradigms that have been proposed – refer to the excellent review by Vanderborght et al. 2013 – their force control capabilities suffer from limited bandwidth as pointed by Wensing et al. 2017.

Aiming to reduce the initial and post-impact forces, the proprioceptive actuator devised for the MIT Cheetah robot’s leg provides a mechanical approach to mitigate impacts without added compliance (Wensing et al. 2017). More recently, Singh and Featherstone 2020 proposed a novel quadruped robot leg design that removes the shock propagation from the floating-base. Another strategy absorbs the impacts at foot-strike through passive springs in the ankle (Reher et al. 2016). Designing robust hardware specifically for impact tasks is appealing, and notable progress has been made.

However, the question remains on how to deal with impacts with existing robots. An outer softcover approach was described in Battaglia et al. 2009, where the thickness of the cover is computed as a function of latency and impact velocity. Generally, shock-absorbing mechanisms or soft soles are added to the ankle/feet of humanoids. There is certainly more to do and investigate in order to increase the resilience of robots to impacts. Nevertheless, it should be noted that for almost all the existing robots, gathering from their manufacturer parameters concerning tolerable impact bounds is already informative of the current facts. To our requests, we always had the same pair of answers: Why do you need this? And, after our explanations… You are not supposed to do that with our robots! The exception is the Franka Emika Panda robot, for which such data are available upon request.

2.2 Handling task-induced impacts

Impacts are sometimes rather seen as perturbations. For example, Pagilla and Yu 2001 consider impact as a transient behavior and uses it for stability analysis rather than for explicit control design. Yet, Stewart 2000 reviewed that locomotion tasks have treated the impulse effects for two decades. The complementarity dynamical system (CDS) proposed by Hurmuzlu et al. 2004 offers a general conceptual tool to describe the dynamics of a walking robot, e.g., a biped with one or two contacts. Interested readers find a summary of the CDS controllability and stabilizability for mechanical applications in Brogliato 2003. Impact-induced state jumps, which are embedded in a reset map, are applied to the robot states depending on the complementarity condition status. However, Grizzle et al. 2014 pointed out that there is no effective control design for CDS.

Although hybrid control is a powerful modeling and control tool for non-smooth mechanical systems in general, e.g., for robots undergoing intermittent impacts (Johnson et al. 2016), it scales poorly concerning the number of potential contacts, refer to improvements by Posa et al. 2015. For instance, in the case of biped robots, there are two single support modes, double supports mode, and the transition phases. If the model is not complete enough, Zeno phenomena might occur and lead to infinite accumulations of impacts in a finite time (Or and Ames 2010). Nevertheless, hybrid approaches achieved successful applications in practice, e.g., efficient bipedal walking by Sreenath et al. 2011, walking over uneven terrain Manchester et al. 2011, dynamic bipedal vertical climbing in simulation by Aghasadeghi et al. 2012, and dynamic bipedal walking by Reher et al. 2016.

Rather than dealing with periodic impacts or cyclic behaviors, in this paper, we are interested in the local feasibility properties before and right after a single impact event. Hence, modeling using the Poincaré map (Grizzle et al. 2014), and the controllers developed on top of it do not apply straightforwardly to our aim. Comparing our approach with the impact dynamics model applied for walking (Hurmuzlu et al. 2004; Grizzle et al. 2014) or hybrid control approaches by Rijnen et al. 2017 is pointless. This is because we target general-purpose tasks implying any limb of the robot. Contrarily to walking only, we do not assume that the holonomic constraints, e.g., the position and orientation of a contacting limb, remain constant before and after the impact. Furthermore, we estimate the end-effector velocity jump for free limbs and for established unilateral contacts (C.2).

Another difference comes from the number of impacts and contacts. Switching from a single support phase to a double support phase merely induce a single impact concerning the other support (established contact). Grizzle et al. 2014 pointed out that conservation of generalized momentum (in the joint space) for a single kinematic branch is used in one form or another for most of the walking-related works. Instead of solving joint velocity jumps on a limb-by-limb basis, we solve the state jumps that are compatible with each limb due to the whole body momentum conservation and balance (C.1 and C.2).

Alternatively, some control strategies simply avoid impacts when contacts are about to be created. Given the impact location, Pagilla and Yu 2001 modified the reference trajectories such that the reference velocity along the surface normal is zero. The control design based on Zero-tilting Moment Point (ZMP) ignores the impact dynamics and establishes contacts with close to zero velocity – checkout the example by Kajita et al. 2010. Grizzle et al. 2014 summarized that the impact-less reference trajectories are challenging to generate and inefficient to execute: we totally agree. Adding impact-awareness to the QP control framework (C.4), our proposed approach autonomously executes the reference motion with a possibly reduced, if it violates the hardware limits or other user-defined constraints (C.3), yet maximum safe contact velocity.

2.3 Handling on-purpose impact tasks

Commonly flexible models with regularization are used e.g. the mass-spring-damper (Hu et al. 2007; Stanisic and Fernández 2012; Heck et al. 2016) to enable well-established control tools for continuous-time dynamics. Recently, for dealing with general-purpose impact behaviors, Rijnen et al. 2017 proposed to switch once from pre- to post-impact reference based on the detection of the impact event, (referred to as reference spreading). Konno et al. 2011 solved a three-phase non-linear optimization problem to generate reference trajectories as well as the posture at the impact moment to maximize the force jump. These methods require off-line reference trajectory planning and switching, which compromises reactiveness. It further conflicts with the concept of a desirable general-purpose multi-objective controller that is based on real-time sensory feedback.

The reference switching is performed upon the impact detection. Note, that the observation is always delayed and may be inaccurate. Thus, in general, due to the unknown exact impact timing (Pagilla and Yu 2001), switching controllers would apply setpoints or references, that are defined for the pre-impact mode, during the post-impact mode for a specific time interval, no matter how small it is. The resulting undesired misbehavior imposes the risk of exceeding hardware limitations.

Our approach is rather conservative in that, nearby impact, the controller starts assuming the impact to happen in the next time step. Our proposed impact-aware QP controller (C.4) provides the mapping between the impact-induced state jumps and the pre-impact velocities in each iteration (C.2). The mapping enables the QP controller to regulate the robot motion in real-time such that the impact-aware constraints are respected (C.3). We can find a similar mapping provided by Partridge and Spong 2000 to control the trajectory of a three-link planar robot. The proposed QP controller is free of off-line trajectory computation and, therefore, robust to impact timing and location. The prediction of post-impact states that we propose (C.2) is based on the impact dynamics model along with the contact normal direction by Zheng and Hemami 1985 without considering tangential impulse and impact-induced friction.

A similar impact dynamics model is introduced by Hurmuzlu et al. 2004 to address the bipedal walking as summarized in Grizzle et al. 2014; Wieber et al. 2016. In the field of space robotics, Nenchev 2013 applied joint space momentum conservation to study the post-impact robot motion behavior. In this paper, we do not have the zero gravitational force assumption, and we utilize the centroidal momentum conservation (Orin et al. 2013).

Nava et al. 2016 pointed out that the state-of-the-art momentum controller may lead to unstable zero dynamics. Nenchev 2018 recently proposed a decoupled controller based on the relative momentum. Instead of applying the – not yet – fully exploited momentum-based control strategies, we prefer to limit the impact-induced centroidal momentum jumps (C.3).

Even though force jumps are typical for legged robots (Bergés and Bowling 2005), it is not straightforward to include an analytical solution of the tangential impulses. Recently, Jia et al. 2019 developed a flying object batting example, where a closed-form 2D impact dynamics model is applied. It generates the desired impulse by enumerating five possibilities. In the 3D cases, the closed-form solution is only available if we can control the initial sliding direction to an invariant subset, for more details, refer to (Jia and Wang 2017). Note that according to the energy conservation principle, it is not possible to treat impact dynamics along with the two tangential directions and normal direction separately. One caveat of this approach is the mathematical and computational complexity of the model.

Control formulations based on a quadratic program (QP) with linear constraints have become the predominant scheme for operating legged robots, (Kuindersma et al. 2016; Liu et al. 2016; Bouyarmane and Kheddar 2018) to name just a few. The approach allows pursuing multiple prioritized objectives simultaneously while satisfying strict bounds. It has been applied both to position- and torque-controlled robots, usually employing 51\!-\!5 ms update loops. We adopt and further build on our initial concept proposed in simulation for fixed-base robots in Wang and Kheddar 2019 and the preliminary extension to the floating-base robot in Wang et al. 2019. Concerning these and previously cited contributions, this article provides (i) a detailed discussion on multi-impact cases and different least-squares solutions that were not covered before; (ii) additional constraints (C.2), e.g., angular momentum, framed as a generic impact-aware template (C.3); (iii) improving the impact effect estimation (C.1) by adding the centroidal momentum conservation constraint and minimizing a weighted minimum norm solution.

The Zero-tilting Moment Point (ZMP) is widely used as a balance criterion for biped walking on the planar ground, for example, refer to (Hildebrandt et al. 2019). Recently, the concept has been extended to the multi-contact case through excellent analysis in Caron et al. 2017. For tasks that require large impulsive forces, e.g., a nailing task discussed in Tsujita et al. 2008 and a wooden piece breaking task performed in Konno et al. 2011, ZMP is used to analyze the dynamic equilibrium of each robot configuration instance. Introducing impact-aware constraints (C.3) to bound the impact-induced state jumps (C.2) including ZMP, Center-of-Mass (COM) velocity, Divergent Component of Motion (abbreviated as DCM by Koolen et al. 2012) and the centroidal momentum, our proposed method allows more reliable and robust motion generation.

To our best knowledge, intentionally generating high impacts with humanoids is studied only in very few works and for specific scenarios, e.g., Konno et al. 2011. Despite impressive results achieved with non-linear optimization for planning, their controller neither accounts for uncertainties in most impact parameters nor explicitly accounts for constraints in the closed-loop motion. We aim to extend state-of-the-art task-space multi-objective and multi-sensory whole-body control framework formulated as a quadratic program (QP) to encompass impact tasks (C.4).

3 Impact-unaware Constraint-based QP-Control

The robot task-space QP control – that we extend to impact-awareness in this paper – is detailed in Bouyarmane et al. 2019, including floating-base robots. In this section, we recall the formulation of the main constraints used in continuous dynamics with our notations. All variables are referring to the current time step, during which the QP decision (i.e., control) variables are computed. These variables are the robot state (including the floating-base) acceleration, contact forces, and motor torques. The latter can eventually be eliminated from QP using their bounds.

We introduce the kinematics and dynamics in Sec. 3.1; the joint space, contact space, and centroidal space constraints in Secs. 3.23.3, and 3.4, respectively. We summarize the QP controller without considering the impacts in Sec. 3.5, and we point out its impact-related problems in Sec. 3.6.

3.1 Robot model

Model-based whole-body control requires to express multiple prioritized task objectives and constraints in the operational or the joint space (Dehio 2018; Lober et al. 2019; Dietrich and Ott 2020). The approach uses robot kinematic and dynamic models, see examples in Kuindersma et al. 2016; Nenchev 2013; Liu et al. 2016.

Consider an arborescent kinematic structure with m=m1+m2+m3m={m_{1}}+{m_{2}}+{m_{3}} independent end-effectors that we separate into three categories:

  1. 1.

    m1{m_{1}} end-effectors with established contacts;

  2. 2.

    m2{m_{2}} end-effectors for which we expect an upcoming impact (or dynamic contact transition), and

  3. 3.

    m3{m_{3}} free limbs whose momentum jump can mitigate an external impulse propagating from other end-effectors.

We denote these three sets of end-effectors with σm1\sigma_{{m_{1}}}, σm2\sigma_{{m_{2}}}, and σm3\sigma_{{m_{3}}} respectively. Fig. 1 illustrates an exemplary impact task with varying m1{m_{1}}, m2{m_{2}}, m3{m_{3}} over time.

For legged robots, we can represent the floating-base, which holds a configuration in SE(3)SE{(3)}, by six virtual joints. Thus the generalized joint position writes 𝒒(n+6)\boldsymbol{q}\in\mathbb{R}^{(n+6)}. We choose the base link velocity expressed in the inertial frame 𝑽b6\boldsymbol{V}_{b}\in\mathbb{R}^{6} to construct the generalized velocities as:

𝒒˙:=[𝑽b,𝜽˙].\dot{\boldsymbol{q}}\vcentcolon=[\boldsymbol{V}_{b}^{\top},\dot{\boldsymbol{\theta}}^{\top}]^{\top}.

A floating-base robot with m1{m_{1}} established contacts is governed with the following equation of motion:

𝐌(𝒒)𝒒¨+𝐍(𝒒,𝒒˙)=B𝝉+iσm1Ji𝒇i\mathbf{M}(\boldsymbol{q})\ddot{\boldsymbol{q}}+\mathbf{N}(\boldsymbol{q},\dot{\boldsymbol{q}})=B\boldsymbol{\tau}+\sum_{i\in\sigma_{{m_{1}}}}J^{\top}_{i}\boldsymbol{f}_{i} (1)

where B(n+6)×nB\in\mathbb{R}^{(n+6)\times n} selects actuated joints, 𝐌(𝒒)(n+6)×(n+6)\mathbf{M}(\boldsymbol{q})\in\mathbb{R}^{(n+6)\times(n+6)} denotes the inertia matrix, the vector 𝐍(𝒒,𝒒˙)(n+6)\mathbf{N}(\boldsymbol{q},\dot{\boldsymbol{q}})\in\mathbb{R}^{(n+6)} gathers both the Coriolis 𝐂(𝒒,𝒒˙)(n+6)×(n+6)\mathbf{C}(\boldsymbol{q},\dot{\boldsymbol{q}})\in\mathbb{R}^{(n+6)\times(n+6)} and the gravitational forces, vector 𝝉n\boldsymbol{\tau}\in\mathbb{R}^{n} corresponds to the actuated joint torques. As can be noted, the m2{m_{2}} end-efforts are not accounted at this stage.

3.2 Joint space constraints

Many constraints, such as joint limits, velocity limits, field-of-view, collision avoidance… to name just a few, do not express directly in the robot state acceleration. Such constraints need to be derived numerically prior to being added as a QP task objective or constraints. By approximating the derivative using Euler backward method, we predict (to some precision) the joint positions 𝐪n\mathbf{q}\in\mathbb{R}^{n} at time step kk using the decision variable 𝐪¨k{\ddot{\mathbf{q}}}_{k} and the measured joint positions and velocities at time step k1k-1:

𝐪k=𝐪¨kΔt2+𝐪˙k1Δt+𝐪k1{\mathbf{q}}_{k}={\ddot{\mathbf{q}}}_{k}\Delta t^{2}+{\dot{\mathbf{q}}}_{k-1}\Delta t+{\mathbf{q}}_{k-1} (2)

where Δt\Delta t denotes the sampling period. Similarly, we obtain the joint velocities as:

𝐪˙k=Δt𝐪¨k+𝐪˙k1.{\dot{\mathbf{q}}}_{k}=\Delta t{\ddot{\mathbf{q}}}_{k}+{\dot{\mathbf{q}}}_{k-1}. (3)

Given the joint limits 𝐪¯𝐪k𝐪¯\underaccent{\bar}{\jangles}\leq{\mathbf{q}}_{k}\leq\bar{\mathbf{q}} and the kinematic relationship (2) we obtain

[II]Δt2𝐪¨k[𝐪¯𝐪¯][II](𝐪k1+𝐪˙k1Δt).\begin{bmatrix}I\\ -I\end{bmatrix}\Delta t^{2}{\ddot{\mathbf{q}}}_{k}\leq\begin{bmatrix}\bar{\mathbf{q}}\\ -\underaccent{\bar}{\jangles}\end{bmatrix}-\begin{bmatrix}I\\ -I\end{bmatrix}\left({\mathbf{q}}_{k-1}+{\dot{\mathbf{q}}}_{k-1}\Delta t\right). (4)

For velocity bounds 𝐪¯˙𝐪˙k𝐪¯˙\mathbf{\dot{\underaccent{\bar}{\jangle}}}\leq{\dot{\mathbf{q}}}_{k}\leq\mathbf{\dot{\bar{q}}} and (3) yields

[II]Δt𝐪¨k[𝐪¯˙𝐪¯˙][II]𝐪˙k1.\begin{bmatrix}I\\ -I\end{bmatrix}\Delta t{\ddot{\mathbf{q}}}_{k}\leq\begin{bmatrix}\mathbf{\dot{\bar{q}}}\\ -\mathbf{\dot{\underaccent{\bar}{\jangle}}}\end{bmatrix}-\begin{bmatrix}I\\ -I\end{bmatrix}{\dot{\mathbf{q}}}_{k-1}. (5)

A closed-loop stable implementation of such a class of constraints is solved in Djeha et al. 2020.

Given the torque limits 𝝉¯𝝉k𝝉¯\underaccent{\bar}{\jtorques}\leq{\boldsymbol{\tau}}_{k}\leq\bar{\boldsymbol{\tau}} and the joint space dynamics (1) results in

[II]𝐌𝐪¨k[B𝝉¯B𝝉¯]+[II](J𝒇k1𝐍k1).\begin{bmatrix}I\\ -I\end{bmatrix}\mathbf{M}{\ddot{\mathbf{q}}}_{k}\leq\begin{bmatrix}B\bar{\boldsymbol{\tau}}\\ -B\underaccent{\bar}{\jtorques}\end{bmatrix}+\begin{bmatrix}I\\ -I\end{bmatrix}\left(J^{\top}{\boldsymbol{f}}_{k-1}-{\mathbf{N}}_{k-1}\right). (6)

3.3 Contact space constraints

Assuming rigid contacts, we constrain zero contact acceleration Ji𝐪¨k+J˙i𝐪˙k=𝟎J_{i}{\ddot{\mathbf{q}}}_{k}+\dot{J}_{i}{\dot{\mathbf{q}}}_{k}=\mathbf{0}. Another possible writing is by substituting (3)

Ji𝐪¨k=J˙i𝐪˙k=J˙iΔt𝐪¨kJ˙i𝐪˙k1,J_{i}{\ddot{\mathbf{q}}}_{k}=-\dot{J}_{i}{\dot{\mathbf{q}}}_{k}=-\dot{J}_{i}\Delta t{\ddot{\mathbf{q}}}_{k}-\dot{J}_{i}{\dot{\mathbf{q}}}_{k-1},

which is rearranged as

(Ji+J˙iΔt)𝐪¨k=J˙i𝐪˙k1.(J_{i}+\dot{J}_{i}\Delta t){\ddot{\mathbf{q}}}_{k}=-\dot{J}_{i}{\dot{\mathbf{q}}}_{k-1}. (7)

We require the ii-th contact wrench 𝑾i=[𝒇,𝝉]{\boldsymbol{W}_{{}_{i}}}=[\boldsymbol{f}^{\top},\boldsymbol{\tau}^{\top}]^{\top} at the origin of its local contact frame to fulfill non-sliding constraints:

𝒇t<μ𝒇nand𝒇n>0||\boldsymbol{f}_{t}||<\mu\boldsymbol{f}_{n}\;\;\text{and}\;\;\boldsymbol{f}_{n}>0

and, if needed, the center of pressure (CoP) within each contact area

𝝉tCareaand𝝉min𝝉𝝉max||\boldsymbol{\tau}_{t}||\in\text{C}_{\text{area}}\;\;\text{and}\;\;\boldsymbol{\tau}_{\min}\leq\boldsymbol{\tau}\leq\boldsymbol{\tau}_{\max}

where μ\mu denotes the friction coefficient, Carea\text{C}_{\text{area}} the planar contact area. The half-plane representation of the above inequalities write:

𝒞i𝑾i0.\mathcal{C}_{i}{\boldsymbol{W}_{{}_{i}}}\leq 0. (8)

As long as (7) and (8) hold, the contact is sustained without slipping or taking off. The details of 𝒞i\mathcal{C}_{i} are given in Caron et al. 2015 or similarly in (Grizzle et al. 2014, Sec. 3.3).

3.4 Centroidal space constraints

In the multi-contact setting, we define the Zero-tilting Moment Point (ZMP) as 𝒛2\boldsymbol{z}\in\mathbb{R}^{2}:

𝒛=𝒏×𝝉O𝒏𝒇O=𝒏^𝝉O𝒏𝒇O.\boldsymbol{z}=\frac{\boldsymbol{n}\times\boldsymbol{\tau}_{O}}{\boldsymbol{n}\cdot\boldsymbol{f}_{O}}=\frac{\widehat{\boldsymbol{n}}\boldsymbol{\tau}_{O}}{\boldsymbol{n}^{\top}\boldsymbol{f}_{O}}. (9)

The wrench 𝑾O=[𝒇O,𝝉O]\boldsymbol{W}_{O}=[\boldsymbol{f}_{O}^{\top},\boldsymbol{\tau}_{O}^{\top}]^{\top} denotes the net contact wrench measured in the inertial frame O\mathcal{F}_{O} whose origin is typically the center between the feet contacts (Caron et al. 2017). The ZMP is restricted by its feasible area 𝒛𝒮s\boldsymbol{z}\in\mathcal{S}_{s} or 𝒛𝒮𝒛\boldsymbol{z}\in\mathcal{S}_{\boldsymbol{z}}. In the simple case with coplanar contacts (for example double support stance on flat ground) the bounding polygon is defined by the support polygon 𝒮s\mathcal{S}_{s}, i.e., the convex hull of the ground contact points. Caron et al. 2017 derived a feasible multi-contact ZMP area 𝒮𝒛\mathcal{S}_{\boldsymbol{z}} for the more general case. Introducing A𝒛A_{\boldsymbol{z}} and 𝐚𝒛\mathbf{a}_{\boldsymbol{z}}, the convex half-plane representation of 𝒮𝒛\mathcal{S}_{\boldsymbol{z}} becomes:

A𝒛𝒛k𝐚𝒛.A_{\boldsymbol{z}}{\boldsymbol{z}}_{k}\leq\mathbf{a}_{\boldsymbol{z}}.

As pointed by Sugihara 2009, the ZMP is a measure of the force. Thus given the ZMP definition (9), we rearrange the above constraint with respect to the external wrench:

𝒢𝒛𝑾O𝟎.\mathcal{G}_{\boldsymbol{z}}\boldsymbol{W}_{O}\leq\mathbf{0}. (10)

Using the unit vector [0,0,1][0,0,1]^{\top} (the reverse direction of the gravity) as the surface normal 𝒏3\boldsymbol{n}\in\mathbb{R}^{3}, 𝒢𝒛\mathcal{G}_{\boldsymbol{z}} writes as: 𝒢𝒛=[𝐚𝒛𝒏A𝒛𝒏^]\mathcal{G}_{\boldsymbol{z}}=\begin{bmatrix}-\mathbf{a}_{\boldsymbol{z}}\boldsymbol{n}^{\top}&A_{\boldsymbol{z}}\widehat{\boldsymbol{n}}\end{bmatrix}.

When the robot is subject to external forces, Sugihara 2009 showed that the horizontal COM velocity 𝒄˙x,y\dot{\boldsymbol{c}}_{x,y} has to remain inside a convex 2D polygon 𝒮𝒄˙\mathcal{S}_{\dot{\boldsymbol{c}}} in order to ensure the dynamic equilibrium. This area 𝒮𝒄˙\mathcal{S}_{\dot{\boldsymbol{c}}} relates to both the feasible ZMP area 𝒮𝒛\mathcal{S}_{\boldsymbol{z}} and the COM position 𝒄x,y\boldsymbol{c}_{x,y}. The constraint 𝒄˙x,y𝒮𝒄˙\dot{\boldsymbol{c}}_{x,y}\in\mathcal{S}_{\dot{\boldsymbol{c}}} is transformed into the half-plane representation, introducing 𝒢𝒄˙x,y\mathcal{G}_{\dot{\boldsymbol{c}}_{x,y}} and 𝒉𝒄˙x,y\boldsymbol{h}_{\dot{\boldsymbol{c}}_{x,y}}:

𝒢𝒄˙x,y𝒄˙x,y𝒉𝒄˙x,y.\mathcal{G}_{\dot{\boldsymbol{c}}_{x,y}}\dot{\boldsymbol{c}}_{x,y}\leq\boldsymbol{h}_{\dot{\boldsymbol{c}}_{x,y}}. (11)

Due to the kinematic and actuation limits, the robot controller should minimize the angular momentum 𝒄3\mathcal{L}_{\boldsymbol{c}}\in\mathbb{R}^{3} (Lee and Goswami 2012; Wiedebach et al. 2016). Suppose the angular momentum is bounded by 𝒄𝒄¯¯\mathcal{L}_{\boldsymbol{c}}\leq\underaccent{\bar}{\bar{\cmmAngularMomentum}}, we take the angular part Aω𝒄(𝐪k)A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k}) from the centroidal momentum matrix A𝒄(𝐪k)A_{\boldsymbol{c}}({\mathbf{q}}_{k}) proposed by Orin et al. 2013 to formulate:

Aω𝒄(𝐪k)𝐪˙𝒄¯¯.A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k})\dot{\mathbf{q}}\leq\underaccent{\bar}{\bar{\cmmAngularMomentum}}. (12)

The Divergent Component of Motion (DCM) is widely used for gait generation, e.g. refer to the example by Englsberger et al. 2018. DCM is defined as a two-dimensional point 𝝃2\boldsymbol{\xi}\in\mathbb{R}^{2} by

𝝃=𝒄x,y+𝒄˙x,yω,\boldsymbol{\xi}=\boldsymbol{c}_{x,y}+\frac{\dot{\boldsymbol{c}}_{x,y}}{\omega}, (13)

where the scalar ω\omega is defined by gravity and the COM position along the gravity direction: ω=g𝒄z\omega=\frac{g}{\boldsymbol{c}_{z}}. The feasible DCM support area 𝒮𝝃=𝒮𝒛𝒮𝒄\mathcal{S}_{\boldsymbol{\xi}}=\mathcal{S}_{\boldsymbol{z}}\bigcap\mathcal{S}_{\boldsymbol{c}} equals the intersection of the static-equilibrium COM area 𝒮𝒄{\mathcal{S}_{\boldsymbol{c}}}, and the multi-contact ZMP support area 𝒮𝒛{\mathcal{S}_{\boldsymbol{z}}}. We calculate 𝒮𝝃\mathcal{S}_{\boldsymbol{\xi}}, 𝒮𝒄{\mathcal{S}_{\boldsymbol{c}}} and 𝒮𝒛{\mathcal{S}_{\boldsymbol{z}}} following the derivation given by Caron et al. 2017. Fig. 11 shows an example captured from a real-time computation. Again, we represent the constraint 𝝃𝒮𝝃\boldsymbol{\xi}\in\mathcal{S}_{\boldsymbol{\xi}} using half-planes where 𝒢𝝃\mathcal{G}_{\boldsymbol{\xi}} and 𝒉𝝃\boldsymbol{h}_{\boldsymbol{\xi}} are constructed based on 𝒮𝝃\mathcal{S}_{\boldsymbol{\xi}}:

𝒢𝝃𝝃𝒉𝝃.\mathcal{G}_{\boldsymbol{\xi}}\boldsymbol{\xi}\leq\boldsymbol{h}_{\boldsymbol{\xi}}. (14)

To our best knowledge, a real-time capable implementation of (11-14) has not yet been provided for QP controllers.

3.5 Impact-unaware whole-body QP controller

The whole-body controller is formulated as a quadratic program (QP) with desired task objectives and strict constraints (Bouyarmane et al. 2019). Prioritized tasks shall be met at best according to the associated cost function. Constraints shall be met strictly.

min𝝁\displaystyle\min_{\boldsymbol{\mu}} iowi𝒆i(𝝁)2\displaystyle\sum_{i\in\mathcal{I}_{o}}w_{i}\|\boldsymbol{e}_{i}(\boldsymbol{\mu})\|^{2} (15)
s.t.\displaystyle\mbox{s.t.} Joint Space constraints:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Joint Space constraints:}$}
Joint position: (4),\displaystyle\text{Joint position: }~\eqref{eq:jangles_constraint},
Joint velocity: (5),\displaystyle\text{Joint velocity: }~\eqref{eq:jvelocities_constraint},
Joint torque: (6),\displaystyle\text{Joint torque: }~\eqref{eq:jtorques_constraint},
Contact Space constraints:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Contact Space constraints:}$}
Holding Contact position: (7),\displaystyle\text{Holding Contact position: }~\eqref{eq:contact_constraint},
Fulfilling Contact wrench cone: (8),\displaystyle\text{Fulfilling Contact wrench cone: }~\eqref{eq:cwc_local},
Centroidal space constraints:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Centroidal space constraints:}$}
ZMP constraint:(10),\displaystyle\text{ZMP constraint:}~\eqref{eq:zmp_constraint},
COM velocity constraint:(11),\displaystyle\text{COM velocity constraint:}~\eqref{eq:com_vel_constraint},
Angular momentum constraint:(12),\displaystyle\text{Angular momentum constraint:}~\eqref{eq:angular_momentum_constraint},
DCM constraint:(14),\displaystyle\text{DCM constraint:}~\eqref{eq:dcm_constraint},
Other constraints, e.g., collision avoidance, etc.,\displaystyle\text{Other constraints, e.g., collision avoidance, etc.},

where iowi𝒆i(𝝁)2\sum_{i\in\mathcal{I}_{o}}w_{i}\|\boldsymbol{e}_{i}(\boldsymbol{\mu})\|^{2} scalarizes multiple task objectives included in a set o\mathcal{I}_{o}, wiw_{i} weights the ii-th task and 𝒆i(𝝁)\boldsymbol{e}_{i}(\boldsymbol{\mu}) is the task error, which is linear in terms of the QP decision variables 𝝁\boldsymbol{\mu}, see the details in Bouyarmane et al. 2019. Both the generalized joint accelerations 𝒒¨k{\ddot{\boldsymbol{q}}}_{k} and the generating vectors of the contact wrench cone 𝒇λ(k)\boldsymbol{f}_{\lambda}(k) are optimized, hence 𝝁k:={𝐪¨k,𝒇λ(k)}.{\boldsymbol{\mu}}_{k}\vcentcolon=\{{\ddot{\mathbf{q}}}_{k},\boldsymbol{f}_{\lambda}(k)\}.

3.6 Problem description

Impacts result in instantaneous jumps in the contacting end-effector’s velocity, which affects many constraints expressed in terms of joint velocity such as robot state or kinematic bounds, ZMP, angular momentum, COM velocity, DCM, etc. As a result, the QP feasible search space, defined by the constraints, may suddenly shrink to an empty set. In this case, the QP is infeasible for the next control iteration. An illustrative toy example is given later in Sec. 5.6. Moreover, the controller must also be extended by constraints related to hardware-acceptable impacts obtained from mechanical stress limitations.

In order to deal with impact-induced state jumps, the main idea is to adjust the pre-impact contact velocity. Here, adjusting means that we shall find a compromise between task dictated impact-induced velocities (ideally, the maximum possible impact velocity if requiring the largest possible force jump achievable by the robot) and the QP controller feasibility set. In other words, we propose additional constraints that allow the controller to drive the robot to generate impacts that ensure a feasible closed-loop QP (i.e., non-empty search space including hardware impact limits) right after the impact (post-impact).

In the following, we explicitly show how to predict impact-induced state jumps (based on the assumption of rigid contact surfaces and the coefficient of restitution) in Sec. 4 and then explain how to formulate impact-aware constraints in Sec. 5.

4 Predicting impact-induced state jumps

We formulate an auxiliary quadratic optimization problem in Sec. (4.1-4.4) that predicts the impact effect. In order to apply task-purpose impact, we specify important impact-induced state jumps as functions of the QP decision variables in Sec. 4.5.

4.1 Contact velocity impact modeling

Let us consider a robot end-effector undergoing the desired impact task. We choose the following impact model: The scalar coefficient of restitution cr>0c_{\text{r}}>0 represents the relationship between the pre-impact end-effector velocity 𝒙˙3\boldsymbol{\dot{x}}^{-}\in\mathbb{R}^{3} and the post-impact velocity 𝒙˙+3{\boldsymbol{\dot{x}}}^{+}\in\mathbb{R}^{3} assuming no sliding

𝒙˙k+1+=crP𝒏𝒙˙k+1+(IP𝒏)𝒙˙k+1,{\boldsymbol{\dot{x}}}_{k+1}^{+}=-c_{\text{r}}P_{\boldsymbol{n}}{\boldsymbol{\dot{x}}}_{k+1}^{-}+(I-P_{\boldsymbol{n}}){\boldsymbol{\dot{x}}}_{k+1}^{-}, (16)

where P𝒏=𝒏𝒏3×3P_{\boldsymbol{n}}=\boldsymbol{n}\boldsymbol{n}^{\top}\in\mathbb{R}^{3\times 3} is the projection operator onto the contact normal 𝒏3\boldsymbol{n}\in\mathbb{R}^{3}. It is important to note that angular velocity terms are neglected. In this model, the pre-impact velocity is not necessarily aligned with the contact normal. The resulting three-dimensional end-effector velocity jump becomes11 1 The chosen impact model (16) can be replaced by experimental models. Replacing the resulting end-effector velocity jump in (17), our approach applies without further adaptation.

Δ𝒙˙k+1=𝒙˙k+1+𝒙˙k+1=(1+cr)P𝒏PΔ𝒙˙k+1.{\Delta\boldsymbol{\dot{x}}}_{k+1}={\boldsymbol{\dot{x}}}_{k+1}^{+}-{\boldsymbol{\dot{x}}}_{k+1}^{-}=\underbrace{-(1+c_{\text{r}})P_{\boldsymbol{n}}}_{P_{\Delta}}{\boldsymbol{\dot{x}}}_{k+1}^{-}. (17)

We approximate the pre-impact velocity (in the next control cycle) as:

𝒙˙k+1\displaystyle{\boldsymbol{\dot{x}}}_{k+1}^{-} =𝒙˙k+1=Jk+1𝐪˙k+1\displaystyle={\boldsymbol{\dot{x}}}_{k+1}={J}_{k+1}{\dot{\mathbf{q}}}_{k+1}
=(Jk+J˙kΔt+J¨kΔt2+)(𝐪˙k+𝐪¨kΔt)\displaystyle=({J}_{k}+{\dot{J}}_{k}\Delta t+{\ddot{J}}_{k}\Delta t^{2}+\ldots)({\dot{\mathbf{q}}}_{k}+{\ddot{\mathbf{q}}}_{k}\Delta t)
=Jk𝐪˙k𝒙˙k+Jk𝐪¨kΔt+J˙k𝐪˙kΔt𝒙¨kΔt+J˙k𝐪¨kΔt2+𝟎\displaystyle=\underbrace{{J}_{k}{\dot{\mathbf{q}}}_{k}}_{{\boldsymbol{\dot{x}}}_{k}}+\underbrace{{J}_{k}{\ddot{\mathbf{q}}}_{k}\Delta t+{\dot{J}}_{k}{\dot{\mathbf{q}}}_{k}\Delta t}_{{\boldsymbol{\ddot{x}}}_{k}\Delta t}+\underbrace{{\dot{J}}_{k}{\ddot{\mathbf{q}}}_{k}\Delta t^{2}+\ldots}_{\approx\mathbf{0}}

Neglecting all terms in Δtn\Delta t^{n} where n>1n>1 since Δt5\Delta t\leq 5 ms, we expand (17) to express the jump Δ𝒙˙k+1{\Delta\boldsymbol{\dot{x}}}_{k+1} with respect to the QP decision variable 𝐪¨k{\ddot{\mathbf{q}}}_{k}:

Δ𝒙˙k+1=PΔ(Jk𝐪˙k+Jk𝐪¨kΔt+J˙k𝐪˙kΔt),{\Delta\boldsymbol{\dot{x}}}_{k+1}=P_{\Delta}({J}_{k}{\dot{\mathbf{q}}}_{k}+{J}_{k}{\ddot{\mathbf{q}}}_{k}\Delta t+{\dot{J}}_{k}{\dot{\mathbf{q}}}_{k}\Delta t), (18)

where 𝐪˙k{\dot{\mathbf{q}}}_{k} is obtained from the current robot state, and Δt\Delta t denotes the sampling period.

4.2 Contact force impact

Impacts result in impulses 𝜾\boldsymbol{\iota} characterized by contact force jumps Δ𝒇\Delta\boldsymbol{f} in end-effectors with established contacts, and velocity jumps Δ𝒙˙\Delta\boldsymbol{\dot{x}} in contact-free end-effectors.

Many complexities of rigid body contact dynamics can be avoided by the integral of contact forces 𝒇\boldsymbol{f} over the impact duration δt\delta t. Thus we define the impulse:

𝜾=0δt𝒇𝑑t\boldsymbol{\iota}=\int^{\delta t}_{0}\boldsymbol{f}dt

whose unit is (N\cdots). Equivalently, on a discretized form, we can define the associated force jump

Δ𝒇=1δt𝜾.\Delta\boldsymbol{f}=\frac{1}{\delta t}\boldsymbol{\iota}. (19)

There is no distinction between impulses 𝜾\boldsymbol{\iota} and finite force jump Δ𝒇\Delta\boldsymbol{f} over δt\delta t, see Chapter 48 by Wieber et al. 2016.

The stacked Jacobian 𝑱=[J1,,Jm]3m×(n+6)\boldsymbol{J}=[J^{\top}_{1},\ldots,J^{\top}_{m}]^{\top}\in\mathbb{R}^{3m\times(n+6)} collects all the end-effector Jacobians that possibly experience an impulse. Considering the robot’s joint space equations of motion (1) with the generalized force B𝝉=𝑱𝒇B\boldsymbol{\tau}=\boldsymbol{J}^{\top}\boldsymbol{f}, we obtain

𝐪¨=𝐌1𝑱𝒇+𝜶,\ddot{\mathbf{q}}=\mathbf{M}^{-1}\boldsymbol{J}^{\top}\boldsymbol{f}+\boldsymbol{\alpha}, (20)

where 𝜶\boldsymbol{\alpha} denotes the bias force (i.e., free acceleration) that we do not consider for impact dynamics. When integrating (20) over the impact duration δt\delta t the vector 𝜶\boldsymbol{\alpha} vanishes:

Δ𝐪˙=𝐌1𝑱𝜾.\Delta\dot{\mathbf{q}}=\mathbf{M}^{-1}\boldsymbol{J}^{\top}\boldsymbol{\iota}. (21)

Lets us now map this relationship onto the space of all end-effectors by left-multiplying (20) by 𝑱\boldsymbol{J}:

Δ𝒙˙=Υ𝜾,\Delta\boldsymbol{\dot{x}}=\Upsilon\boldsymbol{\iota}, (22)

where Υ=𝑱𝐌1𝑱\Upsilon=\boldsymbol{J}\mathbf{M}^{-1}\boldsymbol{J}^{\top}. Note that (22) characterizes the impulse propagation among the mm end-effectors. Let us expand (22), into three blocks:

[Δ𝒙˙σm1Δ𝒙˙σm2Δ𝒙˙σm3]=[Υσm1σm1,Υσm1σm2,Υσm1σm3Υσm2σm1,Υσm2σm2,Υσm2σm3Υσm3σm1,Υσm3σm2,Υσm3σm3][𝜾σm1𝜾σm2𝟎]\begin{bmatrix}\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{1}}}}\\ \Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}\\ \Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{3}}}}\end{bmatrix}\!\!=\!\!\begin{bmatrix}{\Upsilon}_{\sigma_{{m_{1}}}\sigma_{{m_{1}}}},&\!\!{\Upsilon}_{\sigma_{{m_{1}}}\sigma_{{m_{2}}}},&\!\!{\Upsilon}_{\sigma_{{m_{1}}}\sigma_{{m_{3}}}}\\ {\Upsilon}_{\sigma_{{m_{2}}}\sigma_{{m_{1}}}},&\!\!{\Upsilon}_{\sigma_{{m_{2}}}\sigma_{{m_{2}}}},&\!\!{\Upsilon}_{\sigma_{{m_{2}}}\sigma_{{m_{3}}}}\\ {\Upsilon}_{\sigma_{{m_{3}}}\sigma_{{m_{1}}}},&\!\!{\Upsilon}_{\sigma_{{m_{3}}}\sigma_{{m_{2}}}},&\!\!{\Upsilon}_{\sigma_{{m_{3}}}\sigma_{{m_{3}}}}\end{bmatrix}\!\!\!\begin{bmatrix}\boldsymbol{\iota}_{\sigma_{{m_{1}}}}\\ \boldsymbol{\iota}_{\sigma_{{m_{2}}}}\\ \mathbf{0}\end{bmatrix}

where a block Υσiσj3mi×3mj\Upsilon_{{\sigma_{i}}{\sigma_{j}}}\in\mathbb{R}^{3m_{i}\times 3m_{j}} gathers matrices 𝑱k𝐌1𝑱l\boldsymbol{J}_{k}\mathbf{M}^{-1}\boldsymbol{J}_{l} of the articulated bodies inertia matrices (when k=lk=l) and the cross-coupling inertia when klk\neq l; Δ𝒙˙σm13m1\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{1}}}}\in\mathbb{R}^{3{m_{1}}} gathers the provisional velocity jumps of the m1m_{1} already existing contacts which will have reaction impulse forces 𝜾σm13m1\boldsymbol{\iota}_{\sigma_{{m_{1}}}}\in\mathbb{R}^{3{m_{1}}}; Δ𝒙˙σm23m2\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}\in\mathbb{R}^{3{m_{2}}} gathers the velocity jumps of the m2m_{2} end-effectors that are supposed to contact with impulse force vector 𝜾σm23m2\boldsymbol{\iota}_{\sigma_{{m_{2}}}}\in\mathbb{R}^{3{m_{2}}} at the next iteration; Δ𝒙˙σm33m3\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{3}}}}\in\mathbb{R}^{3{m_{3}}} denotes the free end-effectors (i.e., no external force or impulse is acting on them), for which we aim to monitor the velocity jumps. Recall that m=m1+m2+m3m=m_{1}+m_{2}+m_{3}.

Remark 4.1.

The inverse of the operational space inertia used in (22) is constructed at the current time step kk. We can compute a first-order approximation of predicted Υ(𝐪k+1)\Upsilon({\mathbf{q}}_{k+1}) as follows:

(Jk+ΔtJ˙k)(𝐌k+Δt𝐌˙k)1(JkT+ΔtJ˙kT)({J}_{k}+\Delta t{\dot{J}}_{k})({\mathbf{M}}_{k}+\Delta t{\dot{\mathbf{M}}}_{k})^{-1}({J}_{k}^{T}+\Delta t{\dot{J}}_{k}^{T})

with the well-known decomposition 𝐌˙k=𝐂k+𝐂kT{\dot{\mathbf{M}}}_{k}={\mathbf{C}}_{k}+{\mathbf{C}}_{k}^{T}. Yet, since at the moment of contact our impact model assumes no change in the robot configuration, we consider that:

Υ(𝐪k+1)Υ(𝐪k).\Upsilon({\mathbf{q}}_{k+1})\simeq\Upsilon({\mathbf{q}}_{k}).
Remark 4.2.

The matrix Υ\Upsilon is further reduced to Ωm×(m1+m2)\Omega\in\mathbb{R}^{m\times({m_{1}}+{m_{2}})}

Ω=[Υσm1σm1,Υσm1σm2Υσm2σm1,Υσm2σm2Υσm3σm1,Υσm3σm2].\Omega=\begin{bmatrix}{\Upsilon}_{\sigma_{{m_{1}}}\sigma_{{m_{1}}}},&\!\!{\Upsilon}_{\sigma_{{m_{1}}}\sigma_{{m_{2}}}}\\ {\Upsilon}_{\sigma_{{m_{2}}}\sigma_{{m_{1}}}},&\!\!{\Upsilon}_{\sigma_{{m_{2}}}\sigma_{{m_{2}}}}\\ {\Upsilon}_{\sigma_{{m_{3}}}\sigma_{{m_{1}}}},&\!\!{\Upsilon}_{\sigma_{{m_{3}}}\sigma_{{m_{2}}}}\end{bmatrix}.

since all the blocks in Υ\Upsilon related to the free end-effectors will be nilled by the zero impulse force:

[Δ𝒙˙σm1Δ𝒙˙σm2Δ𝒙˙σm3]=Ω[𝜾σm1𝜾σm2].\begin{bmatrix}\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{1}}}}\\ \Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}\\ \Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{3}}}}\end{bmatrix}=\Omega\begin{bmatrix}\boldsymbol{\iota}_{\sigma_{{m_{1}}}}\\ \boldsymbol{\iota}_{\sigma_{{m_{2}}}}\end{bmatrix}. (23)

4.3 Centroidal momentum conservation

It is important to note that with redundant robots there exist multiple candidates of joint velocity jumps Δ𝐪˙\Delta\dot{\mathbf{q}} that can fulfill Δ𝒙˙=𝑱Δ𝐪˙\Delta\boldsymbol{\dot{x}}=\boldsymbol{J}\Delta\dot{\mathbf{q}} in (22). However, each 𝐪˙\dot{\mathbf{q}} determines a unique centroidal momenta 𝒉𝒄6\boldsymbol{h}_{\boldsymbol{c}}\in\mathbb{R}^{6}. Thus we introduce the centroidal space impact dynamics separately to specify the centroidal momenta jump Δ𝒉𝒄\Delta\boldsymbol{h}_{\boldsymbol{c}} uniquely.

The aggregation of external forces determines the derivative of the centroidal momentum 𝒉𝒄\boldsymbol{h}_{\boldsymbol{c}}:

𝒉˙𝒄=[P˙𝒄˙𝒄]=[M𝒈0]+i=1mJ𝒄𝒑i𝒇i,\dot{\boldsymbol{h}}_{\boldsymbol{c}}=\begin{bmatrix}\dot{P}_{\boldsymbol{c}}\\ \dot{\mathcal{L}}_{\boldsymbol{c}}\end{bmatrix}=\begin{bmatrix}M\boldsymbol{g}\\ 0\end{bmatrix}+\sum^{m}_{i=1}J_{\boldsymbol{c}\boldsymbol{p}_{i}}^{\top}\boldsymbol{f}_{i}, (24)

where the scalar M>0M>0 denotes the total mass of the robot, 𝒄3\boldsymbol{c}\in\mathbb{R}^{3} denotes the center of mass (CoM) and 𝒑i3\boldsymbol{p}_{i}\in\mathbb{R}^{3} denotes the ii-th contact location (the CoP position).

The centroidal frame external force 𝒇i=R𝒄𝒑i𝒇im3\boldsymbol{f}_{i}=R_{\boldsymbol{c}\boldsymbol{p}_{i}}\boldsymbol{f}^{m}_{i}\in\mathbb{R}^{3} is calculated from the measured force 𝒇im\boldsymbol{f}^{m}_{i}. The Jacobian J𝒄𝒑i6×3J_{\boldsymbol{c}\boldsymbol{p}_{i}}^{\top}\in\mathbb{R}^{6\times 3} that calculates the induced wrench in the centroidal frame 𝒄\mathcal{F}_{\boldsymbol{c}} is given by: J𝒄𝒑i:=[I,𝒄𝒑i×].J_{\boldsymbol{c}\boldsymbol{p}_{i}}^{\top}\vcentcolon=[I^{\top},\overrightarrow{\boldsymbol{c}\boldsymbol{p}_{i}}\times^{\top}]^{\top}.

Integrating (24) over the impact duration δt\delta t and assuming m1{m_{1}} established contacts and m2{m_{2}} impacts, we obtain the centroidal momentum jump as the sum of the external impulses:

[ΔP𝒄Δ𝒄]=iσm1J𝒄𝒑i𝜾i+iσm2J𝒄𝒑i𝜾i,\begin{bmatrix}\Delta P_{\boldsymbol{c}}\\ \Delta\mathcal{L}_{\boldsymbol{c}}\end{bmatrix}=\sum_{i\in\sigma_{{m_{1}}}}J_{\boldsymbol{c}\boldsymbol{p}_{i}}^{\top}\boldsymbol{\iota}_{i}+\sum_{i\in\sigma_{{m_{2}}}}J_{\boldsymbol{c}\boldsymbol{p}_{i}}^{\top}\boldsymbol{\iota}_{i}, (25)

where [ΔP𝒄,Δ𝒄]=A𝒄Δ𝐪˙6[\Delta P_{\boldsymbol{c}}^{\top},\Delta\mathcal{L}_{\boldsymbol{c}}^{\top}]^{\top}=A_{\boldsymbol{c}}\Delta\dot{\mathbf{q}}\in\mathbb{R}^{6} employing the centroidal momentum matrix (CMM) A𝒄6×(n+6)A_{\boldsymbol{c}}\in\mathbb{R}^{6\times(n+6)}. The constant term M𝒈δtM\boldsymbol{g}\delta t being negligible w.r.t other impulses. The compact form yields

A𝒄Δ𝐪˙=S[𝜾σm1𝜾σm2],A_{\boldsymbol{c}}\Delta\dot{\mathbf{q}}=S\begin{bmatrix}\boldsymbol{\iota}_{\sigma_{{m_{1}}}}\\ \boldsymbol{\iota}_{\sigma_{{m_{2}}}}\end{bmatrix}, (26)

where S6×(m1+m2)S\in\mathbb{R}^{6\times({m_{1}}+{m_{2}})} gathers the associated Jacobian matrices.

4.4 Impulse distribution quadratic program

We define the optimization variable as:

𝒖=[Δ𝐪˙,𝜾σm1,𝜾σm2]=[Δ𝐪˙,𝜾σe],\boldsymbol{u}=[\Delta\dot{\mathbf{q}}^{\top},\boldsymbol{\iota}_{\sigma_{{m_{1}}}}^{\top},\boldsymbol{\iota}_{\sigma_{{m_{2}}}}^{\top}]^{\top}=[\Delta\dot{\mathbf{q}}^{\top},\boldsymbol{\iota}_{\sigma_{e}}^{\top}]^{\top},

where σe=σm1σm2\sigma_{e}=\sigma_{{m_{1}}}\cup\sigma_{{m_{2}}}, thus 𝜾σe(m1+m2)\boldsymbol{\iota}_{\sigma_{e}}\in\mathbb{R}^{({m_{1}}+{m_{2}})}, and all the impulses are defined in the inertial frame22 2 The centroidal frame keeps the same orientation of the inertial frame. Thus we can use 𝜾\boldsymbol{\iota} for both (22) and (26).. Assuming that the robot is applying one or multiple impacts along with given directions in the next control iteration, we formulate the Impulse Distribution Quadratic Program (IDQP) that returns the optimal 𝒖\boldsymbol{u}^{*}:

min𝒖\displaystyle\underset{\boldsymbol{u}}{\text{min}} 12(Δ𝐪˙𝐌γa𝐌Δ𝐪˙+𝜾σeγb𝜾σe)\displaystyle\frac{1}{2}(\Delta\dot{\mathbf{q}}^{\top}\mathbf{M}^{\top}\gamma_{a}\mathbf{M}\Delta\dot{\mathbf{q}}+\boldsymbol{\iota}_{\sigma_{e}}^{\top}\gamma_{b}\boldsymbol{\iota}_{\sigma_{e}}) (27)
s.t.\displaystyle\text{s.t.} Operational space dynamics:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Operational space dynamics:}$}
JΔ𝐪˙=Ω𝜾σe,\displaystyle J\Delta\dot{\mathbf{q}}=\Omega\boldsymbol{\iota}_{\sigma_{e}},
Centroidal momentum conservation:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Centroidal momentum conservation:}$}
A𝒄Δ𝐪˙=S𝜾σe,\displaystyle A_{\boldsymbol{c}}\Delta\dot{\mathbf{q}}=S\boldsymbol{\iota}_{\sigma_{e}},
Controlled impacts:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Controlled impacts:}$}
JiΔ𝐪˙=Δ𝒙˙i foriσm1.\displaystyle J_{i}\Delta\dot{\mathbf{q}}=\Delta\boldsymbol{\dot{x}}_{i}\text{ for}~i\in\sigma_{{m_{1}}}.

where scalar weights γa,γb>0\gamma_{a},\gamma_{b}>0 impose the relative importance between the two quadratic costs 𝐌Δ𝐪˙2\left\lVert\mathbf{M}\Delta\dot{\mathbf{q}}\right\rVert^{2} and 𝜾σe2\left\lVert\boldsymbol{\iota}_{\sigma_{e}}\right\rVert^{2}. In general, these two costs cannot be both wholly minimized, i.e., they conflict with each other. We chose the inertia matrix in the cost function, to prioritize among the task-space impulse 𝜾\boldsymbol{\iota} and the joint space impulse equivalent 𝐌Δ𝐪˙\mathbf{M}\Delta\dot{\mathbf{q}}. We reformulate the IDQP in matrix form

min𝒖\displaystyle\underset{\boldsymbol{u}}{\text{min}} 12𝒖H𝒖\displaystyle\frac{1}{2}\boldsymbol{u}^{\top}H\boldsymbol{u} (28)
s.t.\displaystyle\text{s.t.} B𝒖=𝐛\displaystyle B\boldsymbol{u}=\mathbf{b}

with block matrices

B=[𝑱,ΩA𝒄,S𝑱σm2,0]and𝒃=[𝟎𝟎Δ𝒙˙σm2],B=\begin{bmatrix}\boldsymbol{J},&-\Omega\\ A_{\boldsymbol{c}},&-S\\ \boldsymbol{J}_{\sigma_{{m_{2}}}},&0\end{bmatrix}\text{and}\quad\boldsymbol{b}=\begin{bmatrix}\mathbf{0}\\ \mathbf{0}\\ \Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}\end{bmatrix},

where we collect the Jacobians of the m2{m_{2}} end-effectors that are applying impacts as:

𝑱σm2=[J1,,Jm2]3m2×(n+6).\boldsymbol{J}_{\sigma_{{m_{2}}}}=[J^{\top}_{1},\ldots,J^{\top}_{{m_{2}}}]^{\top}\in\mathbb{R}^{3{m_{2}}\times(n+6)}.

Given the impact dynamics model (18), the end-effector velocity jumps Δ𝒙˙σm23m2\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}\in\mathbb{R}^{3{m_{2}}} are represented as the decision variable of (15), i.e., 𝐪¨\ddot{\mathbf{q}}. The weighting matrix H(n+3(m1+m2))×(n+3(m1+m2))H\in\mathbb{R}^{(n+3({m_{1}}+{m_{2}}))\times(n+3({m_{1}}+{m_{2}}))} is

H=[γa𝐌𝐌00γbI].H=\begin{bmatrix}\gamma_{a}\mathbf{M}^{\top}\mathbf{M}&0\\ 0&\gamma_{b}I\end{bmatrix}.

The solution to the IDQP (28), i.e., the joint velocity jump Δ𝐪˙{\Delta\dot{\mathbf{q}}}^{*} and the impulse 𝜾σe{\boldsymbol{\iota}}^{*}_{\sigma_{e}} at the time step tk+1t_{k+1}, can be obtained analytically:

𝒖=[Δ𝐪˙𝜾σe]=BH,𝐛=[KΔ𝐪˙K𝜾]Δ𝒙˙σm2{\boldsymbol{u}}^{*}=\begin{bmatrix}{\Delta\dot{\mathbf{q}}}^{*}\\ {\boldsymbol{\iota}}^{*}_{\sigma_{e}}\end{bmatrix}=B^{H,\dagger}\,\mathbf{b}=\begin{bmatrix}K_{\Delta\dot{\mathbf{q}}}\\ K_{\boldsymbol{\iota}}\end{bmatrix}\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}} (29)

where BH,B^{H,\dagger} is the HH-weighted pseudo-inverse of BB:

BH,=H1B(BH1B)1=[,KΔ𝐪˙,K𝜾].B^{H,\dagger}=H^{-1}B^{\top}(BH^{-1}B^{\top})^{-1}=\begin{bmatrix}\cdots,&K_{\Delta\dot{\mathbf{q}}}\\ \cdots,&K_{\boldsymbol{\iota}}\\ \end{bmatrix}.

Only the right 3m23{m_{2}} columns (related to the 3m23{m_{2}} lower, nonzero elements of 𝐛\mathbf{b}) of BH,B^{H,\dagger} are of interest. Note that KΔ𝐪˙K_{\Delta\dot{\mathbf{q}}}, K𝜾K_{\boldsymbol{\iota}} are decomposed into individual end-effector contributions:

KΔ𝐪˙=[KΔ𝐪˙1,KΔ𝐪˙2,,KΔ𝐪˙m2](n+6)×3m2,K_{\Delta\dot{\mathbf{q}}}=[{K_{\Delta\dot{\mathbf{q}}}}_{1},{K_{\Delta\dot{\mathbf{q}}}}_{2},\cdots,{K_{\Delta\dot{\mathbf{q}}}}_{{m_{2}}}]\in\mathbb{R}^{(n+6)\times 3{m_{2}}}, (30)
K𝜾=[K1,1,,K1,m2K(m1+m2),1,,K(m1+m2),m2],K_{\boldsymbol{\iota}}=\begin{bmatrix}K_{1,1},&\cdots,&K_{1,{m_{2}}}\\ \vdots&&\vdots\\ K_{({m_{1}}+{m_{2}}),1},&\cdots,&K_{({m_{1}}+{m_{2}}),{m_{2}}}\\ \end{bmatrix}, (31)

where K𝜾3(m1+m2)×3m2.K_{\boldsymbol{\iota}}\in\mathbb{R}^{3({m_{1}}+{m_{2}})\times 3{m_{2}}}.

Example 1 (IDQP (28) solution visualization).

Assuming the robot applies an impact with the right palm, Fig. 2 visualizes the predicted force jumps (36) (blue arrows) at the right palm and the established contacts, i.e., the two feet.

The left arm is a free limb without contacts or impact. We can predict the end-effector velocity jump (37) (yellow arrow), which mitigates impulses on the other end-effectors.

Refer to caption (a) Illustration of Example. 1.
Refer to caption (b) Left ankle xx-axis force jump of Example. 1
Refer to caption (c) Right ankle xx-axis force jump of Example. 1
Figure 2: Fig. 2(a) visualizes the force jumps (light-blue) (36) and end-effector velocity jump (light-yellow) (37) obtained from the IDQP (28). The simulated force plots in Fig. 2(b) and Fig. 2(c) verify the predicted force jumps on the feet. We selected γa=1\gamma_{a}=1 and γb=1\gamma_{b}=1 for the optimization objective.
Remark 4.3.

The IDQP (28) is an estimator that does not restrict any contact to a fixed position. Thus we can observe Δ𝐱˙i𝟎\Delta\boldsymbol{\dot{x}}_{i}\neq\mathbf{0} for i=1,,m1i=1,\ldots,{m_{1}} regardless of whether an end-effector has established contact or not.

To sustain established contacts, we construct the contact wrench cone constraint (48) (which is the impact-aware version of (8) to be introduced in Sec. 5.3) using the predicted 𝛊σm1{\boldsymbol{\iota}}^{*}_{\sigma_{{m_{1}}}}. Depending on the feasibility of (48), the QP controller can reduce the contact velocity and hence also the propagated impulse 𝛊σm1{\boldsymbol{\iota}}^{*}_{\sigma_{{m_{1}}}}.

Remark 4.4.

It is easy to see that

[B,0][𝑱σm2W,Υ1𝑱𝑱σm2W,]Δ𝒙˙σm2=[B,0][,𝑱σm2W,,Υ1𝑱𝑱σm2W,][B,0]H,𝐛\begin{bmatrix}B,0\end{bmatrix}\!\!\begin{bmatrix}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\\ {\Upsilon}^{-1}\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\\ \end{bmatrix}\!\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}\!=\!\begin{bmatrix}B,0\end{bmatrix}\!\!\underbrace{\begin{bmatrix}\cdots,\!\!&\!\!\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\\ \cdots,\!\!&\!\!{\Upsilon}^{-1}\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\\ \end{bmatrix}}_{\begin{bmatrix}B,0\end{bmatrix}^{H,\dagger}}\!\mathbf{b}

where 𝐉σm2W,\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger} is a WW-weighted pseudo-inverse of 𝐉σm2\boldsymbol{J}_{\sigma_{{m_{2}}}}. Hence, a special solution for (28) is given by

[𝒖𝟎]=[Δ𝐪˙𝜾σe𝟎]=[𝑱σm2W,Υ1𝑱𝑱σm2W,]Δ𝒙˙σm2,\begin{bmatrix}{\boldsymbol{u}}^{*}\\ \mathbf{0}\end{bmatrix}=\begin{bmatrix}{\Delta\dot{\mathbf{q}}}^{*}\\ {\boldsymbol{\iota}}^{*}_{\sigma_{e}}\\ \mathbf{0}\end{bmatrix}=\begin{bmatrix}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\\ {\Upsilon}^{-1}\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\\ \end{bmatrix}\Delta\boldsymbol{\dot{x}}_{\sigma_{{m_{2}}}}, (32)

where the zero impulse for the free end-effectors are explicit in order to invert the square Υ\Upsilon instead of pseudo-inverting the non-square Ω\Omega. These predictions Δ𝐪˙{\Delta\dot{\mathbf{q}}}^{*} and 𝛊σe{\boldsymbol{\iota}}^{*}_{\sigma_{e}} correspond to (29) when choosing the extreme relative importance γa=\gamma_{a}=\infty, γb=1\gamma_{b}=1 and the relationship

H=[W00I].H=\begin{bmatrix}\infty W&0\\ 0&I\end{bmatrix}.

Setting a weight to infinity in a multi-objective optimization with soft weights is equivalent to imposing a strict nullspace-based hierarchy. The special solution (32) strictly minimizes the cost Δ𝐪˙WΔ𝐪˙\Delta\dot{\mathbf{q}}^{\top}W\Delta\dot{\mathbf{q}}. The secondary cost 𝛊σe𝛊σe\boldsymbol{\iota}^{\top}_{\sigma_{e}}\boldsymbol{\iota}_{\sigma_{e}} is optimized without compromising the primary objective.

Note that 𝐉𝐉σm2W,I\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}\neq I in the general case33 3 If and only if there is no pre-existing contacts and no free limbs, then 𝐉𝐉σm2W,=I\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}=I, because 𝐉σm2𝐉σm2W,=I\boldsymbol{J}_{\sigma_{{m_{2}}}}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}=I always holds.. Further note that

Υ1𝑱𝑱σm2W,=(𝑱𝐌1𝑱)1𝑱W𝑱σm2(𝑱σm2W𝑱σm2)1\displaystyle{\Upsilon}^{-1}\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}=\underbrace{(\boldsymbol{J}\mathbf{M}^{-1}\boldsymbol{J}^{\top})^{-1}}\boldsymbol{J}W\boldsymbol{J}_{\sigma_{{m_{2}}}}^{\top}\underbrace{(\boldsymbol{J}_{\sigma_{{m_{2}}}}W\boldsymbol{J}_{\sigma_{{m_{2}}}}^{\top})^{-1}}

in (32) involves two inverse-operations, however, each of them is much smaller than the inversion of BH1BTBH^{-1}B^{T} in (29).

Remark 4.5.

Consider the special case m2>0{m_{2}}>0, m1=0{m_{1}}=0 and m3=0{m_{3}}=0, for example a fixed-base manipulator without existing contacts. Accordingly, 𝐉𝐉σm2W,=I\boldsymbol{J}\boldsymbol{J}_{\sigma_{{m_{2}}}}^{W,\dagger}=I holds. The solutions obtained by (29) and (32) are equivalent given the relationship

H=[W00I].H=\begin{bmatrix}W&0\\ 0&I\end{bmatrix}.

The relative importance between costs γa\gamma_{a}, γb\gamma_{b} is irrelevant. In other words, the two costs do not conflict with each other and are minimized simultaneously.

4.5 Whole-body impact effects

Here, we summarize all the essential state jumps. In a generic form, the quantity jump Δ𝝀k+1{\Delta\boldsymbol{\lambda}}_{k+1} relates to joint accelerations 𝐪¨k{\ddot{\mathbf{q}}}_{k} and is linearly decomposed as

Δ𝝀k+1=𝒥Δ𝝀𝐪¨kΔt+𝒞Δ𝝀𝐪˙k,{\Delta\boldsymbol{\lambda}}_{k+1}=\mathcal{J}_{\Delta\boldsymbol{\lambda}}{\ddot{\mathbf{q}}}_{k}\Delta t+\mathcal{C}_{\Delta\boldsymbol{\lambda}}{\dot{\mathbf{q}}}_{k}, (33)

where the matrix 𝒥Δ𝝀\mathcal{J}_{\Delta\boldsymbol{\lambda}} and 𝒞Δ𝝀\mathcal{C}_{\Delta\boldsymbol{\lambda}} incorporates the impact model and the impulse propagation through the kinematic tree. The coefficient of restitution contributes to 𝒥Δ𝝀\mathcal{J}_{\Delta\boldsymbol{\lambda}} and 𝒞Δ𝝀\mathcal{C}_{\Delta\boldsymbol{\lambda}} as a scalar multiplier by (1+cr)(1+c_{\text{r}}). Hence, higher coefficients lead to higher jumps. We specify the matrix 𝒥Δ𝝀\mathcal{J}_{\Delta\boldsymbol{\lambda}} and 𝒞Δ𝝀\mathcal{C}_{\Delta\boldsymbol{\lambda}} on a case-by-case basis in the rest of this section. These expressions are used in Sec. 5 to formulate impact-aware constraints.

4.5.1 Joint space state jumps

Joint position jumps

According to Zheng and Hemami 1985; Konno et al. 2011; Wang and Kheddar 2019, there are no, or negligible joint position jumps during the impact transition Δ𝐪k+1𝟎{\Delta\mathbf{q}}_{k+1}\simeq\mathbf{0}.

Joint velocity jumps

The joint velocity jump given in (29) is reformulated in terms of joint accelerations by substituting (18)

Δ𝐪˙k+1\displaystyle{\Delta\dot{\mathbf{q}}}_{k+1} =i=1m2KΔ𝐪˙iPΔiJi(k)𝒥Δ𝐪˙𝐪¨kΔt\displaystyle=\underbrace{\sum^{{m_{2}}}_{i=1}{K_{\Delta\dot{\mathbf{q}}}}_{i}P_{\Delta_{i}}J_{i}(k)}_{\mathcal{J}_{\Delta\dot{\mathbf{q}}}}{\ddot{\mathbf{q}}}_{k}\Delta t (34)
+i=1m2KΔ𝐪˙iPΔi(Ji(k)+J˙i(k)Δt)𝒞Δ𝐪˙𝐪˙k.\displaystyle+\underbrace{\sum^{{m_{2}}}_{i=1}{K_{\Delta\dot{\mathbf{q}}}}_{i}P_{\Delta_{i}}\left(J_{i}(k)+\dot{J}_{i}(k)\Delta t\right)}_{\mathcal{C}_{\Delta\dot{\mathbf{q}}}}{\dot{\mathbf{q}}}_{k}.
Joint torque jumps

The whole-body joint torque jump relates to the end-effector force jumps Δ𝝉=JΔ𝒇\Delta\boldsymbol{\tau}=J^{\top}\Delta\boldsymbol{f}. Hence aggregating the end-effector force jump Δ𝒇r,k+1{\Delta\boldsymbol{f}_{r,}}_{k+1} defined by (36), we predict the joint torque jumps as:

Δ𝝉k+1\displaystyle{\Delta\boldsymbol{\tau}}_{k+1} =1δtr=1mJri=1m2Kr,iPΔiJi𝒥Δ𝝉𝐪¨kΔt\displaystyle=\underbrace{\frac{1}{\delta t}\sum^{m}_{r=1}J_{r}^{\top}\sum^{{m_{2}}}_{i=1}K_{r,i}P_{\Delta_{i}}J_{i}}_{\mathcal{J}_{\Delta\boldsymbol{\tau}}}{\ddot{\mathbf{q}}}_{k}\Delta t (35)
+r=1mJri=1m2Kr,iPΔi(Ji(k)+J˙i(k)Δt)𝒞Δ𝝉𝐪˙k\displaystyle+\underbrace{\sum^{m}_{r=1}J_{r}^{\top}\sum^{{m_{2}}}_{i=1}K_{r,i}P_{\Delta_{i}}\left(J_{i}(k)+\dot{J}_{i}(k)\Delta t\right)}_{\mathcal{C}_{\Delta\boldsymbol{\tau}}}{\dot{\mathbf{q}}}_{k}

4.5.2 Contact space state jumps

End-effector force jumps

Substituting (18) in the predicted impulse (29), we formulate the force jump, i.e., defined by (19), of the rr-th end-effector, in terms of joint accelerations:

Δ𝒇r,k+1\displaystyle{\Delta\boldsymbol{f}}_{r,_{k+1}} =1δti=1m2Kr,iPΔiJi𝒥Δ𝒇r𝐪¨kΔt\displaystyle=\underbrace{\frac{1}{\delta t}\sum^{{m_{2}}}_{i=1}K_{r,i}P_{\Delta_{i}}J_{i}}_{\mathcal{J}_{\Delta\boldsymbol{f}_{r}}}{\ddot{\mathbf{q}}}_{k}\Delta t (36)
+1δti=1m2Kr,iPΔi(Ji(k)+J˙i(k)Δt)𝒞Δ𝒇r𝐪˙k.\displaystyle+\underbrace{\frac{1}{\delta t}\sum^{{m_{2}}}_{i=1}K_{r,i}P_{\Delta_{i}}\left(J_{i}(k)+\dot{J}_{i}(k)\Delta t\right)}_{\mathcal{C}_{\Delta\boldsymbol{f}_{r}}}{\dot{\mathbf{q}}}_{k}.
End-effector velocity Jumps

Given the joint velocity Jump (34), the rr-th end-effector velocity jump is readily available:

Δ𝒙˙r,k+1\displaystyle{\Delta\boldsymbol{\dot{x}}}_{r,_{k+1}} =JrΔ𝐪˙k+1\displaystyle=J_{r}{\Delta\dot{\mathbf{q}}}_{k+1} (37)
=Jr𝒥Δ𝐪˙𝒥Δ𝒙˙𝐪¨kΔt+Jr𝒞Δ𝐪˙𝒞Δ𝒙˙𝐪˙k.\displaystyle=\underbrace{J_{r}\mathcal{J}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{J}_{\Delta\boldsymbol{\dot{x}}}}{\ddot{\mathbf{q}}}_{k}\Delta t+\underbrace{J_{r}\mathcal{C}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{C}_{\Delta\boldsymbol{\dot{x}}}}{\dot{\mathbf{q}}}_{k}.

4.5.3 Centroidal space state jumps

Angular momentum jump

Given the joint velocity jump Δ𝐪˙\Delta\dot{\mathbf{q}} by (34) and the angular part Aω𝒄(𝐪k)A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k}) of the centroidal momentum matrix A𝒄(𝐪k)A_{\boldsymbol{c}}({\mathbf{q}}_{k}), we obtain Δ𝒄(𝐪k+1)\Delta\mathcal{L}_{\boldsymbol{c}}({\mathbf{q}}_{k+1}) as:

Δ𝒄(𝐪k+1)\displaystyle\Delta\mathcal{L}_{\boldsymbol{c}}({\mathbf{q}}_{k+1}) =Aω𝒄(𝐪k)Δ𝐪˙k+1,\displaystyle={A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k})}{\Delta\dot{\mathbf{q}}}_{k+1}, (38)
=Aω𝒄(𝐪k)𝒥Δ𝐪˙𝒥Δ𝒄𝐪¨kΔt+Aω𝒄(𝐪k)𝒞Δ𝐪˙𝒞Δ𝒄𝐪˙k,\displaystyle=\underbrace{{A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k})}\mathcal{J}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{J}_{\Delta\mathcal{L}_{\boldsymbol{c}}}}{\ddot{\mathbf{q}}}_{k}\Delta t+\underbrace{A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k})\mathcal{C}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{C}_{\Delta\mathcal{L}_{\boldsymbol{c}}}}{\dot{\mathbf{q}}}_{k},

and we approximated Aω𝒄(𝐪k+1)Aω𝒄(𝐪k)A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k+1})\simeq A_{\omega\boldsymbol{c}}({\mathbf{q}}_{k}).

Planar COM Velocity Jump

If we are only interested in the planar COM velocity jump Δ𝒄˙x,y2\Delta\dot{\boldsymbol{c}}_{x,y}\in\mathbb{R}^{2}, i.e., the xx and yy directions, we can obtain

Δ𝒄˙x,y(k+1)=1MA𝒗𝒄(𝐪k)Δ𝐪˙k+1,\displaystyle{\displaystyle\Delta\dot{\boldsymbol{c}}_{x,y}(k+1)}=\frac{1}{M}{A_{\boldsymbol{v}\boldsymbol{c}}({\mathbf{q}}_{k})}{\Delta\dot{\mathbf{q}}}_{k+1}, (39)
=1MA𝒗𝒄(𝐪k)𝒥Δ𝐪˙𝒥Δ𝒄˙x,y𝐪¨kΔt+1MA𝒗𝒄(𝐪k)𝒞Δ𝐪˙𝒞Δ𝒄˙x,y𝐪˙k,\displaystyle=\underbrace{{\frac{1}{M}A_{\boldsymbol{v}\boldsymbol{c}}({\mathbf{q}}_{k})}\mathcal{J}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{J}_{\Delta\dot{\boldsymbol{c}}_{x,y}}}{\ddot{\mathbf{q}}}_{k}\Delta t+\underbrace{{\frac{1}{M}A_{\boldsymbol{v}\boldsymbol{c}}({\mathbf{q}}_{k})}\mathcal{C}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{C}_{\Delta\dot{\boldsymbol{c}}_{x,y}}}{\dot{\mathbf{q}}}_{k},

where A𝒗𝒄A_{\boldsymbol{v}\boldsymbol{c}} takes the corresponding rows from A𝒄A_{\boldsymbol{c}}, and we use the same approximation as (38).

ZMP Jump

We use the predicted force jumps (36) to calculate the resultant wrench:

Δ𝑾O(k+1)=i=1m1JO𝒑i𝒇i+i=1m2JO𝒑i𝒇i,\displaystyle{\displaystyle\Delta\boldsymbol{W}_{O}(k+1)}=\sum^{{m_{1}}}_{i=1}J_{O\boldsymbol{p}_{i}}^{\top}\boldsymbol{f}_{i}+\sum^{{m_{2}}}_{i=1}J_{O\boldsymbol{p}_{i}}^{\top}\boldsymbol{f}_{i}, (40)
=i=1m1+m2JO𝒑i𝒥Δ𝒇i𝒥Δ𝑾O𝐪¨kΔt+i=1m1+m2JO𝒑i𝒞Δ𝒇i𝒞Δ𝑾O𝐪˙k,\displaystyle=\underbrace{\sum^{{m_{1}}+{m_{2}}}_{i=1}J_{O\boldsymbol{p}_{i}}^{\top}\mathcal{J}_{\Delta\boldsymbol{f}_{i}}}_{\mathcal{J}_{\Delta\boldsymbol{W}_{O}}}{\ddot{\mathbf{q}}}_{k}\Delta t+\underbrace{\sum^{{m_{1}}+{m_{2}}}_{i=1}J_{O\boldsymbol{p}_{i}}^{\top}\mathcal{C}_{\Delta\boldsymbol{f}_{i}}}_{\mathcal{C}_{\Delta\boldsymbol{W}_{O}}}{\dot{\mathbf{q}}}_{k},

where the Jacobian JO𝒑iJ_{O\boldsymbol{p}_{i}}^{\top} is defined as: JO𝒑i=[I,O𝒑i×]J_{O\boldsymbol{p}_{i}}^{\top}=[I^{\top},\overrightarrow{O\boldsymbol{p}_{i}}\times^{\top}]^{\top}. Injecting the wrench jump Δ𝑾O=[Δ𝒇O,Δ𝝉O]\Delta\boldsymbol{W}_{O}=[\Delta\boldsymbol{f}_{O}^{\top},\Delta\boldsymbol{\tau}_{O}^{\top}]^{\top} into the ZMP definition (9), we obtain the ZMP jump:

Δ𝒛k+1=𝒏^Δ𝝉O𝒏𝒇O+Δ𝒇O.{\Delta\boldsymbol{z}}_{k+1}=\frac{\widehat{\boldsymbol{n}}\Delta\boldsymbol{\tau}_{O}}{\boldsymbol{n}^{\top}\boldsymbol{f}_{O}+\Delta\boldsymbol{f}_{O}}. (41)
DCM Jump

Using the DCM definition (13) and the predicted Δ𝒄˙x,yk+1{\Delta\dot{\boldsymbol{c}}_{x,y}}_{k+1} (39), we can predict the impact-induced DCM jump Δ𝝃\Delta\boldsymbol{\xi} as:

Δ𝝃k+1\displaystyle{\Delta\boldsymbol{\xi}}_{k+1} =Δ𝒄x,y(k+1)+Δ𝒄˙x,y(k+1)ω\displaystyle={\Delta\boldsymbol{c}_{x,y}(k+1)}+\frac{{\Delta\dot{\boldsymbol{c}}_{x,y}(k+1)}}{\omega} (42)
=1ω𝒥Δ𝒄˙x,yΔ𝐪˙k+1\displaystyle=\frac{1}{\omega}\mathcal{J}_{\Delta\dot{\boldsymbol{c}}_{x,y}}{\Delta\dot{\mathbf{q}}}_{k+1}
=1ω𝒥Δ𝒄˙x,y𝒥Δ𝐪˙𝒥Δ𝝃𝐪¨kΔt+1ω𝒥Δ𝒄˙x,y𝒞Δ𝐪˙𝒞Δ𝝃𝐪˙k.\displaystyle=\underbrace{\frac{1}{\omega}\mathcal{J}_{\Delta\dot{\boldsymbol{c}}_{x,y}}\mathcal{J}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{J}_{\Delta\boldsymbol{\xi}}}{\ddot{\mathbf{q}}}_{k}\Delta t+\underbrace{\frac{1}{\omega}\mathcal{J}_{\Delta\dot{\boldsymbol{c}}_{x,y}}\mathcal{C}_{\Delta\dot{\mathbf{q}}}}_{\mathcal{C}_{\Delta\boldsymbol{\xi}}}{\dot{\mathbf{q}}}_{k}.

Note that the first summand Δ𝒄x,y(k+1){\Delta\boldsymbol{c}_{x,y}(k+1)} can be neglected, but the second summand Δ𝒄˙x,y(k+1)ω\frac{{\Delta\dot{\boldsymbol{c}}_{x,y}(k+1)}}{\omega} instead is of importance for impact-awareness.

5 Impact-aware QP control based on Predicted State Jumps

Based on the predicted impact-induced state jumps, we systematically propose novel impact-aware constraints that guarantee the feasibility of the QP controller after the impact event. These new constraints extend the constraints formulation detailed in Sec. 3.

5.1 Constraining generic quantity jumps

We here propose to constrain the post-impact state of the generic quantity 𝝀\boldsymbol{\lambda}

D𝝀k+1+𝝀¯¯\displaystyle D{\boldsymbol{\lambda}}_{k+1}^{+}\leq\underaccent{\bar}{\bar{\quantity}} (43)

with the matrix DD representing half-planes and the offset vector 𝝀¯¯\underaccent{\bar}{\bar{\quantity}} representing the upper and lower bounds. Substituting the Euler forward method 𝝀k+1=𝝀k+𝒅˙kΔt{\boldsymbol{\lambda}}_{k+1}^{-}={\boldsymbol{\lambda}}_{k}+{\dot{\boldsymbol{d}}}_{k}\Delta t and the impact model 𝝀k+1+=𝝀k+1+Δ𝝀k+1{\boldsymbol{\lambda}}_{k+1}^{+}={\boldsymbol{\lambda}}_{k+1}^{-}+{\Delta\boldsymbol{\lambda}}_{k+1} we obtain

D(𝝀k+𝒅˙kΔt+Δ𝝀k+1)𝝀¯¯.\displaystyle D\left({\boldsymbol{\lambda}}_{k}+{\dot{\boldsymbol{d}}}_{k}\Delta t+{\Delta\boldsymbol{\lambda}}_{k+1}\right)\leq\underaccent{\bar}{\bar{\quantity}}. (44)

We reformulate the constraint regarding the QP decision variable 𝐪¨k{\ddot{\mathbf{q}}}_{k} by using the generic expression for the impact-induced jump Δ𝝀k+1{\Delta\boldsymbol{\lambda}}_{k+1} (33)

D𝒥Δ𝝀𝐪¨kΔt𝝀¯¯D(𝝀k+𝒅˙kΔt+𝒞Δ𝝀𝐪˙k).\displaystyle D\mathcal{J}_{\Delta\boldsymbol{\lambda}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\underaccent{\bar}{\bar{\quantity}}-D\left({\boldsymbol{\lambda}}_{k}+{\dot{\boldsymbol{d}}}_{k}\Delta t+\mathcal{C}_{\Delta\boldsymbol{\lambda}}{\dot{\mathbf{q}}}_{k}\right).

Note that this constraint is easily adapted such that only actuated joints 𝜽\boldsymbol{\theta} are constrained. Further note that it is typically challenging to obtain an accurate measurement of 𝒅˙k{\dot{\boldsymbol{d}}}_{k}. Therefore, we decided to approximate44 4 In the case of the impact-aware joint velocity constraint (with 𝝀:=𝐪˙\boldsymbol{\lambda}\vcentcolon=\dot{\mathbf{q}}) we choose 𝒅˙k{\dot{\boldsymbol{d}}}_{k} as the QP decision variable 𝐪¨k{\ddot{\mathbf{q}}}_{k} instead of using a direct measurement of joint accelerations. the pre-impact state as 𝝀k+1𝝀k{\boldsymbol{\lambda}}_{k+1}^{-}\approx{\boldsymbol{\lambda}}_{k}, and consequently, ignore the term 𝒅˙kΔt𝟎{\dot{\boldsymbol{d}}}_{k}\Delta t\approx\mathbf{0}:

D𝒥Δ𝝀𝐪¨kΔt𝝀¯¯D(𝝀k+𝒞Δ𝝀𝐪˙k).\displaystyle D\mathcal{J}_{\Delta\boldsymbol{\lambda}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\underaccent{\bar}{\bar{\quantity}}-D\left({\boldsymbol{\lambda}}_{k}+\mathcal{C}_{\Delta\boldsymbol{\lambda}}{\dot{\mathbf{q}}}_{k}\right). (45)

In the following subsections, we will consider a multitude of quantities: joint velocity, joint torque, fulfilling contact wrench cone, centroidal angular momentum, COM velocity, ZMP, and DCM. All these derivations will follow the same generic concept presented here. In the future, we can constrain more quantities easily in an impact-aware manner following the same approach.

5.2 Constraining joint space jumps

5.2.1 Joint velocity

Choosing joint velocities as quantity 𝝀:=𝐪˙\boldsymbol{\lambda}\vcentcolon=\dot{\mathbf{q}} in (45) with D:=[I,I]TD\vcentcolon=[I,-I]^{T} and 𝝀¯¯:=𝐪¯¯˙\underaccent{\bar}{\bar{\quantity}}\vcentcolon=\dot{\underaccent{\bar}{\bar{\jangles}}} yields:

[II](I+𝒥Δ𝐪˙)𝐪¨kΔt[𝐪¯˙𝐪¯˙][II](I+𝒞Δ𝐪˙)𝐪˙k\begin{bmatrix}I\\ -I\end{bmatrix}\left(I+\mathcal{J}_{\Delta\dot{\mathbf{q}}}\right){\ddot{\mathbf{q}}}_{k}\Delta t\leq\begin{bmatrix}\mathbf{\dot{\bar{q}}}\\ -\mathbf{\dot{\underaccent{\bar}{\jangle}}}\end{bmatrix}-\begin{bmatrix}I\\ -I\end{bmatrix}\left(I+\mathcal{C}_{\Delta\dot{\mathbf{q}}}\right){\dot{\mathbf{q}}}_{k} (46)

5.2.2 Joint torque

Injecting joint torques 𝝀:=𝝉\boldsymbol{\lambda}\vcentcolon=\boldsymbol{\tau} in (45) with D:=[I,I]TD\vcentcolon=[I,-I]^{T} and 𝝀¯¯:=𝝉¯¯\underaccent{\bar}{\bar{\quantity}}\vcentcolon=\underaccent{\bar}{\bar{\torque}} holds:

[II]𝒥Δ𝝉𝐪¨kΔt[𝝉¯𝝉¯][II](𝝉k+𝒞Δ𝝉𝐪˙k).\begin{bmatrix}I\\ -I\end{bmatrix}\mathcal{J}_{\Delta\boldsymbol{\tau}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\begin{bmatrix}\bar{\boldsymbol{\tau}}\\ -\underaccent{\bar}{\jtorques}\end{bmatrix}-\begin{bmatrix}I\\ -I\end{bmatrix}\left({\boldsymbol{\tau}}_{k}+\mathcal{C}_{\Delta\boldsymbol{\tau}}{\dot{\mathbf{q}}}_{k}\right). (47)
Remark 5.1.

In the experiments with the position-controlled robot HRP4, the torque measurement 𝛕k{\boldsymbol{\tau}}_{k} is too noisy to be used in a constraint. Thus in practice, we applied:

[II]𝒥Δ𝝉𝐪¨kΔt[Δ𝝉¯Δ𝝉¯][II]𝒞Δ𝝉𝐪˙k\begin{bmatrix}I\\ -I\end{bmatrix}\mathcal{J}_{\Delta\boldsymbol{\tau}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\begin{bmatrix}\Delta\bar{\boldsymbol{\tau}}\\ -\Delta\underaccent{\bar}{\jtorques}\end{bmatrix}-\begin{bmatrix}I\\ -I\end{bmatrix}\mathcal{C}_{\Delta\boldsymbol{\tau}}{\dot{\mathbf{q}}}_{k}

which physically means that we are constraining Δ𝛕¯Δ𝛕k+1Δ𝛕¯\Delta\underaccent{\bar}{\jtorques}\leq{\Delta\boldsymbol{\tau}}_{k+1}\leq\Delta\bar{\boldsymbol{\tau}}. In our experiments, we selected Δ𝛕¯=0.4𝛕¯\Delta\bar{\boldsymbol{\tau}}=0.4\bar{\boldsymbol{\tau}} and Δ𝛕¯=0.4𝛕¯\Delta\underaccent{\bar}{\jtorques}=0.4\underaccent{\bar}{\jtorques}.

5.3 Fulfilling contact wrench cone

Considering in (45) all the m1{m_{1}} established contacts using 𝝀:=𝑾\boldsymbol{\lambda}\vcentcolon=\boldsymbol{W}, 𝝀¯¯:=𝟎\underaccent{\bar}{\bar{\quantity}}\vcentcolon=\mathbf{0} and D:=𝒞𝒇D\vcentcolon=\mathcal{C}_{\boldsymbol{f}} yields:

𝒞𝒇𝒥Δ𝒇𝐪¨kΔt𝒞𝒇(𝑾k+𝒞Δ𝒇𝐪˙k),\mathcal{C}_{\boldsymbol{f}}\mathcal{J}_{\Delta\boldsymbol{f}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq-\mathcal{C}_{\boldsymbol{f}}\left({\boldsymbol{W}}_{k}+\mathcal{C}_{\Delta\boldsymbol{f}}{\dot{\mathbf{q}}}_{k}\right), (48)

where the current 𝑾k{\boldsymbol{W}}_{k} is measurable. 𝒞𝒇\mathcal{C}_{\boldsymbol{f}} collects the corresponding force columns from 𝒞\mathcal{C}, see (8).

5.4 Constraining cnetroidal space state jumps

5.4.1 Angular momentum

Suppose the angular momentum is bounded by 𝒄𝒄¯¯\mathcal{L}_{\boldsymbol{c}}\leq\underaccent{\bar}{\bar{\cmmAngularMomentum}}, the angular momentum constraint fits (45) with D:=ID\vcentcolon=I and 𝝀¯¯:=𝒄¯¯\underaccent{\bar}{\bar{\quantity}}\vcentcolon=\underaccent{\bar}{\bar{\cmmAngularMomentum}}:

𝒥Δ𝒄𝐪¨kΔt𝒄¯¯(𝒄k+𝒞Δ𝒄𝐪˙k).\mathcal{J}_{\Delta\mathcal{L}_{\boldsymbol{c}}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\underaccent{\bar}{\bar{\cmmAngularMomentum}}-\left({\mathcal{L}_{\boldsymbol{c}}}_{k}+\mathcal{C}_{\Delta\mathcal{L}_{\boldsymbol{c}}}{\dot{\mathbf{q}}}_{k}\right). (49)

5.4.2 COM velocity

The horizontal COM velocity injected into (45) with 𝝀:=𝒄˙x,y\boldsymbol{\lambda}\vcentcolon=\dot{\boldsymbol{c}}_{x,y}, D:=𝒢𝒄˙x,yD\vcentcolon=\mathcal{G}_{\dot{\boldsymbol{c}}_{x,y}} and 𝝀¯¯:=𝒉𝒄˙x,y\underaccent{\bar}{\bar{\quantity}}\vcentcolon=\boldsymbol{h}_{\dot{\boldsymbol{c}}_{x,y}} holds:

𝒢𝒄˙x,y𝒥Δ𝒄˙x,y𝐪¨kΔt𝒉𝒄˙x,y𝒢𝒄˙x,y(𝒄˙x,y(k)+𝒞Δ𝒄˙x,y𝐪˙k)\mathcal{G}_{\dot{\boldsymbol{c}}_{x,y}}\mathcal{J}_{\Delta\dot{\boldsymbol{c}}_{x,y}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\boldsymbol{h}_{\dot{\boldsymbol{c}}_{x,y}}-\mathcal{G}_{\dot{\boldsymbol{c}}_{x,y}}\left(\dot{\boldsymbol{c}}_{x,y}(k)+\mathcal{C}_{\Delta\dot{\boldsymbol{c}}_{x,y}}{\dot{\mathbf{q}}}_{k}\right) (50)

5.4.3 ZMP

Considering the ZMP 𝝀:=𝒛\boldsymbol{\lambda}\vcentcolon=\boldsymbol{z} in (45) with D:=𝒢𝒛D\vcentcolon=\mathcal{G}_{\boldsymbol{z}} and 𝝀¯¯:=𝟎\underaccent{\bar}{\bar{\quantity}}\vcentcolon=\mathbf{0} results in:

𝒢𝒛𝒥Δ𝑾O𝐪¨kΔt𝒢𝒛(𝑾O(k)+𝒞Δ𝑾O𝐪˙k),\displaystyle\mathcal{G}_{\boldsymbol{z}}\mathcal{J}_{\Delta\boldsymbol{W}_{O}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq-\mathcal{G}_{\boldsymbol{z}}\left(\boldsymbol{W}_{O}(k)+\mathcal{C}_{\Delta\boldsymbol{W}_{O}}{\dot{\mathbf{q}}}_{k}\right), (51)

where 𝑾O(k)\boldsymbol{W}_{O}(k) is computed based on force measurements.

5.4.4 DCM

Last but not least, inject the DCM as quantity 𝝀:=𝝃\boldsymbol{\lambda}\vcentcolon=\boldsymbol{\xi} in (45) with D:=𝒢𝝃D\vcentcolon=\mathcal{G}_{\boldsymbol{\xi}} and 𝝀¯¯:=𝒉𝝃{\underaccent{\bar}{\bar{\quantity}}}\vcentcolon=\boldsymbol{h}_{\boldsymbol{\xi}}:

𝒢𝝃𝒥Δ𝝃𝐪¨kΔt𝒉𝝃𝒢𝝃(𝝃k+𝒞Δ𝝃𝐪˙k).\displaystyle\mathcal{G}_{\boldsymbol{\xi}}\mathcal{J}_{\Delta\boldsymbol{\xi}}{\ddot{\mathbf{q}}}_{k}\Delta t\leq\boldsymbol{h}_{\boldsymbol{\xi}}-\mathcal{G}_{\boldsymbol{\xi}}\left({\boldsymbol{\xi}}_{k}+\mathcal{C}_{\Delta\boldsymbol{\xi}}{\dot{\mathbf{q}}}_{k}\right). (52)

5.5 Impact-aware whole-body QP controller

Given the derived impact-aware constraints (46-52), we extend the baseline QP controller (15):

min𝒙:(𝐪¨,𝒇λ)\displaystyle\min_{\boldsymbol{x}:(\ddot{\mathbf{q}},\boldsymbol{f}_{\lambda})} 𝐪¨Q𝐪¨+iowi𝒆i(𝒙)2\displaystyle\ddot{\mathbf{q}}^{\top}Q\ddot{\mathbf{q}}+\sum_{i\in\mathcal{I}_{o}}w_{i}\|\boldsymbol{e}_{i}(\boldsymbol{x})\|^{2} (53)
s.t.\displaystyle\mbox{s.t.} Joint Space constraints:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Joint Space constraints:}$}
Post-impact joint velocity: (46),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact joint velocity:}~\eqref{eq:jumpconstraint_jvelocities}$},
Post-impact joint torque: (47),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact joint torque:}~\eqref{eq:jumpconstraint_jtorques}$},
Joint position: (4),\displaystyle\text{Joint position: }~\eqref{eq:jangles_constraint},
Joint velocity: (5),\displaystyle\text{Joint velocity: }~\eqref{eq:jvelocities_constraint},
Joint torque : (6),\displaystyle\text{Joint torque : }~\eqref{eq:jtorques_constraint},
Contact Space constraints:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Contact Space constraints:}$}
Post-impact contact wrench cone:(48),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact contact wrench cone:}$}~\eqref{eq:cwc_local_jump_constraint},
Fulfilling Contact wrench cone: (8),\displaystyle\text{Fulfilling Contact wrench cone: }~\eqref{eq:cwc_local},
Centroidal space constraints:\displaystyle\hbox{\pagecolor{blue!20}$\displaystyle\text{ Centroidal space constraints:}$}
Post-impact angular momentum:  (49),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact angular momentum: }~\eqref{eq:postImpact_constraint_angular_momentum}$},
Post-impact COM velocity:  (50),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact COM velocity: }~\eqref{eq:postImpact_constraint_com_vel}$},
Post-impact ZMP:  (51),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact ZMP: }~\eqref{eq:postImpact_constraint_zmp}$},
Post-impact DCM:  (52),\displaystyle\hbox{\pagecolor{gray!20}$\displaystyle\text{Post-impact DCM: }~\eqref{eq:postImpact_constraint_dcm}$},
Further constraints, e.g., collision avoidance:(44).\displaystyle\text{Further constraints, e.g., collision avoidance:}~\eqref{eq:quantity_constraint}.

Given reference contact velocities that are too high to fulfill the constraints after the impact event, the impact-aware constraints would autonomously determine the maximum contact velocity that keeps (53) feasible. We will show with experiments in Sec. 6, the impact-aware QP controller (53) allows for considerably high contact velocities.

Implementation-wise, we require that the high contact velocity tasks are added no earlier than the impact-aware constraints; otherwise, the initial robot configuration might be infeasible for (46 -52).

The high contact velocity tasks are completed upon the detection of the impact. We can stop using the impact-aware constraints by switching the QP controller from (53) to (15). Since the constraints associated with (53) are more conservative than (15), the switch from (53) to (15) does not lead to infeasible solutions.

Remark 5.2.

We recommend selecting a conservative (high) coefficient of restitution. Note that higher coefficients lead to the prediction of more significant jumps, and consequently, to more restrictive impact-aware constraints. Accordingly, the resulting contact velocity will be slower and safe.

In case the selected coefficient of restitution is lower than the real one, the resulting impact-induced jump will be higher than expected. Consequently, the pre-impact velocity may be too fast and violate constraints.

5.6 Illustrative example

Consider a planar manipulator with two rotational joints to illustrate the joint velocity constraint. The link length is l1=l2=0.5l_{1}=l_{2}=0.5 m. The joint velocity limits are 𝐪¯˙=[0.9,0.6]T\mathbf{\dot{\bar{q}}}=[0.9,0.6]^{T} rad/s and 𝐪¯˙=𝐪¯˙\mathbf{\dot{\underaccent{\bar}{\jangle}}}=-\mathbf{\dot{\bar{q}}}. We chose the joint configuration 𝐪k=[0.0,0.2π]T{\mathbf{q}}_{k}=[0.0,0.2\pi]^{T} rad for demonstration. The current end-effector velocity is 𝒙˙k=[0,0.3]T{\boldsymbol{\dot{x}}}_{k}=[0,0.3]^{T} m/s. Note that the robot is non-redundant, and there exists only one solution in joint space that performs a desired end-effector motion: 𝐪˙=J1𝒙˙\dot{\mathbf{q}}=J^{-1}\boldsymbol{\dot{x}} and its derivative 𝐪¨=J1𝒙¨J1J˙𝐪˙\ddot{\mathbf{q}}=J^{-1}\boldsymbol{\ddot{x}}-J^{-1}\dot{J}\dot{\mathbf{q}}. The control loop is supposed to run with Δt=5\Delta t=5 ms.

In this example, the aim is to move the end-effector in the positive y-direction. In the next control cycle, we aim to achieve an artificially high end-effector acceleration 𝒙¨des=[0.0,120.0]T\boldsymbol{\ddot{x}}_{\text{des}}=[0.0,120.0]^{T} m/s2 as exclusive control task (and equal weighting for x- and y-direction). In other words, we can optimally track the end-effector task when minimizing the Euclidean norm J𝐪¨k+J˙𝐪˙k𝒙¨des2\left\lVert J{\ddot{\mathbf{q}}}_{k}+\dot{J}{\dot{\mathbf{q}}}_{k}-\boldsymbol{\ddot{x}}_{\text{des}}\right\rVert^{2}. Contour lines and the grey-to-white fading in Fig 3 represent this objective function. We obtain the QP

𝐪¨k=argmin𝐪¨k𝐪¨kJJ𝐪¨k+2𝐪¨kJ(J˙𝐪˙k𝒙¨des)s.t.(5)[ and (46) for impact-awareness ].\begin{aligned} {\ddot{\mathbf{q}}}_{k}=\underset{{\ddot{\mathbf{q}}}_{k}}{\text{argmin}}\!\!\!\!\quad&{\ddot{\mathbf{q}}}_{k}^{\top}J^{\top}J{\ddot{\mathbf{q}}}_{k}+2{\ddot{\mathbf{q}}}_{k}^{\top}J^{\top}(\dot{J}{\dot{\mathbf{q}}}_{k}-\boldsymbol{\ddot{x}}_{\text{des}})\\ \text{s.t.}\!\!\!\!\quad&\eqref{eq:jvelocities_constraint}\left[\text{ and }\eqref{eq:jumpconstraint_jvelocities}\text{ for impact-awareness }\right]\\ \end{aligned}. (54)

because the scalar term (𝐪˙kJ˙𝒙¨des)(J˙𝐪˙k𝒙¨des)({\dot{\mathbf{q}}}_{k}^{\top}\dot{J}^{\top}-\boldsymbol{\ddot{x}}_{\text{des}}^{\top})(\dot{J}{\dot{\mathbf{q}}}_{k}-\boldsymbol{\ddot{x}}_{\text{des}}) is constant and does not affect the optimization process.

Dotted lines in Fig. 3 depict the classical joint velocity constraint without impact-awareness (5). The resulting feasible polytope in terms of joint accelerations constitutes a rectangle with an offset from the origin.

Next, let us expect an impact at the end-effector in the next iteration. The contact normal corresponds to the y-axis, and we select the coefficient of restitution cr=0.02c_{\text{r}}=0.02. The convex bounds of the impact-aware joint velocity constraint (46) are indicated by dashed lines. Note that this constraint corresponds to a polyhedron with parallel bounds. In practice, we need to superimpose both constraints to obtain a shrunken, convex polytope, shown in blue solid lines. Extreme vertices are indicated by star symbols55 5 The figure was generated using Matlab scripts to convert between halfspace- and vertex-representation. .

The optimal impact-aware solutions found by (54) and send as references to the robot are marked in Fig. 3 by colored circles: employing (5) only as the impact-unaware solution (red) and the impact-aware solution (green) with (5) and (46). We cannot fully achieve the desired end-effector acceleration in both cases. The impact-aware solution is even more conservative because of the additional constraint.

The post-impact joint velocity is given by

𝐪˙k+1+=(I+𝒥Δ𝐪˙)(Δt𝐪¨k+𝐪˙k).{\dot{\mathbf{q}}}_{k+1}^{+}=\left(I+\mathcal{J}_{\Delta\dot{\mathbf{q}}}\right)\left(\Delta t{\ddot{\mathbf{q}}}_{k}+{\dot{\mathbf{q}}}_{k}\right). (55)

Without impact-awareness 𝐪˙k+1+=[0.618,1.345]T{\dot{\mathbf{q}}}_{k+1}^{+}=[-0.618,1.345]^{T} rad/s violates the second joint’s velocity limit. Instead, with impact-awareness 𝐪˙k+1+=[0.281,0.600]T{\dot{\mathbf{q}}}_{k+1}^{+}=[-0.281,0.600]^{T} rad/s. The deceleration ensures the satisfaction of the joint velocity constraint in the next iteration.

Figure 3: Feasible polytopes related to the joint velocity constraint for a 2-DoF planar manipulator. Circles indicate solutions of the QP (54).

6 Experiments

We validate our impact-aware QP controller (53) on the full-size humanoid robot HRP-4 with 3434 actuated joints. Two sets of experiments are performed; each has different highlights and fulfills the constraints imposed by the impact event. We encourage interested readers to check the experiment videos66 6 Online: https://youtu.be/v1Jfy8-jiwE.

  1. Experiment 1

    Pushing a concrete wall with the maximum contact velocity –see the illustration in Fig. 4 and experiment setup in Sec. 6.1, with the following highlights:

    1. (H-1.1)

      Impact-aware control updating the contact velocity in real-time instead of the desired, infeasible 0.80.8 m/s. At the impact time, the contact velocity is measured to be 0.350.35 m/s.

    2. (H-1.2)

      High contact velocity jump and subsequent high contact force jump (137137 N).

    3. (H-1.3)

      Robustness to the uncertain location of the wall along the pre-defined contact normal.

    4. (H-1.4)

      All the impact-aware constraints (46-52) are fulfilled despite the relatively high contact velocity and contact force jumps.

  2. Experiment 2

    Grabbing a cardboard box, see the illustration in Fig. 6 and experiment setup in Sec. 6.2, with the following highlights:

    1. (H-3.1)

      Swift box-grabbing motion without stopping for establishing contacts.

    2. (H-3.2)

      Two simultaneous impacts.

For Experiment 1 we first present the detailed experiment setup and confirm the highlights Experiment 1(H-1.1) and Experiment 1(H-1.2). Then we check the feasibility Experiment 1(H-1.4) in joint space (46-47) and and centroidal space (50-52) in different subsections.

In the internal visualization related to experiment video of Option C, the wall location does not match the reality. However, the controller is not affected as it is independent of the exact impact location Experiment 1(H-1.3).

For Experiment 2, the highlights Experiment 2(H-3.1) and Experiment 2(H-3.2) are demonstrated by the contact velocity profile in Fig. (10(a)-10(b)) and the contact force profile Fig. (10(c)-10(d)).

StartImpactAdmittanceDetachResetRefer to caption
Figure 4: Snapshot of Experiment 1 with Option C: the HRP-4 robot hit the wall with contact velocity 0.350.35 m/s.
(15)Start(53)Impact(15)Admittance(15)Detach(15)ResetImpact detection (a) Experiment 1 (15)Start(53)Grab box   (15)Manipulate box(15)Drop box(15)ResetImpact detection (b) Experiment 2
Figure 5: Finite state machines of Experiment 1 and Experiment 2 with the corresponding snapshots in Fig. 4 and 6 respectively. The impact-aware QP (53) is applied in the green-highlighted Impact states. The contact (or contacts for box-grabbing) are set, and admittance tasks are activated in the blue-highlighted states Admittance and Manipulate box.
StartGrab boxManipulate boxDrop boxResetRefer to caption
Figure 6: Snapshot of Experiment 2: the HRP-4 robot grabbing a box with contact velocities 0.150.15 m/s at both hands.
Refer to caption (a) Experiment 1 Right arm shoulder-roll-joint velocity Refer to caption (b) Experiment 1 Right arm elbow joint Velocity
Refer to caption (c) Experiment 1 Right arm shoulder-roll-joint torque Refer to caption (d) Experiment 1 Right arm elbow joint torque
Refer to caption (e) Experiment 1 contact velocity jump Refer to caption (f) Experiment 1 contact force jump
Figure 7: Impact-aware joint space and contact space constraints of Experiment 1 with Option C.
Refer to caption (a) Experiment 1 xx-axis ZMP 𝒛x\boldsymbol{z}_{x} Refer to caption (b) Experiment 1 yy-axis ZMP 𝒛y\boldsymbol{z}_{y}
Refer to caption (c) Experiment 1 xx-axis COM velocity 𝒄˙x\dot{\boldsymbol{c}}_{x} Refer to caption (d) Experiment 1 Y-axis COM velocity 𝒄˙y\dot{\boldsymbol{c}}_{y}
Figure 8: Impact-aware centroidal space constraints of Experiment 1 with Option C.
Refer to caption (a) Experiment 1 with Option A: contact Velocity Refer to caption (b) Experiment 1 with Option A: contact force
Refer to caption (c) Experiment 1 with Option A: the ZMP is restricted in the support polygon Refer to caption (d) Experiment 1 with Option A: xx-axis ZMP
Figure 9: Impact-aware constraints of Experiment 1 with Option A.
Refer to caption (a) Experiment 2 Left arm contact velocity Refer to caption (b) Experiment 2 Right arm contact velocity
Refer to caption (c) Experiment 2 Left arm contact force jump Refer to caption (d) Experiment 2 Right arm contact force jump
Figure 10: Contact velocities and contact force jumps of Experiment 2.

6.1 Pushing a wall

We designed Experiment 1 in order to show that the impact-aware constraints enable the QP to autonomously determine the maximum contact velocity online, regardless of an infeasible high reference contact velocity.

In Sec. 6.1.4, we compare three ZMP constraint formulations: each restricts the ZMP differently:

  1. Option A

    : the feet’s support polygon: 𝒛𝒮s\boldsymbol{z}\in\mathcal{S}_{s}.

  2. Option B

    : the multi-contact ZMP area: 𝒛𝒮𝒛\boldsymbol{z}\in\mathcal{S}_{\boldsymbol{z}}.

  3. Option C

    : the static COM equilibrium area: 𝒛𝒮𝒄\boldsymbol{z}\in\mathcal{S}_{\boldsymbol{c}}.

We conclude that Option C leads to the highest contact velocity mentioned in Experiment 1(H-1.1).

6.1.1 Experimental setup

We present the technical details structured in the following three aspects.

Robot configuration

The humanoid is initialized with a standing posture in double coplanar supports and commanded its right gripper’s palm to hit a wall in front of it with an infeasible high reference contact velocity (0.80.8 m/s), see Fig. 7(e). The hand was prepared by mounting a 3D printed rigid plastic palm of 3 cm thickness.

Parameter configuration

The ATI-45 force-torque sensors (mounted at the ankles and the wrists) are read at 200200 Hz, thus, we select the impact duration δt\delta t as 55 ms. The QP controller runs at the same frequency with sampling period Δt=5\Delta t=5 ms. The friction coefficient of the established contacts is 0.70.777 7 Note that the coefficient of friction does not affect the solution obtained by the IDQP.. The coefficient of restitution is cr=0.02c_{\text{r}}=0.02. We select H=IH=I in the IDQP (28), i.e. γa=1\gamma_{a}=1, γb=1\gamma_{b}=1 and not using the term 𝐌T𝐌\mathbf{M}^{T}\mathbf{M}.

Remark 6.1.

Uncertain coefficient of restitution cr~\widetilde{c_{\text{r}}} leads to an uncertain prediction of the end-effector velocity jump Δ𝐱˙~k+1\Delta{\widetilde{\boldsymbol{\dot{x}}}}_{k+1} due to (17), and accordingly, to uncertain predictions 𝐮~=[Δ𝐪˙~,𝛊~]\widetilde{\boldsymbol{u}}^{*}=[\Delta\widetilde{\dot{\mathbf{q}}}^{*}{}^{\top},\widetilde{\boldsymbol{\iota}}^{*}{}^{\top}]^{\top} due to (29). Given cr~\widetilde{c_{\text{r}}} is a scalar, the errors

𝒆𝒖=[𝒆Δ𝐪˙𝒆𝜾]=[Δ𝐪˙~Δ𝐪˙𝜾~𝜾]\boldsymbol{e}_{\boldsymbol{u}^{*}}=\begin{bmatrix}\boldsymbol{e}_{\Delta\dot{\mathbf{q}}^{*}}\\ \boldsymbol{e}_{\boldsymbol{\iota}^{*}}\end{bmatrix}=\begin{bmatrix}\Delta\widetilde{\dot{\mathbf{q}}}^{*}-\Delta\dot{\mathbf{q}}^{*}\\ \widetilde{\boldsymbol{\iota}}^{*}-\boldsymbol{\iota}^{*}\end{bmatrix}

are proportional to the error

𝒆cr=(1+cr~)(1+cr)=cr~cr.\boldsymbol{e}_{c_{\text{r}}}=(1+\widetilde{c_{\text{r}}})-(1+c_{\text{r}})=\widetilde{c_{\text{r}}}-c_{\text{r}}.

Through the analysis from several trial-runs, we choose the coefficient of restitution cr=0.02c_{\text{r}}=0.02, which leads to a reasonable prediction of contact force jump Δ𝐟\Delta\boldsymbol{f}, see Fig. 7(f). We can observe Δ𝐟\Delta\boldsymbol{f} from the ATI sensors more precisely than observing the joint velocity jumps Δ𝐪˙\Delta\dot{\mathbf{q}} from encoders.

Task description

Fig. 5(a) reports the finite state machine (FSM) that is utilized to modulate and change the behavior of the robot. The Start state initializes the right palm to be parallel to the wall. The impact-aware QP (53) is activated in the Impact state, where in each time step the impact-aware QP (53) autonomously identifies the current maximum contact velocity given the infeasible reference contact velocity 0.80.8 m/s, see Fig. 7(e). The transition from Impact state to Admittance state depends upon the impact detection criterion, i.e., 2020 N measured by the force sensor. During the Admittance state, the robot regulates the contact force to 1515 N for 1414 seconds, thereby stabilizing the contact. Then the Detach state releases the contact and the Reset state returns to the initial configuration.

It is a good practice to regulate the contact wrenches to stabilize the under-actuated robot center of mass dynamics, e.g. Caron et al. 2019. Yet, in order to observe impact-induced state jumps without interference, especially the contact force jumps and the ZMP jumps, we decided not to apply admittance behavior for the established contacts (feet) in the experiments. Instead, we apply task-space position control for the feet.

6.1.2 Contact velocity regulation

Given the infeasible high reference contact velocity 0.80.8 m/s displayed by purple dashed line in Fig. 7(e), the QP controller (53) updates the feasible contact velocity (displayed in orange line) concerning the impact-awareness in each time step. Thus we do not rely on a pre-specified contact location Experiment 1(H-1.3).

The measured contact force jump is close to its prediction in Fig. 7(f), which indicates a reasonable coefficient of restitution crc_{\text{r}}. see Remark. 6.1.

6.1.3 Joint space constraints

We present plots from two out of all the joints, namely the right arm shoulder roll joint and the elbow joint. In Fig. 7(a) and Fig. 7(b) the measured joint velocities fulfill the limits (44). To improve the visibility while scaling the figures properly, we ignored the well fulfilled joint velocity bounds {2.052,2.052}\{-2.052,2.052\} rad/s in Fig. 7(a) and {2.649,2.649}\{-2.649,2.649\} rad/s in Fig. 7(b).

The HRP-4 is not equipped with joint torque sensors. Thus we obtain the torque jumps using the well-known relation: 𝝉=J𝒇\boldsymbol{\tau}=J^{\top}\boldsymbol{f}. We selected Δ𝝉¯=0.4𝝉¯\Delta\bar{\boldsymbol{\tau}}=0.4\bar{\boldsymbol{\tau}} and Δ𝝉¯=0.4𝝉¯\Delta\underaccent{\bar}{\jtorques}=0.4\underaccent{\bar}{\jtorques} for constraint (47). In Fig. 7(c) and Fig. 7(d), the joint torques are also well-bounded in line with (44).

6.1.4 ZMP constraint

The feasible ZMP area is recently extended to general multi-contact settings, yet considering static contacts. Despite the well-established push recovery strategies for planar bipedal maneuvers by Stephens 2007; Sugihara 2009, in the case of an impact event resulting in a discontinuous change of the multi-contact situation, it is unclear which bounds apply to the ZMP. Running comparative experiment trials, we investigated three formulations of the ZMP bounding polygon illustrated in Fig. 11. These are injected into the impact-aware ZMP constraint (51).

Option A: The ZMP is restricted to stay in the support polygon 𝒮s\mathcal{S}_{s} defined by the feet contacts: 𝒛𝒮s\boldsymbol{z}\in\mathcal{S}_{s}. In other words, the classical ZMP area for coplanar contacts is applied (Vukobratović and Borovac 2004), and the contact to be established by the hand is ignored. Fig. 9 plots the results. This choice leads to a conservative contact velocity 0.110.11 m/s as shown in Fig. 9(a) and a small contact force jump 3737 N displayed by Fig. 9(b).

Option B: We restrict the ZMP within the multi-contact ZMP area 𝒮𝒛\mathcal{S}_{\boldsymbol{z}} defined by the feet contacts and the hand contact as formulated in Caron et al. 2017: 𝒛𝒮𝒛\boldsymbol{z}\in\mathcal{S}_{\boldsymbol{z}}. Notice that we apply an optimized version that meets real-time requirements. Compared to Option A, we observe a slightly higher contact velocity 0.170.17 m/s. Due to the similarity, we do not plot figures for this trial run.

Option C: Finally, given the contacts of feet and the hand, we restrict the ZMP within the static COM equilibrium area 𝒮𝒄\mathcal{S}_{\boldsymbol{c}}: 𝒛𝒮𝒄\boldsymbol{z}\in\mathcal{S}_{\boldsymbol{c}}, for more details on 𝒮𝒄\mathcal{S}_{\boldsymbol{c}}, refer to Bretl and Lall 2008. We employ an optimized algorithm to compute 𝒮𝒄\mathcal{S}_{\boldsymbol{c}}. Fig. 12 illustrates the evolution over time of the real ZMP (9) and the predicted ZMP 𝒛+Δ𝒛\boldsymbol{z}+\Delta\boldsymbol{z} (41). Fig. 8 reports further results. The robot applies the contact velocity 0.350.35 m/s, which is the highest among all trials Experiment 1(H-1.1), observing the associated contact force jump 137137 N Experiment 1(H-1.2). We note that all constraints are fulfilled, the hardware does not break and the robot maintains balance Experiment 1(H-1.4).

Refer to caption
Figure 11: Illustration of the multi-contact ZMP area 𝒮𝒛\mathcal{S}_{\boldsymbol{z}}, that defines Option B (light green polygon), and the multi-contact static COM equilibrium area 𝒮𝒄\mathcal{S}_{\boldsymbol{c}}, that defines Option C (blue polygon). The light blue arrow on the right hand indicates the contact force jump. The red area indicates the DCM area: 𝒮𝝃=𝒮𝒛𝒮𝒄\mathcal{S}_{\boldsymbol{\xi}}=\mathcal{S}_{\boldsymbol{z}}\bigcap\mathcal{S}_{\boldsymbol{c}}.

6.1.5 COM velocity constraints

As we do not have a well defined bound for the COM velocity in Fig. (8(c)-8(d)) we only plot the actual value against the predicted impact-induced state jumps. The important observation is that the actual jump is close to the prediction.

For plots in Sec. 6.1.4 and Sec. 6.1.5, there exists a general observation that along with the contact normal direction (the xx-axis plots), predictions of the floating-base state jumps can bound the actual jumps, and the discrepancies are relatively small. Since our impact model (17) considers only one-dimensional/directional impact, predictions of lateral direction (yy-axis plots) are not as good. We consider this acceptable for this study since the magnitude of the lateral direction (yy-axis plots) jumps are much smaller.

6.2 Box-grabbing with a swift motion

In Experiment 2, the HRP-4 robot lifts a cardboard box using swift motion without reducing its hands’ speed to establish contacts.

6.2.1 Experimental setup

Robot configuration

The initial robot configuration is the same as in Experiment 1. Whereas instead of a concrete wall, there is a table and a cardboard box in front of the robot. We mounted a felt on the plastic palm to increase the friction with the cardboard.

Task description

Fig. 5(b) shows that Experiment 2 follows a similar FSM as Experiment 1.

The Start state raises the two palms; then the Grab box state moves the two palms following pre-defined trajectories considering an approximate location and size of the box. The two hands contacted the box with velocities at 0.150.15 m/s, and all the constraints are respected. Upon the same 6.1.1, the Manipulate box state activates two admittance tasks that regulate the contact forces to 5050 N. The Drop box state moves the two palms following another set of pre-defined trajectories to release the contacts and then resume the initial robot configuration in the Reset state.

6.2.2 Results

We plotted the contact velocities for the left and right arms in Fig. 10(a) and Fig. 10(b), respectively. In both cases, the contact velocities are close to the reference 0.150.15 m/s. Thus we say the contacts are established without either slowing down or following pre-defined deceleration trajectories Experiment 2(H-3.1). Comparing the impact detection time, we can find that the two impacts are simultaneous Experiment 2(H-3.2).

The impact-induced contact force jumps of left and right arms are presented in Fig. 10(c) and Fig. 10(d), which are smaller compared to Experiment 1 due to the slower reference contact velocities.

Like Experiment 1, the contact force jumps are well predicted (with a bit conservative margin). On the other hand different from Experiment 1, the reference contact velocities are well tracked (instead of reducing from 0.80.8 m/s to 0.350.35 m/s) as the impact-induced state jumps will not break the impact-aware constraints (48-52).

It is important to note that we here present only safe experiments. Demonstrating a QP failure due to a pre-impact velocity that was too large would result in hardware failure or a severe fall, which we can not afford with our robot.

Refer to caption
Figure 12: In Experiment 1, the ZMP is restricted in the multi-contact COM area 𝒮𝒄\mathcal{S}_{\boldsymbol{c}} which is updated in every control cycle according to the current posture. This polygon deviates from Fig. 11 as it shows a slightly different stance.

7 Conclusion and future work

The primary and original contribution of this work is in enabling inverse dynamic tasked-based QP control to achieve robot motions with impacts safely. Our approach is capable of robustly executing physical contact established at non-zero speed by optimizing pre-impact velocities. In the vicinity of impact, the controller encompasses in a one-iteration ahead, the jumps that would be induced by a desired impact (shall it occur) and enforce all the constraints to be aware of (i.e., handle) subsequent jumps in the state velocity and contact forces constraint. As part of the prediction process, impact propagation along the constrained arborescent kinematic tree is considered. Our current framework ensures hardware feasibility and the maintenance of pre-existing contacts by autonomously determining the maximum yet safe contact velocity reference. It applies to floating-base robots in general multi-contact situations.

Our approach does not rely on planning contact at a specific location or time. Instead, it requires only the contact surface normal to be known. We achieved high contact velocities, and large force jumps in the experiments conducted with an HRP-4 humanoid. To our best knowledge, this is the first approach that performs impact-aware whole-body control based on constrained quadratic optimization.

Now that we confirmed the main concept and encapsulated impact-aware tasks in our general multi-objective and multi-sensory task-space QP control, we plan to investigate the following shortcomings: (i) investigate more advanced impact models that include friction in 3D; (ii) develop more refined impact propagation models, namely those based on energy spreading and assess them through ground-truth instrumentations; (iii) a more in-depth investigation of dynamic equilibrium under impacts; (iv) off-line and on-line identification of impact pertinent parameters to refine the controller performance; (v) sliding and tangential impacts so as, for example, to approach grabbed objects that are moving.

Acknowledgment

This work was funded by the H2020 EU project I-AM. Yuquan Wang is partially supported by the National Natural Science Foundation of China (U1613216) and Shenzhen Fundamental Research Grant (JCYJ20180508162406177) through the Chinese University of Hong-Kong, Shenzhen.

The authors wish to thank Pierre Gergondet for his continuous support in setting up the mc_rtc controller and Stéphane Caron for many fruitful discussions regarding the implementation of multi-contact ZMP and DCM.

References

  • Aghasadeghi et al. (2012) Aghasadeghi N, Long A and Bretl T (2012) Inverse optimal control for a hybrid dynamical system with impacts. In: IEEE International Conference on Robotics and Automation. pp. 4962–4967.
  • Battaglia et al. (2009) Battaglia M, Blanchet L, Kheddar A, Kajita S and Yokoi K (2009) Combining haptic sensing with safe interaction. In: IEEE/RSJ International Conference on Intelligent Robots and Systems. pp. 231–236.
  • Bergés and Bowling (2005) Bergés P and Bowling A (2005) Impact forces in legged robot locomotion. In: IEEE International Conference on Robotics and Automation. pp. 3745–3751.
  • Bouyarmane et al. (2019) Bouyarmane K, Chappellet K, Vaillant J and Kheddar A (2019) Quadratic programming for multirobot and task-space force control. IEEE Transactions on Robotics 35(1): 64–77.
  • Bouyarmane and Kheddar (2018) Bouyarmane K and Kheddar A (2018) On weight-prioritized multitask control of humanoid robots. IEEE Transactions on Automatic Control 63(6): 1632–1647.
  • Bretl and Lall (2008) Bretl T and Lall S (2008) Testing static equilibrium for legged robots. IEEE Transactions on Robotics 24(4): 794–807.
  • Brogliato (2003) Brogliato B (2003) Some perspectives on the analysis and control of complementarity systems. IEEE Transactions on Automatic Control 48(6): 918–935.
  • Caron et al. (2019) Caron S, Kheddar A and Tempier O (2019) Stair climbing stabilization of the hrp-4 humanoid robot using whole-body admittance control. In: IEEE International Conference on Robotics and Automation. pp. 277–283.
  • Caron et al. (2015) Caron S, Pham QC and Nakamura Y (2015) Stability of surface contacts for humanoid robots: Closed-form formulae of the contact wrench cone for rectangular support areas. In: IEEE International Conference on Robotics and Automation. pp. 5107–5112.
  • Caron et al. (2017) Caron S, Pham QC and Nakamura Y (2017) Zmp support areas for multi-contact mobility under frictional constraints. IEEE Transactions on Robotics 33(1): 67–80.
  • Dehio (2018) Dehio N (2018) Prioritized Multi-Objective Robot Control. PhD dissertation, Technical University Braunschweig, Germany. URL https://publikationsserver.tu-braunschweig.de/receive/dbbs_mods_00066108.
  • Dietrich and Ott (2020) Dietrich A and Ott C (2020) Hierarchical impedance-based tracking control of kinematically redundant robots. IEEE Transactions on Robotics 36(1): 204–221.
  • Djeha et al. (2020) Djeha M, Tanguy A and Kheddar A (2020) Adaptive-gains enforcing constraints in closed-loop qp control URL https://hal.archives-ouvertes.fr/hal-02490195/file/RAL_IROS_DJEHA.pdf.
  • Englsberger et al. (2018) Englsberger J, Mesesan G, Ott C and Albu-Schäffer A (2018) Dcm-based gait generation for walking on moving support surfaces. In: IEEE-RAS International Conference on Humanoid Robots. pp. 1–8.
  • Grizzle et al. (2014) Grizzle JW, Chevallereau C, Sinnet RW and Ames AD (2014) Models, feedback control, and open problems of 3d bipedal robotic walking. Automatica 50(8): 1955–1988.
  • Haddadin et al. (2009) Haddadin S, Albu-Schäffer A and Hirzinger G (2009) Requirements for safe robots: Measurements, analysis and new insights. The International Journal of Robotics Research 28(11-12): 1507–1527.
  • Heck et al. (2016) Heck D, Saccon A, Van de Wouw N and Nijmeijer H (2016) Guaranteeing stable tracking of hybrid position-force trajectories for a robot manipulator interacting with a stiff environment. Automatica 63: 235–247.
  • Hildebrandt et al. (2019) Hildebrandt AC, Wittmann R, Sygulla F, Wahrmann D, Rixen D and Buschmann T (2019) Versatile and robust bipedal walking in unknown environments: real-time collision avoidance and disturbance rejection. Autonomous Robots 43(8): 1957–1976.
  • Hu et al. (2007) Hu G, Makkar C and Dixon WE (2007) Energy-based nonlinear control of underactuated euler-lagrange systems subject to impacts. IEEE Transactions on Automatic Control 52(9): 1742–1748.
  • Hurmuzlu et al. (2004) Hurmuzlu Y, Génot F and Brogliato B (2004) Modeling, stability and control of biped robots–a general framework. Automatica 40(10): 1647 – 1664.
  • Jia et al. (2019) Jia YB, Gardner M and Mu X (2019) Batting an in-flight object to the target. The International Journal of Robotics Research 38(4): 451–485.
  • Jia and Wang (2017) Jia YB and Wang F (2017) Analysis and computation of two body impact in three dimensions. Journal of Computational and Nonlinear Dynamics 12(4): 041012.
  • Johnson et al. (2016) Johnson AM, Burden SA and Koditschek DE (2016) A hybrid systems model for simple manipulation and self-manipulation systems. The International Journal of Robotics Research 35(11): 1354–1392.
  • Kajita et al. (2010) Kajita S, Morisawa M, Miura K, Nakaoka S, Harada K, Kaneko K, Kanehiro F and Yokoi K (2010) Biped walking stabilization based on linear inverted pendulum tracking. In: IEEE/RSJ International Conference on Intelligent Robots and Systems. pp. 4489–4496.
  • Konno et al. (2011) Konno A, Myojin T, Matsumoto T, Tsujita T and Uchiyama M (2011) An impact dynamics model and sequential optimization to generate impact motions for a humanoid robot. The International Journal of Robotics Research 30(13): 1596–1608.
  • Koolen et al. (2012) Koolen T, De Boer T, Rebula J, Goswami A and Pratt J (2012) Capturability-based analysis and control of legged locomotion, part 1: Theory and application to three simple gait models. The international journal of robotics research 31(9): 1094–1113.
  • Kuindersma et al. (2016) Kuindersma S, Deits R, Fallon M, Valenzuela A, Dai H, Permenter F, Koolen T, Marion P and Tedrake R (2016) Optimization-based locomotion planning, estimation, and control design for the atlas humanoid robot. Autonomous Robots 40(3): 429–455.
  • Lee and Goswami (2012) Lee SH and Goswami A (2012) A momentum-based balance controller for humanoid robots on non-level and non-stationary ground. Autonomous Robots 33(4): 399–414.
  • Liu et al. (2016) Liu M, Lober R and Padois V (2016) Whole-body hierarchical motion and force control for humanoid robots. Autonomous Robots 40(3): 493–504.
  • Lober et al. (2019) Lober R, Sigaud O and Padois V (2019) Task Feasibility Maximization using Model-Free Policy Search and Model-Based Whole-Body Control. Frontiers in Robotics and AI Preprint.
  • Manchester et al. (2011) Manchester IR, Mettin U, Iida F and Tedrake R (2011) Stable dynamic walking over uneven terrain. The International Journal of Robotics Research 30(3): 265–279.
  • Nava et al. (2016) Nava G, Romano F, Nori F and Pucci D (2016) Stability analysis and design of momentum-based controllers for humanoid robots. In: IEEE/RSJ International Conference on Intelligent Robots and Systems. pp. 680–687.
  • Nenchev (2013) Nenchev DN (2013) Reaction null space of a multibody system with applications in robotics. Mechanical Sciences 4(1): 97–112.
  • Nenchev (2018) Nenchev DN (2018) The momentum equilibrium principle: Foot contact stabilization with relative angular momentum/velocity. In: IEEE-RAS International Conference on Humanoid Robots. pp. 17–24.
  • Or and Ames (2010) Or Y and Ames AD (2010) Stability and completion of zeno equilibria in lagrangian hybrid systems. IEEE Transactions on Automatic Control 56(6): 1322–1336.
  • Orin et al. (2013) Orin DE, Goswami A and Lee SH (2013) Centroidal dynamics of a humanoid robot. Autonomous robots 35(2-3): 161–176.
  • Pagilla and Yu (2001) Pagilla PR and Yu B (2001) A stable transition controller for constrained robots. IEEE/ASME transactions on mechatronics 6(1): 65–74.
  • Partridge and Spong (2000) Partridge CB and Spong MW (2000) Control of planar rigid body sliding with impacts and friction. The International Journal of Robotics Research 19(4): 336–348.
  • Pashah et al. (2008) Pashah S, Massenzio M and Jacquelin E (2008) Prediction of structural response for low velocity impact. International Journal of Impact Engineering 35(2): 119–132.
  • Posa et al. (2015) Posa M, Tobenkin M and Tedrake R (2015) Stability analysis and control of rigid-body systems with impacts and friction. IEEE Transactions on Automatic Control 61(6): 1423–1437.
  • Reher et al. (2016) Reher J, Cousineau EA, Hereid A, Hubicki CM and Ames AD (2016) Realizing dynamic and efficient bipedal locomotion on the humanoid robot durus. In: IEEE International Conference on Robotics and Automation. pp. 1794–1801.
  • Rijnen et al. (2017) Rijnen M, de Mooij E, Traversaro S, Nori F, van de Wouw N, Saccon A and Nijmeijer H (2017) Control of humanoid robot motions with impacts: Numerical experiments with reference spreading control. In: IEEE International Conference on Robotics and Automation. pp. 4102–4107.
  • Singh and Featherstone (2020) Singh BRP and Featherstone R (2020) Mechanical shock propagation reduction in robot legs. IEEE Robotics and Automation Letters 5(2): 1183–1190.
  • Sreenath et al. (2011) Sreenath K, Park HW, Poulakakis I and Grizzle JW (2011) A compliant hybrid zero dynamics controller for stable, efficient and fast bipedal walking on MABEL. The International Journal of Robotics Research 30(9): 1170–1193.
  • Stanisic and Fernández (2012) Stanisic RZ and Fernández ÁV (2012) Adjusting the parameters of the mechanical impedance for velocity, impact and force control. Robotica 30(4): 583–597.
  • Stephens (2007) Stephens B (2007) Humanoid push recovery. In: IEEE-RAS International Conference on Humanoid Robots. pp. 589–595.
  • Stewart (2000) Stewart DE (2000) Rigid-body dynamics with friction and impact. SIAM review 42(1): 3–39.
  • Sugihara (2009) Sugihara T (2009) Standing stabilizability and stepping maneuver in planar bipedalism based on the best com-zmp regulator. In: International Conference on Robotics and Automation. pp. 1966–1971.
  • Tsujita et al. (2008) Tsujita T, Konno A, Komizunai S, Nomura Y, Owa T, Myojin T, Ayaz Y and Uchiyama M (2008) Analysis of nailing task motion for a humanoid robot. In: IEEE/RSJ International Conference on Intelligent Robots and Systems. Nice, France, pp. 1570–1575.
  • Vanderborght et al. (2013) Vanderborght B, Albu-Schäffer A, Bicchi A, Burdet E, Caldwell DG, Carloni R, Catalano M, Eiberger O, Friedl W, Ganesh G et al. (2013) Variable impedance actuators: A review. Robotics and autonomous systems 61(12): 1601–1614.
  • Vukobratović and Borovac (2004) Vukobratović M and Borovac B (2004) Zero-moment point—thirty five years of its life. International journal of humanoid robotics 1(01): 157–173.
  • Wang and Kheddar (2019) Wang Y and Kheddar A (2019) Impact-friendly robust control design with task-space quadratic optimization. In: Proceedings of Robotics: Science and Systems, volume 15. Freiburg, Germany, p. 32.
  • Wang et al. (2019) Wang Y, Tanguy A, Gergondet P and Kheddar A (2019) Impact-aware multi-contact motion generation with a quadratic optimization controller. In: IEEE-RAS International Conference on Humanoid Robots. Toronto, Canada.
  • Wensing et al. (2017) Wensing PM, Wang A, Seok S, Otten D, Lang J and Kim S (2017) Proprioceptive actuator design in the mit cheetah: Impact mitigation and high-bandwidth physical interaction for dynamic legged robots. IEEE Transactions on Robotics 33(3): 509–522.
  • Wieber et al. (2016) Wieber PB, Tedrake R and Kuindersma S (2016) Modeling and control of legged robots. In: Springer handbook of robotics. Springer, pp. 1203–1234.
  • Wiedebach et al. (2016) Wiedebach G, Bertrand S, Wu T, Fiorio L, McCrory S, Griffin R, Nori F and Pratt J (2016) Walking on partial footholds including line contacts with the humanoid robot atlas. In: IEEE-RAS International Conference on Humanoid Robots. pp. 1312–1319.
  • Zheng and Hemami (1985) Zheng YF and Hemami H (1985) Mathematical modeling of a robot collision with its environment. Journal of Field Robotics 2(3): 289–307.