Whole-Body MPC for a Dynamically Stable Mobile Manipulator
Maria Vittoria Minniti Farbod Farshidian Ruben Grandia Marco Hutter


N-qubit system in a pure state: a necessary
and sufficient condition for unentanglement
    Alain Deville
Yannick Deville
    Received: date / Accepted: date
=======================================================================================





Autonomous mobile manipulation offers a dual advantage of mobility provided by a mobile platform and dexterity afforded by the manipulator.  
In this paper, we present a whole-body optimal control framework to jointly solve the problems of manipulation, balancing and interaction as one optimization problem for an inherently unstable robot. The optimization is performed using a Model Predictive Control (MPC) approach;

the optimal control problem is transcribed at the end-effector space, treating the position and orientation tasks in the MPC planner, and skillfully planning for end-effector contact forces. The proposed formulation evaluates how the control decisions aimed at end-effector tracking and environment interaction will affect the balance of the system in the future.
We showcase the advantages of the proposed MPC approach on the example of a ball-balancing robot with a robotic manipulator and validate our controller in hardware experiments for tasks such as end-effector pose tracking and door opening.


Mobile Manipulation, Optimization and Optimal Control
























§ INTRODUCTION


Robots that are balancing on a ball, i.e. ballbots, are interesting machines to study control principles due to their static instability when balancing on a single point contact <cit.>. This control problem becomes even more challenging if one such robot is equipped with a multi-degrees-of-freedom (DOF) manipulator that can move objects and interact with the environment. The underlying dynamics of such robotic system is highly non-linear and unstable, which requires planning and control approaches that consider the full system dynamics. 

While ballbot balancing has been extensively studied in literature (see Section <ref>), the extension with manipulation skills has not been investigated. In real world applications, the only existing work tackling manipulators of low complexity on a ballbot <cit.> has only looked into control structures where the tridimensional, non-linear dynamics of the robot was approximated in two decoupled planes.

In this work, we present a  whole-body motion planning and control framework for mobile manipulators where the platform has unstable dynamics. The proposed method actively corrects for dynamic instabilities, making the closed loop system dynamically stable, while enabling manipulation and interaction.

Our contribution is demonstrated on a new design of Rezero, shown in Fig. <ref> and <ref>. This robot is a fully torque-controlled mobile manipulation system balancing on a single actuated ball, and it has a 3 DOF arm mounted on top. Many challenges arise in the control of an inherently unstable, non-minimum phase system when an arm is added. The additional inertia and the interaction between the dynamics of the arm and the mobile base result in a strong disturbance to the balancing task. End-effector control must be carefully designed in order not to compromise the balance of the platform.

The usual strategy to control mobile manipulators is to use a task space control scheme based on inverse dynamics <cit.>. This approach achieves a satisfying performance when the manipulator under consideration is statically stable, such as a robotic arm on a fully actuated mobile base. However, when dealing with statically unstable mobile manipulators, which are underactuated, inverse dynamics control is more difficult to apply because of the presence of an unstable zero dynamics.


In the robotics literature, there are works that have treated the manipulation problem for systems balancing on unstable platforms (e.g., <cit.>, <cit.>, <cit.>). However, current approaches do not take into account the full non-linear system dynamics in the planner. Therefore, they require more modeling assumptions and restrict the range of reachable tasks. Furthermore, by devicing a planner for balancing and a controller for end-effector tracking, they treat balancing and end-effector tasks separately in their control structure. These formulations introduce pre-defined levels of hierarchies in the controller definition, thus limiting the full expressiveness and capabilities of the approach.

In this paper, our main contribution consists in proposing an optimal control framework for treating both balancing and end-effector tasks in the same planning stage and over the same time horizon for a dynamically balancing mobile manipulator, while leveraging the full system dynamics. This allows the controller to take into account not only the tracking of the end-effector tasks, but also the stability over a time horizon. To further increase the robustness of our control structure, an MPC framework is used to adjust the control trajectory based on the most recent estimation of the system's state in a receding horizon fashion. 

