Next Article in Journal
Chaos Anticontrol and Switching Frequency Impact on MOSFET Junction Temperature and Lifetime
Previous Article in Journal
Automatic PLC Control Logic Generation Method Based on SysML System Design Model
Previous Article in Special Issue
Adaptive Time-Varying Formation Maneuvering Control for Multi-Robot Systems in Complex Obstacle-Rich Environments
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Efficient CoM Motion Planning for Quadruped Robots’ Quasi-Static Walking

1
Faculty of Technical Sciences, University of Novi Sad, 21000 Novi Sad, Serbia
2
Faculty of Electronic Engineering, University of Niš, 18000 Niš, Serbia
3
Shenzhen Institute of Artificial Intelligence and Robotics for Society, Chinese University of Hong Kong, Shenzhen 518100, China
*
Author to whom correspondence should be addressed.
Actuators 2025, 14(5), 202; https://doi.org/10.3390/act14050202
Submission received: 17 March 2025 / Revised: 16 April 2025 / Accepted: 19 April 2025 / Published: 23 April 2025
(This article belongs to the Special Issue Dynamics and Control of Underactuated Systems)

Abstract

:
With the popularity of quadruped robots, the main challenge they must overcome is traversing unstructured environments. Current methods that allow modern robots to traverse challenging terrain are unsuitable for situations at the edge of robot performance, where torque limits and contact forces must be carefully considered. This paper will investigate a way of generating feasible center of mass (CoM) trajectories applicable in such cases. A feasible CoM trajectory is one that the robot can perform considering contact, torque, and reachability constraints. We improve the existing method for finding feasible CoM regions, yielding a thirty times speedup so that it can run under 1 ms. Based on that improvement, we introduce a new iterative CoM planner that sequentially solves prioritized constrained IK and computes feasible regions. That way, we guarantee the satisfaction of contact constraints, torque constraints, and reachability. The planned motion was performed using a whole-body controller. We tested the approach on high-fidelity simulation and on real Solo12 quadruped, achieving the control loop frequency of 1 kHz. The whole codebase has been disclosed on GitHub.

1. Introduction

Based on the means of locomotion, mobile robots can be classified into three categories: legged robots, wheeled robots, and tracked robots [1]. The locomotion system is an essential design characteristic and depends on the intended use of the robot due to the significant differences in maneuverability, controllability, efficiency, and stability. There are different subtypes of locomotion systems, each with advantages and disadvantages that have been explored in the past [2]. The main advantage of legged robots lies in the potential to traverse a lot of different terrains, similar to a human or an animal. There are many types of legged robots based on the number of legs. The most important include biped (humanoid) robots, quadruped (four-legged) robots, and hexapod (six-legged) robots. Quadruped robots present the best choice among legged robots in terms of mobility and stability of locomotion, as the robot’s four legs are easily controlled, designed, and maintained compared to two or six legs.
Recently, quadrupeds started becoming ubiquitous as several different robotics platforms like Boston Dynamics’ Spot and Unitree’s Go2 became available in the market, with the latter costing no more than a few thousand dollars. ANYbotics, a spin-off from ETH Zuerich, started providing end-to-end industrial inspection services using their in-house developed quadruped ANYmal [3].
The prime challenge all mentioned robots must overcome is traversing unstructured environments. Two distinct approaches arose, those based on model predictive control [4,5] and those based on reinforcement learning [6,7], and even some hybrid ones combining both approaches [8]. These approaches could accommodate swift and dynamic motions on different types of terrain. Although terrain and obstacles were challenging, these methods do not apply to cases at the edge of the robot’s performance, where torque constraints and contact forces must be carefully considered. The need to move in a challenging terrain has been recognized by the robotics society, resulting in a Quadruped Robotics Challenge (QRC) [9]. In that challenge, the robot is supposed to scale different types of obstacles including steps, sloped rails and steps. That is why planning feasible trajectories becomes essential to the robot control system. A feasible trajectory is one that ensures contact stability while respecting joint torque and kinematic limits. This paper will consider a way of generating feasible CoM trajectories that are applicable when moving across very challenging terrain.

2. Related Works

More than half a century ago, Vukobratovć introduced the first indicator of dynamic balance called Zero Moment Point (ZMP) [10]. It stated that the walking mechanism is dynamically balanced if a point within the support polygon (excluding its edge) exists, such that the total moment acting at that point in the horizontal plane equals zero, hence the name Zero Moment Point [11,12]. This notion assumed that the robot was walking on a flat surface and that friction was sufficiently large.
Initially, the hardware was the limitation for walking robots, but as hardware started catching up, it was evident that this indicator was insufficient. As a result, attempts to generalize the ZMP notion started to appear. In [13], Harada et al. studied the case with multiple contacts where the robot was touching the wall with its hands. The authors computed a polyhedron containing all contact points and conducted a geometric study to see if a robot could rotate around the edge of a polyhedron. Also, Generalized ZMP (GZMP) was introduced as a point on the ground surface for which the total moment in a horizontal plane from all contact forces equals zero. The robot is dynamically balanced if GZMP is within the support area obtained by the polyhedron projection on the ground surface. In a study that came out the same year, Hirukawa et al. [14] developed a criterion for multi-contact motion feasibility with arbitrary contact placement. The number and placement of contacts define a set of feasible wrenches applied to the system’s center of mass (CoM). It turned out that wrenches must be within the convex cone, and the motion is feasible if the sum of gravity and inertial forces is within that cone (gravity-inertial wrench cone (GIWC)). Although an improvement to ZMP, these criteria still assumed sufficient friction (implicitly assuming an infinite friction coefficient), and their applicability was showcased in only a few elementary cases, such as a robot walking up the stairs while holding a handrail or a robot leaning against the wall.
S. Caron et al. in [15] considered limited friction by approximating friction cones with a four-sided pyramid and assuming a rectangular shape of the contact patch, closely resembling the contact of a humanoid’s foot and the ground. Under such assumptions, they could derive closed-form formulae for the stability of planar contact with Coulomb friction. In [16], authors have found a general procedure for computing planar contact stability criteria for the arbitrary shape of the foot and arbitrary approximation of the friction cone. It shows that the contact wrench acting on the foot normalized by normal force is within a 5D convex polygon. Hence, constraint computation is reduced to calculating a convex hull of points in 5D. The same paper shows how tangential forces, vertical torque, and friction cone approximation influence the effective shape of the foot. The big tangential forces, normal torque, and coarse approximation lead to a smaller size of the effective area of the foot.
In [17], the authors have described how to compute GIWC using the double descriptor method [18]. That was the first time a technique addressed a general case with multiple arbitrarily spatially distributed contacts with limited friction. It is reported that computation of the gravito-inertial wrench cone for the case of a robot standing with both feet on the ground and four-sided friction pyramids as an approximation of the friction cone takes around 5 ms. Although significant progress has been made, the procedure is NP-complete, potentially slowing computation times for more complex cases. The same authors have used computed GIWC to derive an entire support area containing all ZMPs generated by valid contact forces [19]. After that, using the linear pendulum model LPM, the authors synthesized a walking controller, which was tested in simulation on an HRP-4 humanoid robot.
To overcome the NP-completeness of the double descriptor method, a polynomial time method for GIWC computation was developed in [20]. It describes reducing the spatially distributed contact to the planar case described in [16]. The GIWC is computed from a convex hull of points in 5D space, which has polynomial time complexity [21]. It reports the time of 1.6 ms for the robot standing with both feet on the ground and four-sided friction pyramids. It also considers more complex cases with three planar contacts with the environment (two feet and a hand) with eight-sided friction pyramids taking around 8 ms, proving that there is no explosion in computation time as the problem becomes complex. In [22], the same authors have described several typical cases with ground support surfaces for such cases. Authors have shown that in the case of multiple non-coplanar contacts, ZMP might go out of the convex hull of projected contact points while the system is still dynamically balanced.
The methods described until now are only considered if the nature of contact allows a specific motion. Actuation constraints were not considered at all, reducing the applicability of methods to real-life robots. One of the first methods considering actuation constraints was [23]. The authors have computed a convex Feasible Wrench Polytope (FWP), considering both actuation and contact constraints. They do so by first intersecting friction cones and force polytopes (a set of forces that actuators can produce at a contact point) for each contact, obtaining a bounded friction cone. Then, FWP is computed as a Minkowski sum of all bounded friction cones. The method produced a 6D convex polytope, which was hard to comprehend and use for planning; hence, in subsequent publications, the same authors have looked into a way to project it in a 2D plane, limiting themselves to quasi-static locomotion [24]. In that paper, the authors have modified the Iterative Projection method first introduced in [25] to define feasible region, an actuation-aware extension of the support region. The IP, in essence, is an efficient way of finding the intersection of a 6D polytope with a 2D plane. The further improvement of a method is given in [26]. The technique has been extended to cases where the external force (apart from gravity) is acting on the robot, the intersection plane is not necessarily horizontal as in [24], and most importantly, motion feasibility from the IK perspective is considered for the first time. That new indicator is used to plan quasi-static CoM motion.
Although the final improvement is potent, it still suffers from several issues. The feasible region is just a local approximation, as it depends on the joint configuration for computing the Jacobian. Also, its computation is relatively slow (reported to be around 18 ms in [26]) for having some sequential refinement of the feasible region or having the ability to perform multiple computations during a single planning step. Ultimately, because of that, no guaranteed planned motion is possible. The feasible region is approximated around the starting point but never recomputed for the final CoM position. That led to the introduction of big margins when motion is planned.
The contribution of this research is twofold:
  • We introduce the Recursively Expanding Iterative Projection (IP) method that outperforms previous methods, described in Section 3.1, by 15 times and allows us to compute feasible regions in less than 1 ms.
  • Leveraging an increase in computation efficiency, we introduce a new iterative CoM planner that solves iteratively inverse kinematics (IK) and computes feasible regions. In this way, we ensure the robot can reach its destination and maintain static equilibrium.

