Root PDF
Root PDF
Steve Tonneau, Andrea del Prete, Julien Pettré, Chonhyon Park, Dinesh
Manocha, Nicolas Mansard
Abstract—We present a contact planner for complex legged follows the right foot). Efficient tools such as the capture
locomotion tasks: standing up, climbing stairs using a handrail, point [2] can be used to compute the next contact location.
crossing rubble and getting out of a car. The need for such a In the general case planning complex contact interactions is
planner was shown at the Darpa Robotics Challenge, where such
behaviors could not be demonstrated (except for egress). extremely challenging: At any given time a contact must be
Current planners suffer from their prohibitive algorithmic chosen between infinitely many possibilities (often a combina-
complexity, because they deploy a tree of robot configurations torial discrete choice for the effector and contact surface, and
projected in contact with the environment. a continuous choice for the contact location). Furthermore, a
We tackle this issue by introducing a reduction property: contact choice constrains kinematically and dynamically the
the reachability condition. This condition defines a geometric
approximation of the contact manifold, which is of low dimension, possible motions, and there is no analytical way to verify
presents a Cartesian topology, and can be efficiently sampled whether this choice brings the robot one step closer to the
and explored. The hard contact planning problem can then be desired goal or to a dead end, especially in the presence of
decomposed into two sub-problems: first, we plan a path for the obstacles; we say that the contact manifold is foliated [3]. The
root without considering the whole-body configuration, using a foliation prevents the use of efficient sampling-based planners
sampling-based algorithm; then, we generate a discrete sequence
of whole-body configurations in static equilibrium along this path, for two reasons. (i) First, each sub-manifold of the foliation
using a deterministic contact-selection algorithm. has a zero measure and cannot be directly sampled. A sample
The reduction breaks the algorithm complexity encountered in is rather obtained by sampling a free flying configuration and
previous works, resulting in the first interactive implementation explicitly projecting it in contact (which is a costly numerical
of a contact planner (open source). While no contact planner has operation). (ii) Second, the foliated topology turns the explo-
yet been proposed with theoretical completeness, we empirically
show the interest of our framework: in a few seconds, with high ration by spreading a graph of configurations (probabilistic
success rates, we generate complex contact plans for various road-map, rapidly exploring random trees) into an inefficient
scenarios and two robots, HRP-2 and HyQ. These plans are random process, where many useless nodes are sampled on
validated either in dynamic simulations, or on the real HRP- parallel sub-manifolds. The total algorithmic complexity of
2 robot. classical contact planners comes from both the number of
Index Terms—Multi contact locomotion, centroidal dynamics, graph nodes sampled during exploration (ii) and the cost of
Humanoid robots, legged robots, motion planning the projection when sampling new configurations (i).
I. I NTRODUCTION
For this reason previous contributions having demonstrated
P1 P2
a b c
Fig. 1. Overview of our two-stage framework. Given a path request between start and goal positions (left image), P1 is the problem of computing a guide
path in the space of equilibrium feasible root configurations. We achieve this by defining a geometric condition, the reachability condition (abstracted with the
transparent cylinders on the middle image). P2 is then the problem of extending the path into a discrete sequence of contact configurations using an iterative
algorithm (right image).
A. State of the art be decoupled to reduce the complexity. The feasibility and
Additionally to robotics, acyclic motion planning is also interest of the decoupling has been shown by Escande et
a problem of interest in neurosciences, biomechanics, and al. [17] who manually set up a rough root guide path (i.e.
virtual character animation. Early contributions in the latter an ad-hoc solution to P1 ), and then addressed P2 as the
field rely on local adaptation of motion graphs [6], or ad-hoc combinatorial computation of a feasible contact sequence in
construction of locomotion controllers [7]. These approaches the neighborhood of the guide. A solution could then be
are by definition not able to discover complex behaviors in found, but at the cost of prohibitive computation times (up
unforeseen contexts. to several hours) for constraining scenarios. This approach
is suboptimal because the quality of the motion depends
The issue of planning acyclic contacts was first completely
on the quality of the guide path. Bouyarmane et al. [18]
described by Bretl [4]. The issue requires the simultaneous
precisely focused on automatically computing a guide path
handling of two sub-problems, P1 : planning a guide path for
with guarantees of equilibrium feasibility, by extending key
the root of the robot in SE(3); and P2 : planning a discrete
frames of the path into whole-body configurations in static
sequence of equilibrium configurations along the path. A third
equilibrium. Randomly-sampled configurations are projected
nontrivial problem, P3 , then consists in interpolating a com-
to the contact manifold using an inverse-kinematics solver, a
plete motion between two postures of the contact sequence. A
computationally-expensive process (about 15 minutes to com-
key issue is to avoid combinatorial explosion when considering
pute a guide path in the examples presented). Moreover this
at the same time the possible contacts and the potential paths.
explicit projection is insufficient to guarantee the feasibility
Bretl’s seminal paper proposes a first effective algorithm,
between two key postures in the path. Chung and Khatib [19]
able to handle simple situations (such as climbing scenarios),
also proposed a decoupled approach, with a planning phase
but not applicable to arbitrary environments. Following it,
based on the reachable workspace of the robot limbs, used
several papers have applied this approach in specific situations,
to judge the ability to make contact with a discretized envi-
limiting the combinatorial by imposing a fixed set of possible
ronment. This planning phase does not account for collisions,
contacts [8], [9].
implying that re-planning is required in case of failure. In
Most of the papers that followed the work of Bretl have
highly-constraining cases such as the car egress scenario we
explored alternative formulations to handle the combinatorics.
address, we believe that including collision constraints in the
Two main directions have been explored. On the one hand,
planning is a requirement [20], [21]. A limitation with these
local optimization of both the root trajectory P1 and the
approaches (including our method) is that the existing planners
contact positions P2 has been used, to trade the combinatorial
only address a subset of the problem, because their ability
aspect of the complete problem for a differential complexity,
to find a solution depends on the existence of quasi-static
at the cost of local convergence [10]. A complete example of
equilibrium configurations along a feasible path, which is too
the potential offered by such approaches was proposed by [11]
restrictive in the general case. Other contributions to legged
and successfully applied to a real robot [12]. To get reasonable
locomotion, not directly related to multi-contact motion, are
computation times, the method uses a simplified dynamic
worth mentioning, as they rely on a similar decomposition
model for the avatar. Still, the method is far from real-time
of the problem. First a discrete sequence of contact sets is
(about 1 minute of computation for 20 contacts). A similar
planned (at the so-called footstep planning phase), using a
approach has been considered for manipulation by [13]. Deits
low-dimensional abstraction of the robot to account for its
and Tedrake proposed to solve contact planning globally as
kinematic constraints [22], [23]. In [23], a “pose certificate”
a mixed-integer problem, but only cyclic, bipedal locomotion
is obtained by generating a whole-body configuration for each
is considered, and equilibrium is not considered [14]. Dai et
set through inverse kinematics, as done in P2 . Then a motion is
al. [15] extended the work of Posa et al. [16] to discover
generated along the sequence through the use of optimization
the contact sequence for landing motions, but need to specify
techniques. The solutions proposed are designed for cyclic
the contacts manually for complex interactions. In addition to
locomotion in quasi-flat scenarios, where the support polygon
the limits of the current implementations, optimization-based
is a relevant method for equilibrium checks. They thus cannot
approaches only converge locally.
be generalized to multi contact locomotion. However, some
On the other hand, the two problems P1 and P2 might
3
contributions on specific parts of the problem could be applied completeness regarding the contact planning problem.
directly in our case. For instance, learning “terrain costs”,
based on expert knowledge as proposed in [24], could define Comparison with our previous work: The present paper is
good heuristics to compute the next contact location for an an extension of our ISRR conference paper [20]. As such, our
effector. Although we did not try to include such formulation solution to address P1 and P2 is the same motion planner
in this paper, it would be straightforward to integrate such as the one presented at ISRR (reformulated in Section IV
heuristic in our planner. and V). However three important novelties have been added to
As far as robotics applications are concerned, none of the planner: the pseudo-code of the algorithm (Section V-B2),
the existing multi-contact planners is interactive1 . However, a novel criterion for static equilibrium (Section VI), and the
recent contributions to the interpolation between contact poses release of the source code of the planner (Section VII).
(problem P3 ) have brought promising preliminary solutions The other novelty of the paper is a rigorous experimental
[25], [26], [27], [1]. In particular, our algorithm proposed in validation of the approach on actual robot models (Sec-
[1] is interactive. Therefore, a planner capable of efficiently tion VIII). To validate our contact plans we introduced a
solving P1 and P2 could outperform all existing planners if complete framework for multi-contact motion synthesis. This
coupled with an interpolation method solving P3 . The main framework additionally comprises an interpolation method
contribution of this paper is exactly this planner. to solve the problem P3 , based on a reformulation of our
previous work [1]. Our solution to P3 allows us to verify that
the synthesized motions are physically consistent, using our
B. Contributions implementation of a state-of-the-art simulation algorithm [28].
Our solution belongs to the class of decoupled approaches, These aspects of the framework are presented in details in the
i.e. we propose specific algorithms to efficiently solve both paper, but are not novel per se. The novelty lies in the complete
P1 and P2 while relying on state-of-the-art solution to P3 validation of the contact planner with real robot models, for
to obtain the whole movement. Our main contribution is the which the planning is much harder with respect to the avatars
definition of a reduction property, the reachability condition. used in [20], because of more restrictive kinematic constraints.
Compared to previous approaches, our solution has two
main novelties: II. OVERVIEW
Regarding P1 , we propose a fast guide path planning algo- Figure 1 illustrates our work flow. P1 and P2 are addressed
rithm. The key to its efficiency is that it does not sample sequentially: From a given problem (a) we first plan a root
directly the contact manifold, but an approximation of the guide path (b), before extending it into a sequence of static
contact reachable space. The contact reachable space is a equilibrium configurations (c). In the case where step (c)
low-dimensional space for which there exists a mapping to fails, our framework invalidates the computed guide path, and
the contact manifold. restarts the planning from (b).
Regarding P2 , we propose a fast method to extend a contact
reachable path into a sequence of whole-body configurations A. Computation of a guide path — P1 (Section IV)
in static equilibrium. This requires the explicit computation of
contact configurations. It is guided by dedicated heuristics that We first consider the problem of planning a root guide path
quickly synthesize feasible configurations. (Figure 1–P1 ). The dimension of the path is equal to the
The reachability condition is the key to the strict separa- number of degrees of freedom (DoFs) of the root of the robot.
tion between P1 and P2 , hence to the low complexity of Similarly to previous work [18] the path must be equilibrium
our planner. However the reduction can result in failures. feasible: there must exist a joint configuration that results in
We demonstrate empirically its interest, through an extensive static equilibrium for each root configuration2 . Previous works
experimental validation with real robot models on a dynamic verify equilibrium feasibility by explicitly computing such
simulator. The high success rate and low computation times a configuration. We preserve the low dimensionality of the
we obtain allow us to plan (and re-plan upon failure) multi- problem by approximating equilibrium feasibility with contact
contact sequences at interactive rates. reachability, illustrated in the following.
An intuitive description of contact reachable configurations
To further demonstrate the validity of our approach, we
is “close, but not too close” to the environment: close, because
show that the generated contact plans can be successfully
a contact surface must be partially included in the reachable
executed (problem P3 ), either in simulation or on the real
workspace of the robot to allow contact creation; not too close,
HRP-2 robot. For HRP-2, we detail the complete computation
because the robot must avoid collision. More precisely, a root
times to address sequentially the three problems, and compare
configuration is contact reachable if the root scaled by a user-
them to related work, demonstrating that our method is orders
defined factor s ≥ 1 is not in collision (Figure 2 - red shape),
of magnitude faster.
while the reachable workspace is in collision (Figure 2 - green
Finally, we provide an extensive discussion on the
shapes). To plan a root path, we then use an RRT planner
consequences of our approach in terms of efficiency and
2 Enforcing static equilibrium is a classical, conservative approach to reduce
1 We define an interactive planner as one for which the time to plan a motion the search space and considering states with non-zero accelerations and
is in the same order of magnitude as the time to execute it. For instance, velocities, which can’t be connected trivially. This does not mean that the
computing one contact change should take about one or two seconds. final motion will necessary be quasi-static.
4
Fig. 3. Reachable workspace and torso bounding box of HyQ. Each green
Fig. 2. The reachability condition is verified by the right configuration: the
shape represent a reachable workspace W k of a limb. The red shape is W 0 .
trunk (red) is free of collisions while the limbs reachable workspace (green)
intersect the environment.
A robot is a kinematic tree R composed of: a root R0 , and During the root path planning we only consider the root
l limbs Rk , 1 ≤ k ≤ l, attached to the root. The root has configuration q0 defined in the previous Section, as well as
r ≥ 6 DoFs: for instance, HRP-2 has two extra DoFs in the the environment O.
torso, such that we have r = 8. Thus R is fully described by Given start and goal configurations, we aim at computing a
a configuration (a vector of joint values) q ∈ Rr+n , with n guide path q0 (t) : [0, 1] −→ Rr verifying:
the number of joint DoFs. q is decomposed as follows:
• qk is a configuration of the limb Rk ; ∀t ∈ [0, 1], q0 (t) ∈ CEquil
0
Algorithm 3 Adds or repositions a contact for one limb the contact sequence. Second, we rely on off-line generation
1: function I NTERMEDIATE C ONTACT S TATE (state) of configuration candidates.
2: i=0 ǫ
We define CContact ⊃ CContact as the set of configurations
3: while i < length(states.f reeLimbs) do such that the minimum 3D distance between an effector and
4: Limb k = pop(states.f reeLimbs) an obstacle is less than ǫ ∈ R. We then apply the following
5: if G ENERATE C ONTACT(state.q0, k) then steps:
6: push(newState.contactLimbs, k)
1) Generate off-line N valid sample limb configurations
7: return
qki , 0 ≤ i < N (We choose N = 104 );
8: else
2) Using the end-effector positions p(qki ) as indices, store
9: i+ = 1
each sample in an octree data structure;
10: push(states.f reeLimbs, k)
3) At runtime, when contact creation is required, intersect
11: i=0 the octree and the environment5 to retrieve the list of
12: while i < length(states.contactLimbs) do ǫ
samples S ⊂ CContact close to contact (Figure 5 (b)
13: Limb k = pop(states.contactLimbs) and (c));
14: Limb copy = k 4) Use a user-defined heuristic h to sort S;
15: i+ = 1 5) If S is empty, stop (failure). Else select the first con-
16: if G ENERATE C ONTACT(state.q0, k) then figuration of S. Project it onto contact using inverse
17: push(newState.contactLimbs, k) kinematics. (Figure 5 (d) and (e));
18: return 6) If Eq. 6 is verified, stop (success). Otherwise remove
19: else the element from S and go to step 5.
20: push(newState.contactLimbs, copy)
/*Fails if impossible to relocate any effector*/ Because the distance ǫ does not account for the variation
ǫ
21: return F AILU RE in orientation, several samples of CContact may turn out to
be unfeasible at the time of projection. One could consider
ǫ
additionally filtering CContact based on the orientation with
The method I S I N S TATIC E QUILIBRIUM returns whether a respect to the obstacle normal, but in our experience we did
given state is in static equilibrium. not notice any significant improvement in the computational
The pseudo code for the method I NTERMEDIATE C ONTACT- performances of the planner, so we do not perform this
S TATE is given by Algorithm 3. additional step.
G ENERATE C ONTACT(q0 , k) is a call to the contact gen- In all our experiments, the heuristic h is implemented
erator presented in the following Section V-C. It generates as a variation of a manipulability-based heuristic [31]. The
a contact configuration in static equilibrium, and assigns manipulability is a real number that quantifies how “good” a
the corresponding configuration to k. If it fails, k remains configuration is to perform a given task, based on the analysis
unchanged if it is collision free, otherwise it is assigned a of the Jacobian matrix. With such heuristics, a configuration
random collision free configuration. can be chosen because it is far from singularities, and thus
allows mobility in all directions. On the contrary, it can be
chosen because it is particularly efficient to exert a force in
C. Contact generator a desired direction. In our experiments, the former solution is
Given a configuration of the root and the list of effectors usually chosen for computing leg contacts, while the latter is
that should be in contact, the contact generator computes the used for computing hand contacts. We recall the manipulability
configuration of the limbs such that contacts are properly measure and its derivatives in Appendix B.
satisfied and the robot is in static equilibrium: Finally, to verify that a configuration is in static equilibrium,
we use a new robust LP formulation. It replaces the compu-
tationally inefficient double description approach used in our
qk −→ qk , (qk ⊕ qk ) ∈ CEquil and qk ∈ CContact
k
(6)
previous work [20], and presented in the following Section VI.
In previous works [17], [18], the generation of contact is
typically implemented by randomly sampling configurations
VI. A CRITERION FOR ROBUST STATIC EQUILIBRIUM
and projecting the whole robot configuration onto the closest
surfaces with an inverse kinematics solver. In case of failure We first give a linear program (LP) that verifies whether a
of the projection, the process would randomly iterate. contact configuration allows for static equilibrium. This LP is
We propose two modifications of this general algorithm the same that was proposed in [32]. From this formulation
principle. First our contact generator handles each limb Rk we derive a new LP that quantifies the robustness of the
independently. By handling each limb separately, we reduce equilibrium to uncertainties in the contact forces. In turn, from
the complexity of the generation of contact configurations. this value we can either choose the most robust candidate, or
This is made possible thanks to the reachability condition set a threshold on the required robustness.
in P1 that produces a root path that we can afford not to
modify in P2 , and because we allow both a contact break and 5 this operation is achieved natively by the fcl library https://flexible-
a contact creation between two consecutive configurations of collision-library.github.io/
8
a b c d e
Fig. 5. Generation of a contact configuration for the right leg of HRP-2. (a): Selection of reachable obstacles. (b): Entries of the limb samples database
(with N = 4). (c): With a proximity query between the octree database and the obstacles, configurations too far from obstacles are discarded. (d): The best
candidate according to a user-defined heuristic h is chosen. (e): The final contact is achieved using inverse kinematics.
VIII. R ESULTS
In this section we present some of the results obtained
with our planner. The complete sequences are shown in the
companion video. Specifically, we demonstrate the planner for
two legged robots, in a large variety of environments: the
humanoid HRP-2 and the quadruped HyQ.
Our contact plans are then interpolated with a dedicated
solution to the interpolation problem P3 . This allows us to
validate the obtained motions in a dynamic simulator. This
validation is an important contribution as it increases the Fig. 6. HRP-2 in the standing scenario.
confidence that the contact plans we compute can effectively
result in feasible motions on the real robot. One motion is
demonstrated on the real HRP-2 robot.
At the end of this section, we discuss the role of the
parameters of our framework. We then provide the interactive
computation times obtained in each case. We also compare the
times obtained with HRP-2 with respect to previous works.
Time
Scenario Complete guide Static equilibrium Inverse Kinematics Total generation time per
Collision (ms)
(nb steps) generation (ms) (ms) (ms) (ms) step
(ms)
Stairs (18) 5 – 6 – 18 13 – 32 – 329 1 – 4 – 38 26 – 127 – 1345 92 – 261 – 2174 15
Standing 65 – 1086 –
27 – 144 – 338 2 – 12 – 37 144 – 1046 – 2374 371 – 2257 – 7671 94
(24) 5227
320 – 6971 – 409 – 1766 – 3154 – 15323 –
Car (86) 297 – 1187 – 8483 5834 – 31391 – 281000 365
44002 14752 165541
Rubble
37 – 573 – 1685 583 – 2714 – 9459 491 – 1971 – 6273 269 – 706 – 3118 1811 – 7195 – 23241 86
(82)
455 – 1359 –
Race (134) 14 – 51 – 125 397 – 923 – 9924 228 – 471 – 5415 1436 – 3343 – 41446 25
21045
TABLE IV
MINIMUM , AVERAGE AND WORST TIME ( IN MS ) SPENT IN THE GENERATION PROCESS FOR EACH SCENARIO AND EACH CRITICAL PART OF THE
GENERATION PROCESS ( NOT ALL PARTS ARE TIMED , THUS THE AVERAGE TOTAL COMPUTATION TIME IS HIGHER THAN THE SUM OF EACH PART ). T HE
LAST COLUMN INDICATES THE AVERAGE TIME NECESSARY TO COMPUTE ONE CONTACT TRANSITION . T HE C OLLISION COLUMN TIMES INCLUDES THE
( NEGLIGEABLE ) OCTREE INTERSECTION OPERATION NECESSARY TO RETRIEVE THE CANDIDATE SAMPLES .
Fig. 16. Examples of velocity and force ellipsoids for a manipulator composed
of 2 DoFs and 2 segments. Only the horizontal and vertical speeds are shown
(not the rotation speeds).
Fig. 14. The W volumes computed for HRP-2. The red shapes are W 0 . The
green shapes represent the W k . and often not contact reachable, as illustrated in Figure 13,
where the exterior boundaries of the reachable workspace
0
appear red, thus not belonging to CContact ). We choose again
to be less complete but more efficient, regarding the number
of collision tests to be performed by RB-RRT. In step 1 on
the other hand, selecting the convex hull (Figure 15–middle)
instead of a minimum encompassing shape (Figure 15–left)
may introduce false positives. Concretely, because the false
positive set intersects with W 0 , the scaling volume of the
robot torso, the induced error is compensated, as verified by
the results shown by Table III.
They describe the set of end-effector velocities (respectively where L̇ is the angular momentum expressed at the com.
forces) that can be reached under the constraint ||q̇||2 ≤ 1 for Eq. 16 defines a 6-dimensional cone K [40], [41]. For a
the current configuration. The longer the axis of the ellipsoid given set of contacts, this cone determines all the admissible
is, the more important the velocity (resp. force) of the end- wrenches w that can be generated by contact forces inside
effector the direction of the axis can be (Figure 16). their friction cones. The face form of K can be computed using
2) Manipulability-based heuristics: From these definitions, the double description method [42], resulting in the following
we can derive two useful heuristics, that all account for the linear inequalities:
environment and the task being performed. The first one,
EFORT, was introduced by [38]; the second one derives the
K = {w, Aw ≤ b} (17)
manipulability measure proposed by Yoshikawa [31].
With EFORT, we define the efficiency of a configuration as
the ability of a limb to exert a force in a given direction. We The objective is then to plan a trajectory for the center of
thus consider the force ellipsoid as a basis for our heuristic. mass such that the generated w always verifies Eq. 17. We
In a given direction ρ, the length of the ellipsoid is given by now consider two contact configurations q0 and q1 computed
the force-transmission ratio [39]: by our planner: in the general case one contact is broken and
1
one created to get from q0 to q1 . We manually define the
fT (q, ρ) = [ρT (JJT )ρ]− 2 duration of each of the three contact phases. In each phase
s the centroidal wrench w is constrained to lie inside a cone
In our problem, to compare candidate configurations, we
Ku , u = 0 . . . 2. We call the total duration of the motion T ,
include the quality of the contact surface, and choose ρ as the
and formulate the following optimization problem:
direction opposite to the local motion (given by the difference
between two consecutive root positions):
2 Z
X tu +∆tu
1
hEFORT (q, ρ) = [ρT (JJT )ρ]− 2 (µnT ρ) (14) minimize ℓ(c̈(t), L̇(t))dt
c̈(t),L̇(t) tu
u=0
where µ and n are respectively the friction coefficient and the
subject to Au w(t) ≤ bu , ∀t ∈ [tu , tu + ∆tu [ , ∀u
normal vector of the contact surface.
hEFORT will favor contacts that allow large efforts. EF ORT Yu c(t) ≤ yu , ∀t ∈ [tu , tu + ∆tu [ , ∀u
(18)
in particular is useful for tasks such as standing up, pushing / c(0) = cq0
pulling. In other less demanding cases, manipulability can also c(T ) = cq1
be considered to avoid singularities. To do so, we can consider
c(0) = ċ(0) = c̈(0) = 0
the manipulability measure hw , also given by Yoshikawa [31]:
q c(T ) = ċ(T ) = c̈(T ) = 0
hw (q) = det(JJT ) (15)
The cost function ℓ is a weighted sum of the angular mo-
hw measures the “distance” of a given configuration to sin- mentum and center-of-mass acceleration variation over the
gularity. When hw is equal to 0, the configuration is singular; whole trajectory. The center-of-mass positions and velocities
the greater hw is, the further away the configuration is from c(t), ċ(t) are internal variables, obtained through the double
singularity. integration of c̈(t). Then w(t) is obtained directly from these
variables. cq0 and cq1 are the center-of-mass positions for
A PPENDIX C configurations q0 and q1 respectively. Yu and yu denote
A DDRESSING P3 stacked kinematic constraints on the center of mass position,
determined by the active contact locations. The inequalities
The stair climbing and the standing up scenarios were
for each contact are determined in the same way that the
validated with the trajectory optimization scheme provided in
reachable workspace is computed in Appendix A, with the
[1]. To address the other scenarios, we propose a new imple-
effector serving as root.
mentation, entirely open source (https://github.com/stonneau/
This formulation can trivially be extended over the whole
python sandbox/releases/tag/tro paper ), which can be inte-
contact sequence. In our implementation, the problem is
grated directly in our motion planner software. This for-
discretized using time steps of 100 ms.
mulation uses the center of mass acceleration and angular
momentum as input variables, while previously the contact The output of this optimization problem is an admissible
forces were used. The center-of-mass trajectory resulting from center-of-mass trajectory. To compute the whole body motion,
the optimization is then turned into a collision-free whole-body we use a two-step approach.
trajectory. First, we plan a kinematic motion for the robot, subject to
We rewrite Eq. 8 in the general case: the contact constraints. We also constrain the center of mass
to follow the computed trajectory. This is achieved using a
constraint-based RRT planner [30]. As a result we obtain a
m(c̈ − g)
Gβ = (16) collision-free whole-body motion.
mc × (c̈ − g) + L̇
| {z } The entire resolution takes approximatively 1.5 seconds for
w a complete contact transition.
16