Furthermore, we provide a description of how to incorporate a variety of tasks inside the optimal control problem. We show how it is possible to formulate the problem such that the system is capable of performing at the same time ball and end-effector tasks involving both motion control and interaction with the environment. The latter is obtained treating the end-effector contact forces as system inputs, and then adding a quadratic function of the force error inside the cost function. In order to improve the force planning task, inequality constraints are added to ensure that the friction limits are satisfied. 

The proposed approach is thoroughly evaluated in hardware experiments that resulted in the first demonstration of complex mobile manipulation with a ballbot system. 



 §.§ Related Work





Many ball-balancing robots have been built in the past years (<cit.>, <cit.>, <cit.>, <cit.>), although there are not many examples of such systems provided with manipulation capabilities. The first Ballbot system was introduced by Hollis et al. <cit.> at Carnegie Mellon University (CMU). 
The same group provided their robot with a pair of 2 DOF arms <cit.>. However, the control problem employed in such works <cit.> significantly differs from the one presented here. Indeed, the yaw motion for the base and arms of CMU Ballbot is not considered in the planner, which  therefore only uses a decoupled model of the system into two planes, limiting the range of possible tasks and the generalizability to more complex robots. 
 Furthermore, the balancing and manipulation tracking strategies are decoupled.
In <cit.>, the manipulation problem is also addressed for a ballbot with an arm, where the model does not include the yaw DOF and the base is always controlled to be vertical, not allowing for simultaneous ball and arm tracking; results are only shown on a simulated model. As pointed out in <cit.>, these modeling procedures, which model the ballbot motion into two planes, neglect the interaction effects of the full dynamics along the different planes. On the contrary, the controller presented here copes with the full non-linearity of the system and treats balancing and manipulation in a unified planner.


The first generation of Rezero <cit.> was controlled by interpolating LQR controllers at different operating points. Later, other control techniques were tested on this platform, such as a reinforcement learning method <cit.> and an MPC framework <cit.>. There are many novelties with respect to this previous work. First of all, the addition of the arm introduces a heavy disturbance to the stability of the system; therefore, in order to achieve manipulation tasks without compromising the balance of the platform, it is necessary to develop an approach that takes into account the coupling between the arm and the mobile base. In addition, unlike the old robot without the arm, this new upgraded version is provided with series elastic actuators. These provide a safe and compliant behavior, but have shown to be more difficult to control, due to bandwidth limitations and delays. To cope with this increased difficulty, the MPC controller has been modified according to the frequency shaping formulation presented in <cit.>. Most importantly, the focus of this work is how to tackle the simultaneous balancing and manipulation problem, and interaction with the environment. To this end, another novelty is the addition of end-effector motion control tasks in the optimal control problem formulation and the planning for contact forces. In this way the robot is allowed to balance and perform manipulation tasks on different end-effectors (ball and arm) at the same time. In terms of implementation, the current MPC planner is faster than the one presented in <cit.>, can plan for a longer time horizon and allows for all the computations (state estimation, communication, MPC) to run on an on-board PC with moderate computational capabilities, even if the dimensionality of the system has increased. A constrained version of the optimal control problem is being used, while the previous one was unconstrained.

Unlike <cit.>, where only a disturbance rejection and a go-to task were shown, here the proposed approach is validated with tests that show how the robot performs tasks  with different objectives at the same time, including tracking of arm and ball references and environment interaction.




So far, the most remarkable robot capable of performing dynamic coordination of locomotion, manipulation and balancing on a statically unstable platform is Handle by Boston Dynamics <cit.>, whose controller is not described in any publications. In <cit.>, manipulation is performed with an arm on a quadrupedal robot. However, contact forces are considered as disturbances in the balancing planner. The performance or feasibility of the end-effector task is not taken into account while planning for balance.



In the MPC literature, a considerable effort has been put in showing real world applications on high dimensional systems <cit.>, but current approaches struggle with the problem of high computational cost. A way to address this issue is to plan center of mass trajectories for a reduced linear inverted pendulum model (<cit.>,<cit.>,<cit.>). 