3. Improving Feasible Region Computation

Before describing the improvements, let us revisit the actuation-aware IP algorithm from [24]. That is the method we are trying to improve.

3.1. IP Revisited

The region is generated by the algorithm described in Algorithm 1. It starts from two coarse approximations of the projected region: the inner approximation, which is always smaller than the projection, and the outer approximation, which is bigger than the projection. The algorithm iteratively expands the inner approximation in a direction a i while shrinking the outer approximation in the opposite direction, as illustrated in Figure 1. In each iteration, the linear program (LP) is solved, finding a new extremal c x y * point along a i ; this is added to the inner approximation while an edge with normal a i passing through c x y * is added to the outer approximation [24].
The algorithm ensures the static stability of the robot via equality constraint (III.a), which states that the total wrench (denoted by u ) computed for point c x y in the horizontal plane has total force equal to gravity and total torque equal to 0. Note that this program is independent of the position of the reference point in the vertical direction c z . Matrix A 1 R 6 × 3 n c is a grasp matrix of all n c contacts, mapping the contact forces to the wrench at the reference point. A 2 computes the angular component of the gravity wrench. The values of these matrices are:
A 1 = I 3 × 3 p 1 × , , I 3 × 3 p n c × A 2 = 0 0 0 0 m g 0 0 0 0 m g 0 0 T u = 0 0 0 0 0 m g T ,
where p i is position of contact i in world frame, m is the total mass of the robot and g is gravitational acceleration. Vector f R 3 n c is a vector of all vertically stacked contact forces f i .
Inequality constraint III.b ensures that all contacts are stable by enforcing that all contact forces are within their respective friction cones. The contact constraint matrix is B R n s n c × 3 n c is a block diagonal matrix where each block represents a friction cone for each contact given in span form S μ R n s × 3 :
B = diag B 1 , B 2 , , B n c B i = S μ R i T .
R i is a rotation matrix representing the surface orientation of i-th contact. Each row of S μ is [16]:
S μ k = sin 2 k π m cos 2 k π m μ ; k = 0 n s 1 ,
where n s is the number of sides in a friction cone.
Algorithm 1 Feasible region IP algorithm.
  • Inputs: c x y , p 1 , , p n c , S 1 μ , , S n c μ , τ ̲ 1 τ ̲ n j , τ ¯ 1 τ ¯ n j ,
  • Result: Local feasible region Y f a
  • Initialization: Y o u t e r and Y i n n e r
  • while  a r e a Y o u t e r a r e a Y i n n e r > ϵ   do
  •     (I) Compute edges of Y i n n e r
  •     (II) Pick a i based on the edge cutting off the largest fraction of Y o u t e r
  •     (III) Solve the linear problem:
  •            c x y * = argmax a i T c x y
  •           such that:
  •                 (III.a) A 1 f + A 2 c x y = u
  •                 (III.b) B f 0
  •                 (III.c) G f d
  •     (IV) Update the outer approximation Y o u t e r
  •     (V) Update the inner approximation Y i n n e r
  • end while
Finally, inequality constraint III.c ensures that torque constraints in all joints are fulfilled, where upper and lower bounds on torque in joint i are denoted as τ ̲ i and τ ¯ i , respectively. For quadruped robots, there is a 1-to-1 mapping between joint torques in the leg and contact forces if that leg is in contact with the environment. The assumption is that the leg is in a non-singular configuration and that the legs are 3DoF, which is a property of most, if not all, quadrupeds. Due to joint limits, most of them cannot find themselves in a singular configuration. The mapping is through a transpose Jacobian of the contact J i and gravitational load on the leg g i coming from the general model of multi-body system dynamics:
τ L i + J i T f i = g i ,
where τ L i represents the vector of torques in the leg forming i-th contact. Hence, matrix G R 6 n c × 3 n c and vector d assume forms:
G = diag J 1 T J 1 T , , J n c T J n c T
d = g 1 τ ̲ L 1 g 1 + τ ¯ L 1 g n c τ ̲ L n c g n c + τ ¯ L n c
It is important to point out the slight difference between the presented algorithm and the original one described in [24]:
  • Only point contacts are considered here, where the original can also accommodate surface contacts.
  • Unlike the original version, where the number of sides in the friction pyramid is 4, there is no such assumption in the presented version.
