We design and implement a controller to swing up a spherical pendulum carried on by a three links robot arm. This controller is the patch of two linear controllers and a nonlinear one. The latter is based on energy and kinetic momentum assignment and relies in part on the forwarding design technique. 1 Problem statement. We consider a system made of a spherical pendulum carried on by a three links robot arm called 2kπ (see figure 1). We address the problem of swinging up the pendulum (M in figures 1 and 2), i.e. bringing it to its open loop unstable vertical position while having its actuated end point (P in figures 1 and 2) at a prescribed position. More details about the experiment and some implementation data are available in [6, section 6] or can be found at http://cas.ensmp.fr/CAS/2kPi/index-e.html This exactly same problem has been solved in . There, exploiting the property that the system is flat, our colleagues have obtained a solution by designing an open-loop trajectory steering the pendulum from the downward to the upward equilibrium and designing a tracking controller. But our problem differs from the one studied in [2, section 3.2] where the spherical pendulum is controlled only via a planar 2 D acceleration and only local asymptotic stability of the upward equilibrium is considered, without a requirement on the ultimate position of the actuated end point. We propose a solution leading to a closed-loop behavior completely different to what is achieved in . Roughly, here, instead of realizing a fast swing, we put the emphasis on reducing the input magnitude during this 1Extended and corrected version of a paper published in the proceedings of the 39th IEEE Conference on Decision and Control, December 2000. swing. As in , we postulate that the robot arm is nothing but an actuator delivering a desired 3 D acceleration at the actuated end point (P in figures 1 and 2) from its controlled three torques. Of course this assumption does not hold and to make it more realistic, we have to cope with constraints in the controller design : state constraints, bandwidth constraints and saturation constraints. With the above postulate, the dynamics of the system is reduced to the dynamics of the free end point M of the pendulum subject to gravity and to the acceleration of the actuated end point P . Let us denote (see figure 2) : • M the free end point of the pendulum and M the vector it defines from the desired rest point of the actuated end point, • P , the actuated end point and P the corresponding vector, • g, the normalized gravity force, • b the unit vector −−→ PM PM , • l, the length of the pendulum (= PM). • u = ̈ P , the acceleration the robot arm is able to produce at P , i.e. the control in our design, • x . y, the scalar product of x and y, • x ∧ y, the vector product in R of x and y. 1There is no continuous bijection between R3 and S2 × S1. This implies that the actuated end point, denoted P below must remain in a prescribed domain for its desired acceleration to be made possible for the robot arm. Also, the robot arm is not an ideal mechanical system with motors able to deliver arbitrary torques. There are frictions, flexibilities, saturation on the motors, . . . .