These methods do not take into account the end-effector position and orientation tasks in the MPC planner. Hence, it is not possible to plan for the end effector motion and the balancing of the system over the same time horizon. Using a simplified model of the robot, the planner decisions do not consider the non-linearities and couplings of the system dynamics. Furthermore, since actuation torques are not considered during planning, these methods rely on more complex tracking controllers, adding another level of complexity to the control structure.

Compared to these works, since the outputs of the proposed planner are actuation torques and full state reference trajectories, it is possible to use a simple PD tracking controller. Furthermore, planning over end-effector position, orientation and force is included in the MPC formulation, which also takes care of the dynamic stability of the platform. 





§ SYSTEM



 §.§ Physical System



Rezero is a torque-controllable robot with a ball-balancing mobile base and a 3 DOF arm.  
The platform weighs about 25 kg. It is equipped with an onboard computer (Intel i7-7500U, 2.7 GHz, dual-core 64 bit) used for state estimation, motion control, and low-level actuators communication.  
Actuation is achieved by means of series elastic actuators <cit.>. Three omni wheels are placed in a triangular layout between the main body and the ball, allowing the robot to move in any direction and to also rotate around its own axis.
The manipulator on top of the robot is a 3 DOF arm, where that the first joint rotates around the base vertical axis, and the other two rotate around an axis perpendicular to the first one. 



 §.§ System Modeling



In general, the motion of a mobile manipulator with an arm is characterized by n_b + n_a degrees of freedom, where n_b is the number of free variables of the mobile base, and n_a is the number of degrees of freedom of the arm. 

We describe the motion of Rezero with a minimal set of generalized coordinates. These coordinates are the 2D position of the ball in the horizontal plane, the orientation of the base, and 3 joint angles of the arm as depicted in Fig. <ref>. We refer to the base as the main body of the robot, between the ball and the arm.
The system has in total 8 degrees of freedom (n_b = 5, n_a = 3). Rezero is equipped with 6 actuators (n_τ=6), 3 for actuating the ball and 3 at each joint of the arm. Since the number of degrees of freedom of the robot is larger than the number of independent control inputs, the system is underactuated.

In Fig. <ref>, the frames and variables used for the kinematics of the ballbot are depicted. {I} is the inertial reference frame, {B} is a frame rigidly attached to the base body, and {S} is a frame parallel to the base frame and located at the center of the ball.  

We introduce the vector of generalized coordinates and velocities , ∈ℝ^n_b + n_a,  given by:

    = [ p_IS;     ;   _a ],    = [ _IS; _IB;  _a ],
  

where _IS∈ℝ^2, ∈ℝ^3 and _a ∈ℝ^n_a indicate the ball's position in the horizontal plane, a vector of ZYX Euler angles representing the orientation of the base, and the joint coordinates of the arm, respectively. _IB∈ℝ^3 denotes the base angular velocity relative to the inertial frame.




Having chosen the vectors  and  , we treat the robot as a dynamical system with state vector =(, ) ∈ℝ^2(n_b+n_a)
and input vector
=(, _ee) ∈ℝ^n_τ+n_λ, where  and _ee are the actuation torques and the forces exerted by the environment on the end-effector, which may include both linear forces and moments. 

Then, the state equations are given by = (, ), where


    (, ) [                               (); ()^-1(-(, ) + ^T() + ^T_ee()_ee) ]
        .


Here, () ∈ℝ^n_b+n_a × n_b+n_a maps the vector of generalized velocities to the vector of generalized coordinate derivatives. (), () and _ee() are the system mass matrix, vector of non linear effects, and end-effector jacobian, respectively. The actuator selection matrix () depends on the generalized coordinates due to how the ball is actuated.



§ CONTROL METHOD




 §.§ Optimal Control Problem


In this section, we describe the optimization problem and a general form of the employed cost function, which are the key points of our control approach.



Let _IE∈ℝ^3 be the position of the end-effector with respect to the inertial frame. We also define _o ∈ℝ^3 to be an orientation error, which describes the deviation between a desired orientation and a measured one. Depending on the chosen parameterization for the end-effector orientation, there are multiple ways to express such an error. The reader can find additional details in <cit.>, where all the different forms for the orientation error are exhaustively explained. For the sake of completeness, we briefly describe the quaternion distance measure used in this paper.