These slight changes to the original algorithm do not influence its general applicability to quadruped robots.

3.2. Recursively Expanding IP

Since the friction cones are approximated with friction pyramids and joint torques have box constraints, the Feasible Contact Wrench is a convex polytope in 6D [23,24]. As a result, its projection to a 2D plane will be a convex polygon. The implication is that the solutions of LPs in Algorithm 1 are exactly the corners of the convex polygon of the feasible area. So, if we run the LP a sufficient number of times, we will perfectly reconstruct the feasible area Y f a , and  Y f a = Y o u t e r = Y i n n e r will be all equal. For this reason, we decided to remove the outer approximation altogether.
The recursive expanding IP algorithm is shown in Algorithm 2 and illustrated in Figure 2. Firstly, min and max points of the feasible region in some direction, e.g., x, are computed (steps I and II from Algorithm 2). After that, we recursively expand the surface by solving the previously noted LP starting from the midpoint of the already existing edge of the approximation Y f a , going in a direction normal to the edge (method ExpandFromLine). Once LP is solved and the new c x y i * is found, the point will be added to Y f a if its distance from the starting edge is more than ϵ d , and recursion will resume by expanding from two new edges of approximation Y f a . The LP would be solved exactly 2 n e times, where n e is the number of edges of the resulting feasible area.
Assuming we are using an optimization problem solver with warm starting to solve LPs, warm starting optimization from the mid-point of two known solutions yields significant speedup for two reasons:
  • The solver will start from a feasible point, thus removing the need for computing the initial guess
  • The optimization problem starts close to the solution, significantly reducing the number of iterations during optimization, thus reducing computation time.
Algorithm 2 Feasible region by recursive expansion IP algorithm.
  • Inputs: c x y , p 1 , , p n c , S 1 μ , , S n c μ , τ ̲ 1 τ ̲ n j , τ ¯ 1 τ ¯ n j ,
  • Result: Local feasible region Y f a
  • function SolveLP( a , p , f )
  •       Starting from p and f solve linear problem:
  •        p * , f * = argmax a T p
  •        such that: A 1 f + A 2 p = u
  •             B f 0
  •             G f d
  • return  p * , f *
  • end function
  • procedure ExpandFromLine( p 0 , f 0 , p 1 , f 1 , Y f a )
  •        p m i d 0.5 p 0 + p 1 ; f m i d 0.5 f 0 + f 1
  •       Find a as a unit normal to vector p 1 p 2
  •        p * , f * SolveLP a , p m i d , f m i d
  •       if  a T p * p m i d ϵ d  then
  •          ExpandFromLine( p 0 , f 0 , p m i d , f m i d , Y f a )
  •          ExpandFromLine( p m i d , f m i d , p 1 , f 1 , Y f a )
  •       else
  •          Append p 0 to Y f a
  •       end if
  • end procedure
  • Initialize Y f a to empty set
  • (I) p l e f t , f l e f t SolveLP 1 0 T , 0 , 0
  • (II) p r i g h t , f r i g h t SolveLP 1 0 T , p l e f t , f l e f t
  • (III) ExpandFromLine( p l e f t , f l e f t , p r i g h t , f r i g h t , Y f a )
  • (IV) ExpandFromLine( p r i g h t , f r i g h t , p l e f t , f l e f t , Y f a )
In our implementation, we have used ProxQP [27], which, according to benchmarking tests, has superior performance compared to other famous solvers like MOSEK, GUROBI, qpOASES, etc., while still being open-source and providing all necessary features.
Figure 3 illustrates the feasible region obtained using the algorithm above. We were considering a case where quadruped robot Solo12 [28] stands with its front feet against a 60 slope, while its back feet are on a horizontal surface. The friction cones are approximated with 6-sided friction pyramids. In Figure 3a,b, we can see the robot in two different configurations, one with its back legs facing forward and one with its knees facing backwards. The last subfigure shows the contact points (black circles) and the contact support area. It can be easily noted that contact support does not coincide with the convex hull of the contact points, which follows [16,20,22].
Secondly, let us note that although the contact support area is the same, the feasible area differs for the two depicted configurations. That shows the dependence of the feasible area on the robot configuration. Although the CoM position and feet placement for configurations shown in Figure 3a,b are the same, the feasible areas are very different. When the knees are facing outwards, the load from gravity on the knees of the back legs is more prominent due to the bigger distance from CoM, resulting in a smaller feasible region. The desired CoM can be within a feasible area for some configurations but outside of it for others. That brings a vital conclusion; although the desired CoM projection can be within a feasible area, we cannot tell if the robot can be statically balanced until we know the complete robot configuration and can compute a feasible region around the desired CoM.

4. CoM Motion Planning

When creating a quasi-static walk, we have two distinct phases during a single step. In the first phase, the robot moves its CoM while all four legs are in contact with the environment. In the second, swing phase, the robot keeps CoM fixed while stepping with an appropriate leg based on the contact sequence. Due to its complexity, in this paper, we omit discussion about the walking pattern generator and contact sequence and consider it an input. Moving the foot from one location to another is relatively trivial. This section will focus on computing the desired CoM position, given the contact configuration and the next stepping leg.
We have developed a way of efficiently computing a feasible region given contact distribution, robot configuration, and torque limits. However, as previously stated, a feasible region is just an approximation around a given robot configuration.

4.1. Iterative CoM Computation

Our goal is to compute the desired CoM motion given a contact sequence such that:
  • The motion of the robot is quasi-statically stable.
  • The desired CoM pose is reachable.
So far, we have addressed just the first bullet point, but the second one is equally important. We must ensure the robot can reach the CoM pose while keeping all joints within their limits. As the reachability criterion is very complex, non-linear, and dependent on goal pose and feet placement, we decided not to create any 2D representation of the reachable region as in [26]. Another significant reason is that we need a complete robot configuration to guarantee static stability, not just a CoM goal in the 2D plane.
Considering all that, we decided to choose the CoM position by iteratively computing the desired CoM position and solving IK until we found a satisfactory CoM position along with a complete robot configuration. The procedure is described in Algorithm 3. In step (I), the feasible area around the current joint configuration is computed. Then, in step (II), we compute the centroid of contact positions c m i d . After that, we go in a loop where we first find the desired position of CoM along x and y directions in step (III) by finding the closest point from the feasible region Y f a to c m i d , x y . After computing the desired CoM position, we solve the IK in step (IV). As the desired CoM motion might not be reachable, IK would lead us to the closest point to it. So in the next step (V), CoM position in x and y directions from IK is computed, followed by recomputation of the feasible region around the IK solution in step (VI). The procedure ends when the CoM position in x and y directions from IK is within Y f a computed at the same robot state q . We might apply some safety margin when checking if CoM is within a feasible region. The illustration of one step of a procedure is given in Figure 4. The big difference between two consecutive feasible regions is proof of the necessity for a described algorithm.
When computing the feasible region Y f a , we consider three feet that will stay in contact during the whole step. If the robot is statically balanced with three feet in contact during the swing phase, it will also be balanced with all four legs during the CoM translation phase. Conversely, when considering reachability, the CoM translation phase is more constraining, so for solving IK, we still consider all four legs.
Algorithm 3 carries out CoM motion planning while ensuring reachability by explicitly solving the IK problem. Static stability is ensured by computing the feasible region Y f a for the IK solution. The enabler for this sequential procedure is the ability to efficiently compute Y f a .
Algorithm 3 Sequential CoM computation.
  • Inputs: c x y , p 1 , , p n c , S 1 μ , , S n c μ , τ ̲ 1 τ ̲ n j , τ ¯ 1 τ ¯ n j
  • Result: Desired position of CoM in x and y directions
  • function FindCoMXY( Y f a , c m i d )
  •        c d e s = argmin c x y c m i d , x y 2
  •          such that: c x y Y f a
  • return  c d e s
  • end function
  • (I) Compute Y f a using recursive IP
  • (II) c m i d = mean p 1 , , p n c
  • repeat
  •      (III) c d e s = FindComXY Y f a , d
  •      (IV) q = IK c d e s , p 1 , , p n c
  •      (V) c I K = ComputeCom q
  •      (VI) Compute Y f a using recursive IP
  • until  c I K Y f a
  • return  c I K

4.2. Prioritized IK

The robot has 18 DoF, but only fourteen constraints are specified, with locations of four feet (three constraints per foot, twelve in total) and positions of CoM in the horizontal plane (two constraints). To fully define the IK problem, we have added two more requirements:
  • The base of the robot has to be at a preset height above the instantaneous walking plane (one constraint).
  • The base of the robot has to have a preset orientation relative to the instantaneous walking plane (three constraints).
With that, the IK is fully defined. We define the instantaneous walking plane as the plane with minimal distance to all contact points between the robots’ feet and the environment. Of course, if only three feet are in contact with the environment, we can compute a plane that contains all the contact points. The priority of these two tasks is lower than moving CoM or stepping while keeping feet in contact. For this reason, we have developed a constrained prioritized IK scheme. The method is given in Algorithm 4.
The input to the algorithm is a constraint and tasks with their given priorities. The task is defined by the way of computing task errors and the associated Jacobian matrix. Together with that, a robot state q that includes joint angles and pose of free-floating base and bounds on joint angles, lower bound q ̲ and upper bound q ¯ are given. The algorithm is iterative, where in each iteration, we solve a quadratic program (QP) for each task from the highest- to the lowest-priority task. QP computes an update on joint state v * such that joint angles will be within joint bounds after the update (inequality constraint III.b), and it does not influence the constraint (equality constraint III.a). After computing the coordinate update in step (IV), the constraint matrix is updated in step (V) by appending the task Jacobian J i to the constraint matrix J . Because of that, all subsequent lower-priority tasks are solved without influencing current and all higher-priority tasks and constraints.
By giving the highest priority to CoM motion and giving everything else (base motion, EEF motion) a lower priority when solving IK, we have maximized the CoM reachability region as we pushed other tasks to be solved with lower priority.
Algorithm 4 Constrained multi-priority IK solver.
  • Input: Tasks with priorities, q ̲ , q ¯
  • Result: Joint coordinates q
  • d o n e = False
  • q * = q
  • while  ¬ d o n e   do
  •      s u c c e s s = True
  •     Compute constraint Jacobian J C
  •      J = J C , a = 0
  •     for priority i in all priorities do
  •           (I) Compute error e i
  •           (II) Compute task Jacobian J i
  •           (III) Solve quadratic program:
  •            v * = argmax J i v e j
  •            such that:
  •              III.a) J v = a
  •              III.b) q ̲ q * + α v q ¯
  •           (IV) q * = q * + α v *
  •           (V) J = J T J i T T a = a T J i v * T T
  •           (VI) d o n e = d o n e e i < ϵ e v * < ϵ v
  •     end for
  • end while
  • return  q *

5. Implementation

In this section, we will go through the implementation details, allowing us to run the approach efficiently in simulation.
As previously stated, the contact sequence is given in advance, and for each segment of the motion, we have two phases:
  • Moving the CoM while all four feet are in contact with the environment
  • Moving the foot while CoM is stationary and the other three feet are in contact with the environment
What is common for both phases is that we have both kinematic constraints and force constraints coming from (three or four) feet in contact with the environment. While maintaining constraints, we must move some reference points (CoM or foot). Also, Solo12 is a torque-controlled robot, meaning that we are supposed to present a set of torque commands in each step. For this purpose, we have used a custom whole-body controller.

5.1. Whole-Body Controller

Whole-body control has been extensively studied by robotics research in the past. Some great examples of multi-priority whole-body controllers were presented in [29,30]. Those control schemes were able to solve multi-priority equality and inequality-constrained problems. Unfortunately, such methods require several optimization problems to be solved in each step, making them computationally inefficient. As noted in [31], it is hard to achieve the high frequencies needed for torque control when using multiple priorities. It is stated that only when using a single priority 1 kHz control loop can it be achieved. On the other hand, machine learning-based controllers cannot guarantee the fulfillment of the constraints. Hence, they cannot guarantee the static stability of the system. For these reasons, we decided to define the whole body controller as a single-priority multi-objective constrained quadratic program. The QP is as follows:
min q ¨ , τ , f 1 f n c J T q ¨ a T + λ τ τ + λ f i = 1 n c T i f i s . t M q ¨ + C q ˙ + g = 0 6 × n j I n j × n j τ + i = 1 n c J i T f i J i q ¨ + J ˙ i q ˙ = 0 , i = 1 n c B i f i < 0 , i = 1 n c τ ̲ < τ < τ ¯
The objective function is composed of three parts. The first part tries to minimize deviation from the desired motion where J T is a task Jacobian and a T is the desired acceleration. The second term is used to minimize joint torques τ , while the third term is used to reduce contact forces f i multiplied by the weighing matrix T i . In the case we have considered, we were trying to minimize only forces tangential to the surface, so the weighing matrix assumes the form:
T i = 1 0 0 0 1 0 R i T .
That way, we are trying to minimize the possibility of sliding.
The first equality constraint from QP given by (7) is a general equation dynamics of multi-body systems, with matrix M representing inertia matrix, C representing matrix of Coriolis and centrifugal effects and g is a gravitational load. The next equality constraint is a contact constraint, saying the acceleration of the contact point should be 0. The last two inequality constraints are the same as III.b and III.c from Algorithm 1, with the first one being the constraint of force coming from point contact with Coulomb friction, and the second one being a constraint on actuation torques. All Jacobians, inertia and Coriolis matrices and gravitational load were computed using Pinocchio [32], a library providing fast and efficient Rigid Body Algorithms. With ProxQP and C++ implementation, the QP is solved in less than 0.15 ms, while the computation of Jacobians and other necessary matrices in Equation (7) takes less than 0.05 ms on computer running Ubuntu 24.04 with AMD Ryzen7 5800H processor with 16 GB of ram memory. The whole-body controller can be run at even faster rates, up to 5 kHz, which is 20 times faster than the whole-body controller from [26], but we decided to go with 1 kHz due to the communication bandwidth between the PC and the real robot.

5.2. Moving CoM Phase