Let _d = {η_d, _d}, _e = {η_e, _e} be unit quaternions representing the desired end-effector orientation and the measured one, respectively. If the desired end-effector frame and the measured one coincide, the equations

= _d ⋆_e^-1 = {1, 0}

must be satisfied, where the symbol ⋆ indicates the quaternion product operation. This yields the following form for the orientation error:


    _o = η_e _d - η_d _e - [_d]^×_e


where [·]^× indicates the skew matrix operator.

Furthermore, we define = ( , ) ∈ℝ^6 as the twist describing the motion of a rigid body, which includes linear and angular velocity. We will use subscripts to indicate the rigid bodies to which these variables refer.

For every rigid body, our algorithm allows planning over pose, twist, and wrench. Therefore the set of optimization variables is SE(3) ×ℝ^6 ×ℝ^6. 
According to our modeling framework, the motion and force planning problem can be written in terms of the following minimization problem 



    J 
           = min_(·), _ee(·)1/2∫_0^T 
        [ 
        ‖_IE^d - _IE‖^2_^ee_pos 
        + ‖_IS^d - _IS‖^2_^s_pos
       = min_u(·)1/2∫
        + ‖_o_IE‖^2_^ee_or
        +  ‖_o_IS‖^2_^s_or 
        +‖_IE^d - _IE‖^2_^ee_vel
       = min_u(·)1/2∫
        + ‖_IS^d - _IS‖^2_^s_vel+ ‖‖^2__τ
       = min_u(·)1/2∫
        + ‖_ee^d -_ee‖^2__λ] dt,


such that the system's equations of motion and correspondent initial conditions are satisfied


    = (, ),   (0) = _0.



along with the friction cone constraint for the linear force at the end-effector and torque limits:



    √(λ_ee_x^2 + λ_ee_y^2)≤μλ_ee_z, 
       _min≤≤_max,



In (<ref>), μ is a friction coefficient; we assume that the contact force at the end-effector is expressed in a local frame such that the z axis is normal to the contact surface. Inequality constraints are implemented according to a relaxed barrier function formulation, introduced in <cit.>.

Each of the quadratic terms in the cost function corresponds to a task that the robot is required to perform, while satisfying the other tasks at the same time. In (<ref>),  ^ee_pos, ^ee_or, ^ee_vel, ^s_pos, ^s_or, ^s_vel are semidefinite positive matrices which weight position, orientation and (linear and angular) velocity errors at the end-effector and ball frame, respectively. As introduced in section <ref>, since in our robot model a frame parallel to the base frame is located at the center of the ball, it is equivalent to control the ball or base orientation and angular velocity.
_λ is a positive definite matrix for the end-effector wrench error. Finally, to penalize high torque commands, we also add a quadratic penalty on the torque inputs with the weight matrix _τ.  

The choice ^s_pos = 0 gives the algorithm the freedom to plan a desired motion of the ball and the arm in order to track a desired end-effector pose. However, sometimes it may be useful to have 𝐐^s_pos≠0. This is required if the ball of the robot needs to execute specific trajectories while performing manipulation tasks.

Similarly, we may wish not to optimize over end-effector forces and solve a pure motion control problem. Since both _τ, _λ must be positive definite, there are two possibilities. One is the exclusion of force inputs. Otherwise, the same effect is achieved setting _ee^d = 0.




For numerical reasons, it may be useful to add a regularization term to the cost function penalizing the arm joint velocities.

For completeness, in (<ref>), we added a quadratic term with respect to _o_IS. We clarify here that we always only penalize the yaw component θ_z of the base orientation, and let the controller optimize for θ_y and θ_x based on the desired task. Therefore, the balancing task for the robot is only specified through the last three components of the matrix ^s_vel, which weigh the  base angular velocity error.



 §.§ SLQ-MPC Control


The nonlinear optimal control problem defined in equations (<ref>), (<ref>) and (<ref>) has been solved using the Sequential Linear Quadratic (SLQ) algorithm in a model predictive control fashion; details on the employed solver and the MPC scheme can be found in <cit.>.

In summary, this algorithm designs a continuous controller for a nonlinear system. In addition, it has a linear computational complexity with respect to the optimization time-horizon.