In this phase, the emphasis is on moving CoM while all four legs are in contact with the ground. The CoM has to follow a trajectory in 2D, the base has to keep its orientation parallel to the instantaneous walking plane, and the base has to be at a given height. Thus, the task Jacobian and desired acceleration assume the form:
J T = J C o M , x y S J B
a T = a C o M , x y d e s J ˙ C o M , x y q ˙ D a B d e s J ˙ B q ˙ ,
where J C o M , x y R 2 × 18 and J ˙ B R 6 × 18 are Jacobians associated with CoM in xy plane and translational and rotational motion of the base, respectively. Matrix D = 0 4 × 2 I 4 × 4 diag R W T , R W T rotates the base motion to instantaneous walking plane and selects just translation in z direction and rotation part by dropping the first two rows. Vectors a C o M , x y d e s and a B d e s are desired CoM and base accelerations. The accelerations are obtained so that those two reference points follow the defined trajectory computed during CoM motion planning. Based on the current state and output of the Sequential CoM computation, linear CoM and base trajectories are defined. Desired accelerations are computed as a combination of reference accelerations a r e f computed from the trajectory and PD components. The equations for both desired accelerations follow the same form:
a d e s = a r e f + K p e + K d e ˙ .
In the former equation, the tracking error is denoted by e , while K p and K d are position and derivative gains.
As we need precise CoM motion to maintain static balance, the highest-priority task in IK during the sequential CoM computation was CoM positioning. Since having a flat base or being at some distance from the feet is not of fundamental importance, the base movement task in the IK was the second priority. Both are flattened and assigned the same priority in our whole-body controller, but with values resulting from prioritized IK, guaranteeing that the robot can fulfill both tasks.

5.3. Swing Phase

As in the previous phase in each control cycle, the optimization problem given by Equation (7) is given. The only difference is that one less contact is present, n c = 3 , and that we need to take care of the trajectory of the foot. Before starting this phase, prioritized IK was solved once more, with CoM position and swing foot positioning having the highest priority, while base position still had lower priority. That way, we guarantee that CoM will stay at the previously computed statically stable position while reaching the foot placement at the expense of base height and orientation.
The task Jacobian, in this case, assumes the form:
J T = J C o M , x y S J B J s
a T = a C o M , x y d e s J ˙ C o M , x y q ˙ D a B d e s J ˙ B q ˙ a s d e s J ˙ s q ˙ ,
where s is the index of the swinging foot, the trajectory of the foot is obtained by fitting a cubic spline to an initial, intermediate, and desired location of the foot. The intermediate point is computed from the desired point and the normal to the new contact surface.

6. Experimental Results