In each iteration, the continuous-time SLQ algorithm forward integrates the system dynamics over the time horizon based on the last approximation of the optimal controller. 
Then, it linearizes the system dynamics and quadratizes the cost function over the state and input trajectories derived from the forward integration.

Finally, the algorithm solves a constrained, time-varying LQR problem based on the quadratic cost function and linearized system.
As a result, the updated control input has the form

    (t,) = _ff(t) + α _ff(t) + (t)((t) - _ff(t)),


where α is a line-search parameter used to update the feedforward law.

This algorithm runs a real-time iteration MPC scheme <cit.>, where the solver is triggered by a new state measurement and uses a warm start. In such a scheme, the optimal control solver does not run until convergence: after the real-time iteration, it moves to the next MPC problem.

For the tracking part, we use the feedforward torques, positions and velocities _ff, _ff, _ff, which are outputs of the SLQ-MPC algorithm. Since the solver is continuous time, the discretization is carried out by the ODE solver. During execution, the feedforward trajectory is linearly interpolated around the discretized points.



 §.§ Frequency-shaped cost function

So far, we have assumed perfect tracking of the actuators torques. This is usually not true when dealing with series elastic actuators, such as those used during the experiments. To deal with this modeling mismatch, one possibility is to slightly modify the optimal control problem according to a frequency aware approach, which is described in <cit.>.
In particular, instead of considering directly the wheels torques _w in the cost function, we use a filtered version of those. In frequency:



    τ̂_w_i(ω) = r_i(ω) τ_w_i(ω),    i = 1,2,3


where r_i(ω) is a first-order filter designed based on the frequency response of the actuators. To implement this, we need to add a dynamical system corresponding to the filter dynamics in cascade with the robot's dynamical system, thus increasing the number of filter states from 16 to 19.

Such method allows to consider bandwidth limitations due to the presence of spring elements and has been successfully used to improve torque tracking of the ball actuators.



 §.§ Tracking Problem

Depending on the complexity of the minimization problem, the frequency of the MPC planner can be less than the control loop frequency. Hence, we need to close a local feedback loop to improve the control performance. 

Therefore, it is useful to introduce a set of actuation positions and velocities, that we define as _act, _act and that are functions of both both , . These, for the system under consideration, are the positions and velocities of the joints of the wheels and the arm. 

Then, actuation torques can be computed according to:

    _act = _ff + _D (_act_ff - _act) + _P (_act_ff - _act),

where _P, _D are two positive definite diagonal matrices.

The feedback terms in equation (<ref>) are used to guarantee stability and represent a small contribution to the total torque. Indeed, the elements of _P, _D are very small and, as it will be shown in the results section, the actuators behavior is mainly dictated by the feedforward term _ff.






 §.§ Automatic Differentiation

As other model-based optimization methods, the MPC planner proposed in this paper needs to compute the linearization of the system dynamics and of the cost.
Hence, an automatic differentiation tool (such as Auto-Diff) is required to compute derivatives.
The system dynamics includes the non-linear rigid-body equations of motion, while the cost is a function of the end-effector forward kinematics map; in order to be compatible with automatic differentiation, both have to be functions of a special Auto-Diff scalar type.

In <cit.>, this problem was not addressed because the provided cost function was already quadratic with respect to the system state (there was no end-effector planning) and the equations of motion were stored symbolically, along with their derivatives. This procedure was already memory-consuming for the system without the arm, and it became inapplicable because of the more complex kinematic chain of the robot with the manipulator.

In this work, RobCoGen <cit.> was employed for this scope: an efficient code generation framework for modeling Rigid Body Dynamics, which offers the feature to provide rigid body kinematics and dynamics quantities in terms of the required scalar type.



§ RESULTS


In this section, we validate the performance of our control algorithm. 
In each test, all computations run on the robot's onboard computer (refer to subsection <ref>). 
The controller relies on a state estimator running at 400 Hz, which fuses odometry measurements from the motors' encoders and IMU information to get an estimate of the base pose, linear and angular velocity. The algorithm used for state estimation is based on <cit.>. The MPC loop runs in a separate ROS node at a frequency of approximately 70 Hz, meaning that every 1/70 s the solver optimizes the trajectory based on the latest state measurement. In all the experiments, the time horizon has been fixed to a value between 1s and 2s, that is the range under which the controller has been tested. The tracking controller is implemented inside the internal motor controllers and runs at 2.5 KHz. The structure of the controller is schematically described in Fig. <ref>.

To validate the performance of our proposed motion control approach, we have conducted four experiments. 
These experiments showcase different aspects of our proposed control approach introduced in section <ref>. 
The first experiment focuses on the ability of the controller to coordinate the motion of the base and the arm while the task is just defined at the arm's end-effector space. 
The second experiment demonstrates the disturbance rejection capability of the controller for two different tasks, the ball position control, and the end-effector's position control task.
The third experiment highlights the necessity of a whole-body control approach for Rezero. The experiment compares the behavior of the robot under two different control schemes: the proposed whole-body control approach and a method in which the base and the arm are controlled separately. 
Finally, the last experiment demonstrates how the control scheme skillfully incorporates the reference contact forces at the end-effector into the motion planning for a door opening task.     
All the results are also presented in the video attachment [<https://youtu.be/mFNgbS3L3Ug>] which shows the ability of the robot to perform different tasks.




 §.§ End-effector Reference Pose Tracking


In this experiment, we focus on end-effector pose tracking while ensuring the balance of the robot. 
To this end, we set the cost weight for the ball pose and twist to zero. 
However, we penalize the end-effector pose error and add a small penalty on its twist. 
An important aspect of this experiment is that without specifying the base motion reference, the controller coordinates the motion of the base and the arm in an optimal way such that Rezero fulfills its end-effector task while dynamically balancing.

The tracking performance of the end-effector is demonstrated in Fig. <ref>, which is the robot's response to a sequence of step references for the end-effector's pose in the world frame. 
In these plots, the end-effector pose tracks the reference commands with an acceptable rise time response and steady-state error. 
The quality of the motion can be modified by setting higher weights on the pose tracking error and reducing the penalty over the end-effector's twist.  
In the attached video, you can observe how the base orientation is continuously adapting to the motion of the arm so that the platform remains stable. 

Note that due to the lack of degrees of freedom at the arm, in order to change the rolling along the normal axis of the end-effector (x axis), the base of the robot should tilt. However, since the robot keeps its balance by regulating its tilt angles, the robot cannot track an arbitrary reference around this direction. This effect can be observed in the third plot of Fig. <ref>. This aspect highlights the capability of our optimal controller to make a trade-off between the tracking error minimization at the current instant and the balance of the system in the future.   





 §.§ Disturbance Rejection


The primary purpose of this experiment is to demonstrate the disturbance rejection capability of our motion controller. To this end, we have designed two tasks. In the first task, we are only interested in controlling the ball position. Thus, the cost weight for the ball position is high. As for the arm, we only weigh the end-effector orientation error and we do not penalize end-effector position error. In the second task, we intend to control the position of the end-effector. Therefore, we place a higher weight for the end-effector's position error. 

For the first task experiment, we perturb the robot twice by pushing it away from its initial position. Our disturbances are applied successively along the y and x directions. 
The evolution of the ball position and roll and pitch angles is shown in Fig. <ref>.
The robot maintains its balance by tilting its base pose against perturbation direction (see the attached video). This is a natural behavior where the robot shifts its center of the mass against the perturbation.  




In the attached video, we show the disturbance rejection behavior of the second task where we control the end-effector position. Similarly to when the controlled variable is the ball position, the robot reacts to the disturbance with the motion of its whole body. However, in this experiment, it uses its arm more prominently than before.  



 §.§ The Necessity of the Whole-body Control


Here, we are interested in controlling the ball and the end-effector position at the same time.
As a showcase for this possibility, we give the end-effector a sequence of reference positions, while setting the initial position as a goal for the ball.
In Fig. <ref>, we show how the base adapts to the center of mass location due to the arm motion. Since the robot lower body is consistently heavier than the manipulator, we added weight to the end-effector to highlight the base adaptation.



Furthermore, to manifest that the feedforward term represents the major contribution of the total torque in equation (<ref>), in Fig. <ref>, we compare the trajectories of the measured torque and the feedforward torque for the second joint of the arm during the experiment. We also compute the ratio


    α% 100 |_ff|/|_ff| + |_fb| ,

where _fb represents the feedback part, and plot it in percentage. 



As another example of both ball and end-effector position tracking, in the video attachment we show the behavior of the robot while we command the ball to move on a circular trajectory and the end-effector to remain in the same position.

To further highlight the importance of our whole-body control approach, in the attached video, we show the performance of a setup which has two separate modules for controlling the base and the arm.   
Here, we use a joint-level PID controller for the arm. This controller transforms the transcribed task at the end-effector to a joint level task using an inverse kinematics model. 
For the mobile base, we use a degraded version of our MPC method such that it only controls the base. 
This control only considers the arm at a nominal configuration. 
However, it does not know about the arm motion, and it only receives updated measurements of the base and the ball.  
Therefore, the base controller cannot account for changes in dynamics due to the arm motion.

Similar to the whole-body control experiment, we command the ball to keep a fixed position, while we move the arm's end-effector references. 
Contrary to the whole-body controller, the ball position does not remain fixed as the arm changes configuration (refer to the attached video). 
This experiment manifests the importance of a whole-body control approach for coordinated control of the base and the manipulator in dynamically stable platforms.




 §.§ End-effector Force Planning


In this experiment we want the controller to plan a desired force trajectory at the end-effector in order to push and open a door (see Fig. <ref>).
Therefore, we have not assigned any cost on the end-effector position and velocity. However, we give a penalty to the end-effector orientation and to the error between a desired linear force and a measured one.
Inequality constraints are added for the friction cone (friction coefficient is set to μ = 0.7) and for torque limits.

In Fig. <ref>, the force tracking errors and the evolution of roll and pitch angles are shown, for two scenarios where the desired force is 5N and 10N. The planned roll and pitch motion is such that the robot leans in order to exert a force and remain stable during the experiment. This generated behavior is very similar to that of a human trying to push a heavy door. Therefore, the base is more inclined when the commanded force is higher.
A demonstration of the door pushing experiment with a commanded force of 5N can be visualized in the attached video.










§ CONCLUSION


In this paper, we have addressed the control of mobile manipulators that need to dynamically balance, showing results on a newly designed ball-balancing robot with an arm. Due to its high non-linearity, non-minimum phase behaviour and inherent instability, this system can be considered as a technology demonstrator for all kinds of dynamically balancing mobile manipulators (e.g., humanoids, Segway-type systems and wheeled inverted pendulum with arms).

By defining the desired references as a soft constraint in the optimization, we have allowed the controller to plan for end-effector motion and balance over the same time horizon. By augmenting the action space of MPC with the end-effector forces, our robot has been shown to perform a door-opening task. We highlighted the different behaviors that can be obtained by appropriately choosing the cost function in the optimization and motivated the importance of using a whole-body approach for this kind of robots.




 §.§ Future Work

Although this framework gives the flexibility to design the optimization problem based on the desired task, there are still more steps forward to take to improve our results. 
First, we intend to enhance the hardware platform to show more dynamic base and end-effector movements. Second, we have addressed the force planning problem considering only the robot and neglecting the world dynamics. 
Although it is not explicitly declared during the door opening experiment, by tracking different force references the optimization assigns an arbitrary impedance to the environment at its interaction port. 
This means that in order to be consistent with the physics of the environment, we should have added a set of state-input equality constraints to the MPC problem which relates the end-effector projected acceleration to the planned forces. 
However, we have not considered these constraints. Then, the question is: why does this controller work? 

The key to this issue is the replanning scheme of our controller. 
As long as we underestimate the impedance of the door (i.e., the reference forces are low enough), the door will move less than what our controller planned. Therefore, the contact remains closed and MPC can deal with this discrepancy by replanning from the current state. 
In our future work, we would like to look closer into this issue and improve the controller based on the estimation of the interaction port impedance. 

 ./myIEEEtran 
 
 