For the experimental validation, we chose the high-torque and high-friction cases. The first one is when the robot is supposed to walk up the slope inclined at 60° degrees. In that case, frictional forces must be carefully considered to avoid sliding the feet in contact with the slope. In the other case, we consider a case where a robot walks with its front feet up a vertical wall. Besides the high frictional forces, a huge load is exerted on the back legs as they have to carry the whole weight of the robot and additionally push against the wall to avoid sliding. If we used coarse four-sided friction pyramids and robots with not enough torque, these motions would not be possible. Improved computation times of the feasible region allow us to use finer six- and eight-sided friction pyramids, making planning and control of these motions possible.
The simulation of our approach was performed using Mujoco [33], as its physics simulation engine is considered the most accurate [34]. For such a purpose and easy transfer from the sim to the real, we had to develop our infrastructure. The whole software was designed as two different ROS2 packages, where ROS2 itself was used mainly to organize the codebase, dependencies, and for visualization through RViz. The entire control stack, together with the Mujoco simulator or the real robot drivers, runs as a single ROS2 node. We kept everything running as a single process to avoid copying data, serialization/deserialization overhead, and communication delays in a typical publisher/subscriber architecture. That way, the control loop could achieve a frequency of 1 kHz. The friction coefficient set for simulation was μ = 1 . All previously denoted algorithms are implemented in C++, using Pinocchio [35] to compute the kinematics and dynamics of Solo12 robot [28]. Solo12 is a torque-controlled, open-source modular robot. It was designed so that it can be 3D-printed and built in-house. It has 12 motors, each outputting a maximum 2.5 Nm at each joint. The robot weighs around 2 kg and its legs are approximately 20 cm long. The control and simulation model fully respected all joint and torque limits. When computing the control torques, we used six-sided friction pyramids with a friction coefficient of 0.9 . The whole control and simulation code has been disclosed at Github (https://github.com/ajsmilutin/ftn_solo, accessed on 22 April 2025).

6.1. Walking Up the 60-Degree Slope

In this case, the robot should walk up the slope of 60 . As it is impossible to stand on such a slope without any adhesion, the case is tailored so that at least one of the robot’s feet is in contact with the horizontal plane (either ground or top surface). However, in such a case, high tangential friction forces are present, especially when two feet are in contact with the slope and just one with the horizontal plane. The shape of the feasible region for one segment in such a case is already depicted in Figure 4. Figure 5 shows the whole motion sequence. It presents the robot in four phases: the initial pose, with front feet against the slope, back feet against the slope, and the final pose. Figure 6 shows the CoM trajectory and planned CoM motion, together with several feasible regions. It can be seen that feasible regions change shape and size drastically based on the phase. Also, when two back feet are in contact with the slope, and just one front foot is in contact with the top surface, the feasible region is the smallest. During one phase of the motion, the robot changes the configuration of the back knees from knees inwards to knees outwards to avoid collision with the slope.

6.2. Walking Up the Wall

In this case, the robot is walking with its front feet up the vertical wall. This case requires high friction forces to avoid sliding. Our method only requires that the robot be torque-controlled and have four 3-degree-of-freedom legs. To prove the generality of our approach, the simulation is performed using the model of Unitree Go2 robot. That robot weighs around 15 kg with 23 Nm max joint torque, thus having a better power-to-weight ratio than Solo12. Figure 7 shows the whole motion sequence, while Figure 8 shows the CoM trajectory and planned CoM motion, together with several feasible regions. It is interesting to note that in some cases, the feasible region expands outside of the convex hull of the contact points. That contradicts the classical ZMP theory, which assumes that all contacts are in the horizontal plane.

6.3. Feasible Region Computation Time

As claimed previously, this approach and implementation should provide a significant speedup when computing feasible regions. The computation times were benchmarked on the Ubuntu 24.04 running on AMD Ryzen 7 5800H processor with 16 GB of RAM. To obtain the computation time of the feasible region, we would set the number of sides in the friction pyramid and run the simulation 10 times, where in each simulation, the robot would perform 10 steps. The execution times and the number of active contacts would be logged and aggregated afterward. It is important to note that when using four-sided friction pyramids, the robot could not walk up the ramp. In that case, we would simulate walking on flat ground. The mean computation times with standard deviations of the feasible region are given in Table 1. From that table, several conclusions can be drawn:
  • The computation time compared to the IP method described in Section 3.1 decreased around 15 times. Computation time of IP method was taken from [26], where it is stated that the average computation times for four-sided pyramids and three and four contacts are 9 ms and 14 ms, respectively.
  • There are relatively big standard deviations, meaning that in some cases, computation can take much longer.
  • There is a dependency on the number of contacts and sides in friction pyramids.
From the recursively expanding IP algorithm, the computation time may depend on the number of expansion steps, which directly correlates to the number of edges in the boundary of a feasible region. That correlation has been researched and plotted in Figure 9 for each entry from the previous table. From the presented figures, we can see the linear correlation between the two. Still, it depends on the number of sides in the friction pyramid and the number of contacts, which is directly related to some constraints of the optimization problem.

6.4. Experiments on the Real Robot

After successfully verifying our approach in the simulation, we performed experiments on the real Solo12. The experimental setup follows the simulated cases with the difference that the robot was walking up the 45 slope. The resulting motion for walking up the slope is shown in Figure 10. CoM trajectory and feasible regions for several phases are shown in Figure 11. The resulting motion for walking up the wall is given in Figure 12, with CoM and feasible regions shown in Figure 13.
It is worth noting that on the real Solo12, we could not achieve the performance obtained in the simulation due to hardware limitations. Solo12, being mostly 3D-printed and assembled in-house, lacks the accuracy and needed stiffness. The upside of that is that the robot can be easily modified and repaired in-house. Also, we had issues with heat dissipation, as the motors used are built for quadrotors and are not suited for a high-torque low-velocity setup, as in simulated scenarios. Despite these limitations, we have shown that our method can run in real time on 1 kHz and that it is able to handle high-torque high-friction scenarios.

7. Conclusions and Future Work

In this paper, we first presented the improved IP algorithm that solves the same initial problem but, due to a change in approach, yielded a 15 × speedup, as reported in Section 6. We also tackled the reachability issue when planning a quasi-static walk by introducing iterative CoM computation coupled with a prioritized constrained IK solver. That helped us create a quasi-static walk capable of scaling the 60 slope. The planned motion was performed using a whole-body controller running at 1 kHz. The approach was tested in a high-fidelity Mujoco simulator on a model of the Solo12 quadruped. We also ran the simulated experiment on Solo12 quadruped in our lab. As we experienced numerous hardware limitations, we hope to repeat the experiment on more mature and reliable hardware. In related works, the case of unbounded CoM acceleration was identified. We want to test the applicability of the proposed method and algorithms in such a case.
Apart from performing tests on a real robot, several other research topics were discussed. First, we plan only on the horizontal plane, but we do not plan the trajectory on the vertical plane. Except for reachability, motion in the vertical direction influences joint configurations, influencing Jacobians and limits due to joint torques. Also, in this paper, we have given a contact sequence, which opens up a problem of contact sequence planning to give the desired robot motion. With the newly adopted method, we have opened the door to faster contact sequence and motion planning, which will be part of our future research.
The biggest limitation of this method is that quasi-static motion is inherently slow, although very stable. To speed it up, we would have to consider dynamic effects and take the planning of the CoM motion more carefully. Also, the friction coefficient is unknown, but we heavily rely on it when computing the feasible region. The method for estimating friction coefficients based on visual and tactile sensor data will be necessary to mitigate this issue. The last issue we noticed is that sometimes, IK would take a long time to compute, making the motion even slower.

Author Contributions

Conceptualization, M.N. and T.Z.; methodology, S.S.; software, M.N. and V.M.; validation, M.N., V.M. and T.Z.; writing—original draft preparation, M.N. and S.S.; writing—review and editing, S.S. and V.M.; visualization, M.N.; supervision, T.Z. All authors have read and agreed to the published version of the manuscript.

Funding

This research has been supported by the Ministry of Science, Technological Development and Innovation (Contract No. 451-03-137/2025-03/200156) and the Faculty of Technical Sciences, University of Novi Sad through the project “Scientific and Artistic Research Work of Researchers in Teaching and Associate Positions at the Faculty of Technical Sciences, University of Novi Sad 2025” (No. 01-50/295). This work was supported by the National Natural Science Foundation of China (Grant No. 62306185); The Guangdong Basic and Applied Basic Research Foundation (Grant No. 2024A1515012065), the Shenzhen Science and Technology Program (Grant No. JSGGKQTD20221101115656029 and KJZD20230923113801004).

Data Availability Statement

The whole control and simulation code has been disclosed at Github (https://github.com/ajsmilutin/ftn_solo, accessed on 22 April 2025) and can be freely used under MIT license.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Biswal, P.; Mohanty, P.K. Development of quadruped walking robots: A review. Ain Shams Eng. J. 2021, 12, 2017–2031. [Google Scholar] [CrossRef]
  2. Rubio, F.; Valero, F.; Llopis-Albert, C. A review of mobile robots: Concepts, methods, theoretical framework, and applications. Int. J. Adv. Robot. Syst. 2019, 16, 1729881419839596. [Google Scholar] [CrossRef]
  3. Hutter, M.; Gehring, C.; Jud, D.; Lauber, A.; Bellicoso, C.D.; Tsounis, V.; Hwangbo, J.; Bodie, K.; Fankhauser, P.; Bloesch, M.; et al. ANYmal—A highly mobile and dynamic quadrupedal robot. In Proceedings of the 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Daejeon, Republic of Korea, 9–14 October 2016; pp. 38–44. [Google Scholar] [CrossRef]
  4. Léziart, P.A.; Flayols, T.; Grimminger, F.; Mansard, N.; Souères, P. Implementation of a Reactive Walking Controller for the New Open-Hardware Quadruped Solo-12. In Proceedings of the 2021 IEEE International Conference on Robotics and Automation (ICRA), Xi’an, China, 30 May–5 June 2021; pp. 5007–5013. [Google Scholar] [CrossRef]
  5. Minniti, M.V.; Grandia, R.; Farshidian, F.; Hutter, M. Adaptive CLF-MPC with Application to Quadrupedal Robots. IEEE Robot. Autom. Lett. 2022, 7, 565–572. [Google Scholar] [CrossRef]
  6. Lee, J.; Hwangbo, J.; Wellhausen, L.; Koltun, V.; Hutter, M. Learning quadrupedal locomotion over challenging terrain. Sci. Robot. 2020, 5, eabc5986. [Google Scholar] [CrossRef] [PubMed]
  7. Choi, S.; Ji, G.; Park, J.; Kim, H.; Mun, J.; Lee, J.H.; Hwangbo, J. Learning quadrupedal locomotion on deformable terrain. Sci. Robot. 2023, 8, eade2256. [Google Scholar] [CrossRef] [PubMed]
  8. Kang, D.; Cheng, J.; Zamora, M.; Zargarbashi, F.; Coros, S. RL + Model-Based Control: Using On-Demand Optimal Control to Learn Versatile Legged Locomotion. IEEE Robot. Autom. Lett. 2023, 8, 6619–6626. [Google Scholar] [CrossRef]
  9. Jacoff, A.; Jeon, J.; Huke, O.; Kanoulas, D.; Ha, S.; Kim, D.; Moon, H. Taking the First Step Toward Autonomous Quadruped Robots: The Quadruped Robot Challenge at ICRA 2023 in London [Competitions]. IEEE Robot. Autom. Mag. 2023, 30, 154–158. [Google Scholar] [CrossRef]
  10. Vukobratović, M.; Stepanenko, J. On the stability of anthropomorphic systems. Math. Biosci. 1972, 15, 1–37. [Google Scholar] [CrossRef]
  11. Vukobratović, M.; Borovac, B. Zero-moment point—Thirty five years of its life. Int. J. Humanoid Robot. 2004, 1, 157–173. [Google Scholar] [CrossRef]
  12. Vukobratović, M.; Borovac, B.; Potkonjak, V. Towards a unified understanding of basic notions and terms in humanoid robotics. Robotica 2007, 25, 87–101. [Google Scholar] [CrossRef]
  13. Harada, K.; Kajita, S.; Kaneko, K.; Hirukawa, H. Dynamics and balance of a humanoid robot during manipulation tasks. Robot. IEEE Trans. 2006, 22, 568–575. [Google Scholar] [CrossRef]
  14. Hirukawa, H.; Hattori, S.; Harada, K.; Kajita, S.; Kaneko, K.; Kanehiro, F.; Fujiwara, K.; Morisawa, M. A universal stability criterion of the foot contact of legged robots-adios ZMP. In Proceedings of the Robotics and Automation—ICRA 2006, Orlando, FL, USA, 15–19 May 2006; pp. 1976–1983. [Google Scholar]
  15. Caron, S.; Pham, Q.C.; Nakamura, Y. Stability of surface contacts for humanoid robots: Closed-form formulae of the Contact Wrench Cone for rectangular support areas. In Proceedings of the 2015 IEEE International Conference on Robotics and Automation (ICRA), Washington, DC, USA, 26–30 May 2015; pp. 5107–5112. [Google Scholar] [CrossRef]
  16. Nikolić, M.; Branislav, B.; Raković, M. Dynamic balance preservation and prevention of sliding for humanoid robots in the presence of multiple spatial contacts. Multibody Syst. Dyn. 2018, 42, 197–218. [Google Scholar] [CrossRef]
  17. Caron, S.; Pham, Q.C.; Nakamura, Y. Leveraging Cone Double Description for Multi-contact Stability of Humanoids with Applications to Statics and Dynamics. In Proceedings of the Robotics: Science and Systems, Rome, Italy, 23–17 July 2015; Volume 11, pp. 1–9. [Google Scholar]
  18. Fukuda, K.; Prodon, A. Combinatorics and Computer Science: 8th Franco-Japanese and 4th Franco-Chinese Conference, Brest, France, 3–5 July 1995, Selected Papers; Chapter Double Description Method Revisited; Springer: Berlin/Heidelberg, Germany, 1996; pp. 91–111. [Google Scholar] [CrossRef]
  19. Caron, S.; Pham, Q.C.; Nakamura, Y. ZMP Support Areas for Multicontact Mobility Under Frictional Constraints. IEEE Trans. Robot. 2017, 33, 67–80. [Google Scholar] [CrossRef]
  20. Nikolić, M.; Borovac, B.; Raković, M.; Žigić, M. Center of Mass Wrench Constraints in Presence of Spatially Distributed Contacts. In Proceedings of the Advances in Service and Industrial Robotics, France, Paris, 21–23 June 2021; Petrič, T., Ude, A., Žlajpah, L., Eds.; Springer: Cham, Swizerland, 2023; pp. 325–333. [Google Scholar]
  21. Barber, C.B.; Dobkin, D.P.; Huhdanpaa, H. The quickhull algorithm for convex hulls. ACM Trans. Math. Softw. 1996, 22, 469–483. [Google Scholar] [CrossRef]
  22. Borovac, B.; Nikolić, M.; Raković, M.; Savić, S. ZMP— Where Are We After Fifty-Five Years? Int. J. Humanoid Robot. 2024, 21, 2350030. [Google Scholar] [CrossRef]
  23. Orsolino, R.; Focchi, M.; Mastalli, C.; Dai, H.; Caldwell, D.G.; Semini, C. Application of Wrench-Based Feasibility Analysis to the Online Trajectory Optimization of Legged Robots. IEEE Robot. Autom. Lett. 2018, 3, 3363–3370. [Google Scholar] [CrossRef]
  24. Orsolino, R.; Focchi, M.; Caron, S.; Raiola, G.; Barasuol, V.; Caldwell, D.G.; Semini, C. Feasible Region: An Actuation-Aware Extension of the Support Region. Trans. Rob. 2020, 36, 1239–1255. [Google Scholar] [CrossRef]
  25. Bretl, T.; Lall, S. Testing Static Equilibrium for Legged Robots. IEEE Trans. Robot. 2008, 24, 794–807. [Google Scholar] [CrossRef]
  26. Abdalla, A.; Focchi, M.; Orsolino, R.; Semini, C. An Efficient Paradigm for Feasibility Guarantees in Legged Locomotion. IEEE Trans. Robot. 2023, 39, 3499–3515. [Google Scholar] [CrossRef]
  27. Bambade, A.; El-Kazdadi, S.; Taylor, A.; Carpentier, J. PROX-QP: Yet another Quadratic Programming Solver for Robotics and beyond. In Proceedings of the RSS 2022-Robotics: Science and Systems, New York, NY, USA, 27 June–1 July 2022. [Google Scholar]
  28. Grimminger, F.; Meduri, A.; Khadiv, M.; Viereck, J.; Wüthrich, M.; Naveau, M.; Berenz, V.; Heim, S.; Widmaier, F.; Flayols, T.; et al. An Open Torque-Controlled Modular Robot Architecture for Legged Locomotion Research. IEEE Robot. Autom. Lett. 2020, 5, 3650–3657. [Google Scholar] [CrossRef]
  29. Nikolić, M.; Borovac, B.; Raković, M.; Savić, S. A further generalization of task-oriented control through tasks prioritization. Int. J. Humanoid Robot. 2013, 10, 1350012. [Google Scholar] [CrossRef]
  30. Herzog, A.; Rotella, N.; Mason, S.; Grimminger, F.; Schaal, S.; Righetti, L. Momentum control with hierarchical inverse dynamics on a torque-controlled humanoid. Auton. Robot. 2016, 40, 473–491. [Google Scholar] [CrossRef]
  31. Raiola, G.; Mingo Hoffman, E.; Focchi, M.; Tsagarakis, N.; Semini, C. A simple yet effective whole-body locomotion framework for quadruped robots. Front. Robot. AI 2020, 7, 159. [Google Scholar] [CrossRef] [PubMed]
  32. Carpentier, J.; Budhiraja, R.; Mansard, N. Proximal and Sparse Resolution of Constrained Dynamic Equations. In Proceedings of the Robotics: Science and Systems 2021, Virtual/Austin, TX, USA, 12–16 July 2021. [Google Scholar]
  33. Todorov, E.; Erez, T.; Tassa, Y. MuJoCo: A physics engine for model-based control. In Proceedings of the 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, Vilamoura-Algarve, Portugal, 7–12 October 2012; pp. 5026–5033. [Google Scholar] [CrossRef]
  34. Collins, J.; Chand, S.; Vanderkop, A.; Howard, D. A Review of Physics Simulators for Robotic Applications. IEEE Access 2021, 9, 51416–51431. [Google Scholar] [CrossRef]
  35. Carpentier, J.; Saurel, G.; Buondonno, G.; Mirabel, J.; Lamiraux, F.; Stasse, O.; Mansard, N. The Pinocchio C++ library—A fast and flexible implementation of rigid body dynamics algorithms and their analytical derivatives. In Proceedings of the IEEE International Symposium on System Integrations (SII), Paris, France, 14–16 January 2019. [Google Scholar]
Figure 1. Single iteration of the IP algorithm.
Figure 1. Single iteration of the IP algorithm.
Actuators 14 00202 g001
Figure 2. First three iterations of the recursively expanding IP algorithm. It starts from two extrema, then solving LP finds c x y 1 * . In the next two steps, the same LP from the newly added dashed lines on the left and the right is solved. LP starts from the midpoint and expands in a direction normal to the line pointing outward. By solving those two LPs, we obtain c x y 2 * and c x y 3 * .
Figure 2. First three iterations of the recursively expanding IP algorithm. It starts from two extrema, then solving LP finds c x y 1 * . In the next two steps, the same LP from the newly added dashed lines on the left and the right is solved. LP starts from the midpoint and expands in a direction normal to the line pointing outward. By solving those two LPs, we obtain c x y 2 * and c x y 3 * .
Actuators 14 00202 g002
Figure 3. Solo12 robot standing with its front feet on a 60° slope. In (a), the robot is in a configuration with its back knees inwards, while in (b), the robot’s back knees are pointing outwards. The blue and red line represent contact support and feasible area respectively. CoM projection is denoted with yellow circle. In (c), characteristic points and areas of interest are given.
Figure 3. Solo12 robot standing with its front feet on a 60° slope. In (a), the robot is in a configuration with its back knees inwards, while in (b), the robot’s back knees are pointing outwards. The blue and red line represent contact support and feasible area respectively. CoM projection is denoted with yellow circle. In (c), characteristic points and areas of interest are given.
Actuators 14 00202 g003
Figure 4. One iteration of sequential CoM computation. The star depicts the initial CoM position, and a purple dashed line is the boundary of the feasible region. After one step, a black triangle depicts a new CoM position, and the new boundary is drawn.
Figure 4. One iteration of sequential CoM computation. The star depicts the initial CoM position, and a purple dashed line is the boundary of the feasible region. After one step, a black triangle depicts a new CoM position, and the new boundary is drawn.
Actuators 14 00202 g004
Figure 5. Solo12 walking up a 60 slope depicted in four different phases: (a) initial pose, (b) with front feet against the slope, (c) with back feet against the slope, (d) at final position. Orange arrows represent the contact forces computed by whole-body controller.
Figure 5. Solo12 walking up a 60 slope depicted in four different phases: (a) initial pose, (b) with front feet against the slope, (c) with back feet against the slope, (d) at final position. Orange arrows represent the contact forces computed by whole-body controller.
Actuators 14 00202 g005
Figure 6. The CoM trajectories together with desired CoM poses. Feasible areas for cases in previous figures are also shown.
Figure 6. The CoM trajectories together with desired CoM poses. Feasible areas for cases in previous figures are also shown.
Actuators 14 00202 g006
Figure 7. Go2 walking up vertical wall depicted in 4 different phases: (a) front left foot touching with wall, (b) both front feet pushing against the wall low, (c) both front feet pushing against the wall high, (d) at final position. Orange arrows represent the contact forces computed by whole-body controller.
Figure 7. Go2 walking up vertical wall depicted in 4 different phases: (a) front left foot touching with wall, (b) both front feet pushing against the wall low, (c) both front feet pushing against the wall high, (d) at final position. Orange arrows represent the contact forces computed by whole-body controller.
Actuators 14 00202 g007
Figure 8. The CoM trajectories together with desired CoM poses. Feasible areas for cases in previous figures are also shown.
Figure 8. The CoM trajectories together with desired CoM poses. Feasible areas for cases in previous figures are also shown.
Actuators 14 00202 g008
Figure 9. The correlation between feasible region computation times and number of edges in the boundary of the feasible region.
Figure 9. The correlation between feasible region computation times and number of edges in the boundary of the feasible region.
Actuators 14 00202 g009
Figure 10. Solo12 walking up a 45 slope: (a) front left in swing phase, (b) front left foot touching the wall, (c) right foot in swing phase, (d) front feet pushing against the slope.
Figure 10. Solo12 walking up a 45 slope: (a) front left in swing phase, (b) front left foot touching the wall, (c) right foot in swing phase, (d) front feet pushing against the slope.
Actuators 14 00202 g010
Figure 11. The CoM trajectories together with desired CoM poses. Feasible areas for cases in previous figures are also shown.
Figure 11. The CoM trajectories together with desired CoM poses. Feasible areas for cases in previous figures are also shown.
Actuators 14 00202 g011
Figure 12. Solo walking up vertical wall depicted in 4 different phases: (a) starting pose (b) front left foot in touch with wall, (b) both front feet pushing against the wall low, (c) both front feet pushing against the wall high, (d) at final position.
Figure 12. Solo walking up vertical wall depicted in 4 different phases: (a) starting pose (b) front left foot in touch with wall, (b) both front feet pushing against the wall low, (c) both front feet pushing against the wall high, (d) at final position.
Actuators 14 00202 g012aActuators 14 00202 g012b
Figure 13. The CoM trajectories together with desired CoM poses. Feasible areas for whole motion sequence is shown.
Figure 13. The CoM trajectories together with desired CoM poses. Feasible areas for whole motion sequence is shown.
Actuators 14 00202 g013
Table 1. Mean computation time and standard deviation of feasible region using recursively expanding IP algorithm in ms.
Table 1. Mean computation time and standard deviation of feasible region using recursively expanding IP algorithm in ms.
Number of Sides in Friction Pyramid
Num. Contacts468
30.596 ± 0.2990.692 ± 0.2511.664 ± 0.863
41.288 ± 0.5631.683 ± 0.8113.531 ± 1.511
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Nikolić, M.; Mitić, V.; Savić, S.; Zhang , T. Efficient CoM Motion Planning for Quadruped Robots’ Quasi-Static Walking. Actuators 2025, 14, 202. https://doi.org/10.3390/act14050202

AMA Style

Nikolić M, Mitić V, Savić S, Zhang  T. Efficient CoM Motion Planning for Quadruped Robots’ Quasi-Static Walking. Actuators. 2025; 14(5):202. https://doi.org/10.3390/act14050202

Chicago/Turabian Style

Nikolić, Milutin, Vladimir Mitić, Srđan Savić, and Tianwei Zhang . 2025. "Efficient CoM Motion Planning for Quadruped Robots’ Quasi-Static Walking" Actuators 14, no. 5: 202. https://doi.org/10.3390/act14050202

APA Style

Nikolić, M., Mitić, V., Savić, S., & Zhang , T. (2025). Efficient CoM Motion Planning for Quadruped Robots’ Quasi-Static Walking. Actuators, 14(5), 202. https://doi.org/10.3390/act14050202

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop