1 Design and Analysis of a Blind Philipp Reist, Graduate Student Member, IEEE, and Raffaello D’Andrea, Fellow, IEEE

Abstract—We present the design of the Blind Juggler, a robot that is able to juggle an unconstrained ball without feedback at heights of up to 2 meters. The robot actuates a parabolic aluminum paddle with a linear motor. We achieve open-loop stability of the ball trajectory with two design parameters: 1) the curvature of the parabolic paddle and 2) the acceleration of the paddle at impact. We derive a linear map of perturbations of the nominal ball trajectory over a single bounce, and obtain local stability of the trajectory by tuning the eigenvalues of this mapping with the two design parameters. We consider 9 ball states in this analysis, including ball spin. Experimental data provides the impact states of the ball and paddle. From this data, we can identify system parameters and infer the process noise introduced into the system. We then combine the experimental noise power spectral densities with a model of the system and optimize the design parameters such that the impact of the process noise on juggling performance is minimized. Theoretical as well as experimental results of the optimization are discussed.

Index Terms—Dynamics, Dexterous Manipulation, Mechanism Design, Bouncing Ball, Juggling.

I.INTRODUCTION HE Blind Juggler, shown in Fig. 1, demonstrates that T high-performance robotic juggling of unconstrained balls is possible without using sensors. The Blind Juggler can juggle at apex heights of up to 2 m, even though the robot cannot tilt or pan the aluminum paddle, which is actuated by a linear Fig. 1. The Blind Juggler bouncing a superball. The user interface features motor. In effect, the Blind Juggler can stabilize a ball in three two buttons to control the juggling height. dimensions with only a single actuated degree of freedom. Since there is no feedback, we achieve open-loop stability of the ball trajectory using two key design elements: 1) The paddle has a slightly concave, parabolic shape, which keeps over a single bounce. We tune the eigenvalues of this mapping the ball from bouncing off the robot; 2) A decelerating striking with the paddle curvature and acceleration to achieve local motion of the paddle stabilizes the apex height of the ball. In stability for a range of apex heights and ball parameters. experiments, the Blind Juggler is able to continuously juggle We use a video camera and a microphone to measure a variety of balls at different heights, and exhibits substantial impact states of the ball and paddle in order to assess juggling robustness to horizontal and vertical perturbations. performance in terms of impact location and apex height In particular, the two key design parameters are the cur- variance. We also use these measurements to identify system vature of the parabolic paddle shape and the acceleration of parameters such as the ball coefficient of restitution and to the paddle at ball impact. We determine the specific values infer the process noise introduced into the system by imperfect of the design parameters by analyzing the local stability paddle motions and stochastic ball impact properties. of the nominal ball trajectory. Using a model of the ball We use the process noise measurements to refine the design dynamics, we perform a perturbation analysis of the trajectory parameters and improve juggling performance. First, we set up and calculate how perturbations introduced at the apex map to a linear, time-invariant system that models how the noise input the next apex. We consider nine ball states in this analysis: maps to the outputs: the deviations in ball impact location all translational positions and velocities, and ball spin. Using and apex height. These outputs are what we want to keep first-order approximations to the system dynamics, we obtain a small. Next, we use the frequency response of the linear linear map, i.e. a linearized Poincare´ map of the perturbations system together with the experimental power spectral densities of the process noise to calculate the output variance as a P. Reist and R. D’Andrea are with the Institute for Dynamic Systems and function of the design parameters. We then find the design Control at ETH Zurich,¨ Switzerland (e-mail: reistp, rdandrea @ethz.ch). Additional information about the robot, including{ many videos, may} be found parameters that minimize the output variance. Theoretical at www.blindjuggler.org. results predict a performance improvement for the apex height 2 and no improvement for the impact location. This is also of controllers [12]. This control strategy, which uses confirmed in experiments. The small impact of the paddle vision feedback, was evaluated on a direct drive robot arm, curvature on the impact location variance allows us to choose the Buhgler.¨ With the same arm, Rizzi et al. extended the the curvature according to secondary criteria such as, for mirror law to unconstrained balls and achieved simultaneous example, maximal achievable apex height. juggling of two balls [13]. Kulchenko et al. developed a model This paper is structured as follows: After an overview of re- predictive control strategy for juggling up to two unconstrained lated work, we derive the nominal ball trajectory in Section II. table tennis balls with a single racket using a haptic robot [14]. The perturbation analysis is presented in Section III. We find Other work on control involving juggling includes stabilizing design parameters in Section IV. The prototype Sanfelice’s hybrid control strategies to stabilize juggling of of the Blind Juggler and experimental results are discussed multiple balls [15], and Zavala-R´ıo’s method to deal with in Section V. Lastly, we optimize the design parameters and uncertainty in the coefficient of restitution [16]. Schaal et al. discuss theoretical and experimental results in Section VI. used a juggling setup to develop strategies, where a robot arm iteratively learns to juggle a ball on a plate [17]. Sakaguchi et al. also studied learning strategies A. Related Work using a planar robot arm that juggles bean bags by throwing This paper is based on previous work published in [1], and catching [18]. where we presented preliminary results obtained with a pro- Related to the concepts presented here is the work by totype of the Blind Juggler. New contributions compared Ronsse et al., who analyzed different juggling systems [19]– to previous work include the stability analysis for 9 ball [22], and introduced the term “blind” juggling robot in [22], states (previously a planar model) and using measured noise where they presented a planar ball-in-wedge juggling robot power spectral densities for the design parameter optimization that is able to juggle purely feed-forward or with feedback (previously assumed white process noise). using measured impact times. Their robot is even able to The bouncing ball system has received attention in dynam- generate a similar to the pattern, ics, as it is a simple system that exhibits rich dynamical behav- where the balls follow a circular path. In [21], [22], Ronsse ior, i.e. period doubling (bifurcations) leading to chaos [2], [3]. addressed robustness of the bouncing ball system to static Holmes showed that even with energy dissipation present in and dynamic errors in the ball’s coefficient of restitution. The the form of a coefficient of restitution, chaotic motions of the authors first derived the transfer function of the errors to the ball result for sufficiently high excitation levels [2]. Vincent post-impact velocity perturbations. Then, they placed the zero presented a control strategy for bouncing a ball at a fixed of the transfer function by adjusting the paddle acceleration height that exploits chaotic behavior in [4]. to either compensate for static or dynamic errors. This is an In , juggling is considered a challenging dexterous alternative strategy to the parameter optimization we present task. Buhler¨ et al. were amongst the first to study robotic in this paper. Hobbelen et al. presented an H2-norm inspired juggling using a planar juggling robot [5]. The robot consists gait sensitivity norm that can be used to determine disturbance of a rotating bar equipped with a billiard cushion batting rejection capabilities of limit cycle walking robots [23]. The a puck on an inclined table. Using position feedback, the authors further showed that a stability measure, such as the robot is able to simultaneously juggle up to two pucks. It spectral radius of a linearized Poincare´ map, is a poor indicator uses a feedback strategy called the mirror law introduced by of actual system performance in the presence of stochastic dis- Buhler¨ et al. [6], [7]. The algorithm defines the trajectory of turbances. They proposed their H2-norm inspired performance the paddle as a mirrored (about the desired impact height) metric as a better indicator. The gait sensitivity norm [24] and scaled version of the ball’s trajectory. Consequently, this can serve as a guide for design parameter selection for a requires constant tracking of the ball’s position. The mirror law walking robot, which is similar to the variance optimization produces paddle trajectories that accelerate at impact, which we present in this paper. Mombaur et al. used optimization contrasts with the results presented in this paper, and with to find stabilizing design parameters for open-loop walking results obtained by Schaal et al., who analyzed the apex height robots in [25]. The authors used the spectral radius of the stabilizing property of a decelerating paddle for an open-loop linearized Poincare´ map as the objective function to minimize bouncing ball system [8]. An interesting aside is that Schaal in order to find design parameters resulting in a spectral radius et al. found that a decelerating striking motion is a strategy smaller than one, which implies stability. intuitively used by humans when trying to bounce a ball at The Blind Juggler is able to juggle unconstrained balls a fixed height on a racket [9]. The related task of dribbling without sensing. In the literature, many robots are studied a basketball with a robot arm using force or vision feedback that juggle constrained balls. Examples include the single was explored by Batz¨ et al. [10]. In legged robotics, a hopping degree of freedom bouncing ball setup by Vincent [4], or the robot is similar to a bouncing ball system. Ringrose presented planar juggling robots analyzed by Buhler¨ [5] and Ronsse [22]. the design of a self-stabilizing monopod featuring a curved Robots juggling unconstrained balls in three dimensions typ- foot in [11], which is similar to sensorless bouncing of a ball ically feature a ; the robot used by Rizzi et al. on a parabolic paddle. in [13] is one such example. These more complex robots Robotic juggling has motivated the development of ad- use cameras to continuously track the ball’s position. Schaal vanced control methods such as Burridge’s work on juggling et al. presented an open-loop juggling robot that features a an unconstrained ball in the presence of obstacles using a paddle that passively keeps the ball in its center: they used 3

J g z

Jx Jy

Fig. 3. Definition of the coordinate system J. The sketched ball and paddle are at nominal impact positions. The origin of J is fixed at the center of the ball at nominal impact position, and the z-axis is aligned with gravity g.

+ 0 1 2− 2 3 4 The nominal initial conditions are z¯˙0 = 0, z¯0 = H. The free fall ends at impact with the paddle, which is at z(T ) = 0, Fig. 2. Sketch of nominal ball trajectory. The ball starts at rest at the apex, 0. It is then subject to free fall, 1, before it impacts with the paddle, 2−. After see Fig. 3. The nominal impact time is impact 2+, the ball is again subject to free fall, 3, until it reaches again the s apex, 4, which is identical to the initial apex, 0. 2H T = (5) g a trampoline-like racket to stabilize the horizontal degrees of and the nominal ball impact velocity is freedom of the ball [8]. Their focus, however, was on the z¯˙1 = gT. (6) analysis of the vertical stability of the ball. − The ball state at t = T is denoted with the subscript 1. The nominal state is II.NOMINAL BALL TRAJECTORY T S¯1 = (0, 0, 0, 0, 0, 0, 0, z¯˙1, 0) . (7) We introduce the nominal ball trajectory, which is sketched Nominally, S¯ and the pre-impact ( ) ball state are identical in Fig. 2. In the stability analysis, we consider the ball 1 − T T S¯− = S¯ . We still introduce two separate nominal states since state S := (x, x,˙ ωy, y, y,˙ ωx, z, z,˙ ωz) , where denotes the 2 1 transpose. All elements are defined in the coordinate system J in the perturbation analysis, the perturbed states at the nominal shown in Fig. 3. The positions x, y, z describe the location impact time and at the actual impact time differ. of the center of the ball. The ball velocities are x,˙ y,˙ z˙, and C. Impact the ball spins ωx, ωy, ωz are defined by the right-hand rule. We choose the particular grouping of the states since the spin Nominally, the vertical ball velocity is inverted at impact ωy interacts with the horizontal velocity x˙ at impact, and ωx such that the initial apex height is reached again. The post- with y˙. impact (+) ball state is therefore Nominally, all states except z, z˙ are zero. However, because T S¯+ = (0, 0, 0, 0, 0, 0, 0, z¯˙ , 0) . (8) we use the full nominal ball states in the perturbation analysis 2 − 1 in the next section, we derive them in the following. We further derive the nominal paddle state at impact. The T paddle state is P = (zP, z˙P) , since the paddle has only a single translational degree of freedom. The state is defined in A. Initial Apex the coordinate system J, and zP captures the height of the The ball starts at time t = 0 at the nominal apex height center of the paddle surface. At impact, the ball is in contact z(0) = H. Its state is with the paddle (see Fig. 3), and the nominal paddle state is therefore ¯ T T S0 = (0, 0, 0, 0, 0, 0,H, 0, 0) (1) P¯ = P¯ = ( R, z¯˙ ) (9) 2 1 − P1 where the subscript 0 denotes the initial apex and an overbar where R is the ball radius and the nominal paddle velocity denotes a nominal state. z¯˙P1 is obtained using Newton’s impact law: + z˙ = e z˙− + (1 + e )z ˙ (10) − z z P B. Free Fall + where z˙−, z˙ are the pre- and post-impact ball velocities, Next, the ball is in free fall. We ignore aerodynamic drag respectively. Damping losses at impact are modeled by the and obtain the differential equation vertical coefficient of restitution e [0, 1]. In (10), we assume z ∈ that the ratio of the ball mass to the paddle mass is small z¨(t) = g (2) − enough for the change in paddle impulse to be negligible (this 4 2 ratio is 3 10− for the Blind Juggler). For this reason, we where g = 9.81 m/s is the gravitational acceleration. Given ≈ × do not distinguish between the pre- and post-impact paddle initial conditions z0, z˙0 at t = 0, its solution is state and omit the superscripts (+, ). With (7) and (8) in g − z(t) = t2 +z ˙ t + z (3) (10), we find −2 0 0 1 e z¯˙ = z¯˙ z . z˙(t) = gt +z ˙ . (4) P1 1 − (11) − 0 − 1 + ez 4

D. Free Fall after Impact and Apex Inspecting the above and the vertical trajectories (3), (4), we After impact, the ball is in free fall until it reaches the find that they are all linear in the initial conditions. Therefore, nominal apex height again. The duration of the second free the perturbed ball state at nominal impact time T is exactly fall is identical to the first, resulting in the final apex time S1 = S¯1 + s1 (21) t = 2T . Nominally, the state after free fall (subscript 3), the s = M s . (22) state at final apex time (subscript 4), and the initial apex state 1 10 0 are all identical The matrix M10 is the exact mapping of the initial perturba- S¯3 = S¯4 = S¯0. (12) tions s0 to the perturbations s1 at nominal impact time, and is block diagonal: We introduce S¯ because, in the perturbation analysis, the 3     perturbed ball states after free fall and at nominal apex time N10 0 0 1 T 0 are not identical. M10 =  0 N10 0  , N10 = 0 1 0 . (23) 0 0 N10 0 0 1 III.PERTURBATION ANALYSIS C. Impact In the following, we derive how perturbations, added to the nominal ball apex state, map over a single bounce to the next We derive the perturbation mapping over the impact in two apex, i.e. from 0 to 4 in Fig. 2. We assume that the pertur- steps. First, we calculate the deviation from nominal impact bations are small and use first-order approximations to the time which is caused by the ball perturbations. Second, we system dynamics. Experimental data presented in Section V calculate how the perturbations map over the impact. 1) Impact Time: shows that the perturbations are indeed small. Therefore, the Due to the perturbations, the impact occurs actual nonlinear system dynamics are captured well by a first- at the perturbed impact time T + τ. The horizontal ball states order model. In the following analysis, we derive the matrices are irrelevant for the calculation of τ, since to first order in x that describe the first-order perturbation dynamics of each part and y the parabolic paddle is flat in its center. of the trajectory illustrated in Fig. 2. These matrices form the We first approximate the vertical ball and paddle trajectory basis for the results presented in the rest of this paper. The to first order. Using the perturbed ball state at nominal impact matrices show that to first order, the ball perturbation dynamics time, S1 (21), as new initial condition in the vertical ball in x, y, and z are mutually decoupled; they can be used to trajectory (3), we find g 2 analyze the local stability of the ball trajectory; and lastly, we z˜(τ) = sz1 + (z¯˙1 + sz˙1) τ τ (24) use them in the design parameter optimization. − 2 A Mathematica notebook with the following analysis is where sz1 and sz˙1 are the perturbations in ball height and included in the multimedia files provided with this paper. vertical velocity at nominal impact time. To first order in the time and state perturbations, the trajectory is therefore

A. Introduce Perturbations z(τ) = sz1 + z¯˙1τ. (25) The perturbed ball apex state is Next, we derive the paddle trajectory. The paddle dynamics

S0 = S¯0 + s0 (13) are z¨P(τ) = aP (26) where the elements of the initial perturbations are where a is the constant paddle acceleration at impact, which T P s0 := sx0, sx˙ 0, sωy 0, sy0, sy˙0, sωx0, sz0, sz˙0, sωz 0 . (14) is one of the two key design parameters. Using the nominal paddle impact state P¯1 (9) as initial condition, the solution is B. Free Fall analogous to (24). Therefore, to first order

We derive the mapping of the perturbations from apex, zP(τ) = R + z¯˙P1τ (27) t = 0, to the nominal impact time t = T . First, we calculate − where R is the ball radius. The impact occurs when the ball the full state trajectory. The vertical ball trajectory is already is in contact with the paddle: established with (3) and (4). Without aerodynamic drag, the horizontal and spin dynamics are z(τ) z (τ) = R. (28) − P x¨ =y ¨ = 0 (15) We solve for τ and obtain sz1 ω˙ x =ω ˙ y =ω ˙ z = 0. (16) τ = . (29) z¯˙P1 z¯˙1 Given initial conditions x , x˙ , ω , y , y˙ , ω , ω , the solu- − 0 0 y0 0 0 x0 z0 Note that z¯˙ is strictly negative and z¯˙ is strictly positive, tion is 1 P1 therefore the denominator is always = 0 and τ is well defined. 6 x(t) = x0 +x ˙ 0t y(t) = y0 +y ˙0t (17) We rewrite (29) in matrix form: x˙(t) =x ˙ y˙(t) =y ˙ 0 0 (18) τ = Mτ1s1 (30) ωy(t) = ωy0 ωx(t) = ωx0 (19)  1  Mτ1 = 0 0 0 0 0 0 0 0 . (31) ωz(t) = ωz0. (20) z¯˙ z¯˙ P1 − 1 5

Next, we derive what the ball and paddle perturbations are at J B actual impact time, T + τ. To first order, the perturbed ball Cz z = z and paddle states at impact are B C ¯˙ y = y Cx S2− = S1 + S1τ (32) ˙ J = S¯1 + s1 + S¯1Mτ1s1 (33) y ˙ P2 = P¯1 + P¯1τ (34) ˙ γ B = P¯1 + P¯1Mτ1s1 (35) − x where we use the nominal time derivative of the impact states δ Jx T S¯˙ = (0, 0, 0, 0, 0, 0, z¯˙ , g, 0) (36) 1 1 − ˙ T P¯1 = (z¯˙P1, aP) (37) Fig. 4. Definition of coordinate systems for impact dynamics. In order to rotate the ball and paddle velocity vectors to the impact coordinate system C, S˙ τ = S¯˙ τ we first rotate about the z-axis of the coordinate system J to the intermediate and that to first order 1 1 . Finally, the ball and paddle coordinate system B. The rotation angle δ is chosen such that the x-axis of B pre-impact ( ) perturbations are y − points to the impact location of the ball. Second, we rotate about the -axis   of B, such that the x-axis of C is tangential to the paddle surface at the ball ¯˙ ¯˙ impact location. Due to the right-hand rule and the concave, parabolic paddle s2− = s1 + S1Mτ1s1 = I + S1Mτ1 s1 (38) shape, the second rotation angle is always non-positive: γ 0. ˙ ≤ p2 = P¯1Mτ1s1 (39) where I is the identity matrix. Cz B With the ball and paddle states defined at actual impact, z we proceed to the perturbation mapping over the impact. We introduce the necessary coordinate transformations and C then apply the impact function to the transformed paddle x γ dz and ball states. Finally, we calculate, to first order, how the B C − γ y = y B − perturbations are mapped to the post-impact ball state. x dr 2) Impact Velocities: The impact affects only the ball velocities. In order to simplify the following derivation, we r define a velocity state for the ball Fig. 5. Sketch of paddle surface and rotation from B to the impact coordinate T system C, which is tangential to the paddle surface at the ball impact location. VS := (x, ˙ y,˙ z,˙ ωx, ωy, ωz) = TVSS (40) where TVS is the straightforward transformation matrix. Anal- ogously for the paddle, we only consider its vertical velocity the Jz-axis, such that the Bx-axis of the resulting coordinate   system B points in the direction of the impact location. The z˙P = TVPP, TVP = 0 1 . (41) corresponding rotation matrix is 3) Impact Coordinate System: The horizontal impact mo-  cos δ sin δ 0 del, which is introduced later, acts on velocities and spins BO 0  BQ = J , BO = sin δ cos δ 0 (43) that are tangential and perpendicular to the impact surface. J 0 BO J   J − 0 0 1 Due to the perturbations, the ball impact is off-center. The J J y x  2 2 impact surface is defined by the parabolic paddle surface sin δ = , cos δ = , r2 = Jx + Jy (44) which satisfies r r c  2 2 c z = Jx + Jy = r2 (42) given the impact location Jx, Jy. Note that the division by r, 2 2 which is nominally zero, is not an issue since r cancels out where r is the radial distance from the paddle center and c is in the first order approximation later on. The rotation matrix the paddle curvature, which is the other key design parameter B J Q transforms the ball velocity state from J to B besides the paddle acceleration aP. We derive the coordinate transformations in order to express the velocity states V , z˙ B B J S P VS = J Q VS. (45) in the impact coordinate system C, see Fig. 4. In the following, we use preceding superscripts to denote the coordinate system The paddle velocity is not affected by this rotation, as it points C a vector or coordinate is expressed in. For example, VS is in the axis of rotation: the ball velocity expressed in coordinate system C. All states B J and coordinates without a coordinate system superscript are z˙P = z˙P. (46) by default expressed in the coordinate system J, defined in Fig. 3. Next, we rotate the coordinate system B by γ about By, such There are two rotations involved, and both are illustrated that Cx of the impact coordinate system is tangential to the in Fig. 4. First, we rotate the coordinate system J by δ about paddle surface at the ball impact location, see Fig. 5. The 6

C C rotation matrix is These equations are analogous for the states y˙ and ωx.   C  cos γ 0 sin γ However, one must consider that, by the right-hand rule, the C O 0 C − C Q = B , O = 0 1 0 (47) ball spin ωx has the opposite contribution to the relative B 0 CO B   B sin γ 0 cos γ velocity of the contact point and the angular momentum than C cr 1 ωy. Therefore, the appropriate update equations are obtained sin γ = , cos γ = (48) C C C C 2 2 2 2 with the substitutions y˙ = x˙ and ωx = ωy. We further −√1 + c r √1 + c r − C assume ey = ex. Lastly, we assume that the spin ωz is not which we obtained from the derivative of the paddle shape C + C affected by the impact: ω = ω−. (42) with respect to the radius (see Fig. 5): z z 5) Impact Function: We combine the horizontal (56), (57) dz = cr. (49) and vertical (10) impact models into a single impact function, dr which maps the pre-impact ball and paddle velocities to the C The rotation matrix BQ transforms the ball velocity state from post-impact ball velocity: B to C: C C B C  VS = BQ VS. (50) C + C C C x˙ P VS = ΓS VS− + ΓP C (58) The direct coordinate transformation from J to C is z˙P 1 k 0 0 0 kR 0 CQ = CQBQ. (51) − J B J  0 1 k 0 kR 0 0  − −  Finally, we transform the paddle velocity z˙P. Since the rotation C  0 0 ez 0 0 0 B C C ΓS =  −  is about y, the only non-zero velocities are in x and z.  0 α 0 1 αR 0 0  − −  We find  α 0 0 0 1 αR 0 C    − x˙ P C J sin γ J 0 0 0 0 0 1 C = J QP z˙P = − z˙P. (52)   z˙P cos γ k 0 5 (e + 1) 4) Horizontal Impact Model: In the derivation of the  0 0  α = x   7R nominal trajectory, we introduced Newton’s impact law for C  0 ez + 1 ΓP =   , (59) the vertical velocities (10). For the horizontal velocities and  0 0    2 (ex + 1) spin, we use the impact model introduced by Cross [26].  α 0  k = . − 7 The horizontal coefficient of restitution ex is a function of 0 0 the relative ball velocity and spin, expressed in the impact coordinate system C The post-impact ball state, expressed in the coordinate sys- C ˙ + C + tem J is xˆ R ωy ex := − (53) C ˙ C − xˆ− R ωy− J + J Se2 = IS S2− (60) C C C − xˆ˙ = x˙ x˙ P (54) T C TC C J C C J  − + TVS J Q ΓS J QTVS S2− + ΓP J QPTVP P2 C where R is the ball radius and x˙ P the horizontal velocity of the paddle surface. The parameter ex relates the relative where we applied the appropriate coordinate transformations. J horizontal velocity of the contact point of the ball over the The term IS S2− accounts for the identity mapping of the ball impact. Values of e range from 1 to 1 and capture both position over the impact: x − gripping and slipping ball behavior. For ex = 1, the impact −     surface is frictionless, and the relative velocity of the ball KS 0 0 1 0 0 contact point does not change. For ex = 0, the ball grips IS =  0 KS 0  , KS = 0 0 0 . (61) the surface without slipping, and ‘rolls’ through the impact. 0 0 KS 0 0 0 Lastly, ex = 1 captures a gripping, perfectly elastic ball: the relative velocity is inverted. Positive values of ex explain the In the following, all states are expressed in the coordinate observation that a superball (ex 0.5 [26]) returns to your system J, and we omit the superscripts. Equation (60) is ≈ C C hand when you throw it onto the floor at an angle such that it nonlinear because the rotation matrices J Q (51) and J QP (52) bounces off the underside of your desk. are nonlinear functions of the pre-impact ball state S2−. The Equation (53) does not yet fully define the post-impact first-order approximation of the perturbed ball state is ball velocity and spin. We further use conservation of angular momentum, evaluated at the ball contact point + + + ¯+ ∂Se2 ∂Se2 S2 = S2 + s2− + p2 (62) 2 2 C + C + 2 2 C C ∂S− ∂P2 mR ω +mR x˙ = mR ω− +mR x˙ − (55) 2 S¯−,P¯ S¯−,P¯ 5 y 5 y ( 2 2) ( 2 2) with ball mass m. We combine (53), (54), and (55), and obtain where the Jacobian matrices are evaluated at the respective C + 1 C C C  x˙ = (5 2e ) x˙ − +2 (1+e ) x˙ +R ω− (56) nominal states. Together with the equations for the pre- 7 − x x P y     impact ball and paddle perturbations (38), (39), we obtain the C + 5 C ˙ 2 C matrix which describes how the ball perturbations at nominal ωy = (1 + ex) xˆ + ex R ωy− . (57) 7R 5 − impact time s1 map, to first order, to the post-impact ball 7 perturbations: It is a block-diagonal matrix with blocks corresponding to the + + horizontal and vertical perturbation dynamics: + ∂S2 ∂S2 s2 = s2− + p2 (63)   ∂S− ¯− ¯ ∂P2 ¯− ¯ Ax 0 0 0 2 (S2 ,P2) (S2 ,P2)  0 Ay 0 0 ∂S+ M40 =   (76) 2 ˙ 0 0 Az 0 = (I + S¯1Mτ1)s1   ∂S− ¯− ¯ 0 0 0 1 2 (S2 ,P2) +  2cβgT 2  2cβgT 2   ∂S + 1 T k + 2 kRT 2 ¯˙ ez +1 ez +1 + P1Mτ1s1 (64) 2 − ∂P2 ¯− ¯  2cβgT 2cβgT  (S2 ,P2) Ax =  k + 1 kR  (77)  ez +1 ez +1  2cgαT 2−cgαT 2 = M21s1 (65) α 1 Rα − ez +1 − ez +1 −  2  2   where 2cβgT + 1 T 2cβgT k + 2 kRT ez +1 ez +1 − −  x   2cβgT 2cβgT 2  M21 0 0 Ay =  k + 1 kR  (78) y  ez +1 ez +1  M = 0 M 0 (66) 2cgαT −2cgαT 2 − 21  21  α + 1 Rα 0 0 Mz ez +1 − ez +1 − 21 2 2 2 2  aP(e +1) +g e +1 g(e 1) +(e +1) aP T    z ( z ) ( z − z ) 1 0 0 2g 2g x Az =  2 a (e +1)2+g e 2+1  . (79) M21 =  βc(gT + z¯˙P1) 1 k kR  (67) (ez +1) (g+aP) P z ( z ) αc(gT + z¯˙ ) −α 1 Rα 2gT 2g − P1 −  1 0 0  All the dependent parameters, summarized, are y M21 = βc(gT + z¯˙P1) 1 k kR  (68) s − − 2H 2 (ex + 1) αc(gT + z¯˙P1) α 1 Rα T = , k = (80) − − g 7  z¯˙P1  0 0 5 (ex + 1)  gT + z¯˙P1  α = , β = k 1 e . (81) z   z M21 = aP (ez + 1) + ezg (69) 7R − −  ez 0  gT + z¯˙P1 −  The independent parameters, summarized, are therefore the 0 0 1 apex height H; the vertical and horizontal coefficient of β = k 1 e . (70) restitution ez, ex; the ball radius R; and the two design − − z parameters paddle acceleration aP and curvature c. D. Second Free Fall G. Decoupling of Horizontal and Vertical Dynamics After impact, the ball is in free fall again. We map the + The block-diagonal structure of M40 shows that the dy- perturbations s2 from time T + τ to 2T + τ analogous to the first free fall in Section III-B: namics of the perturbations in the state tuples (x, x,˙ ωy) , (y, y,˙ ωx) , (z, z˙) , (ωz) are all mutually independent, to first + s3 = M32s2 , M32 = M10. (71) order.

E. Final Apex IV. DESIGN PARAMETERS

The perturbations s3 are the ball perturbations at time 2T + With the mapping M40, we analyze the local stability of τ. Therefore, we compensate for τ in order to obtain the ball the ball trajectory. The goal is to find stabilizing values for perturbations s4 at nominal apex time 2T . Analogous to (32), the design parameters, curvature c and paddle acceleration aP, we obtain for a range of apex heights and ball properties. The mapping describes an autonomous, discrete-time, linear, time-invariant s = s S¯˙ τ = s S¯˙ M s (72) 4 3 − 3 3 − 3 τ1 1 system ˙ T S¯ = (0, 0, 0, 0, 0, 0, 0, g, 0) (73) s[k + 1] = M40s[k] (82) 3 − ˙ where s[k] are the perturbations at the k-th nominal apex time, where we used (30) and that to first order, S˙3τ = S¯3τ. i.e. at t = k2T . The system is stable if the spectral radius ρ of M40 is smaller than one [27]. A spectral radius smaller than F. Complete Map one implies that any initial perturbations s[0] tend to zero as We combine equations (22), (65), (71), and (72) to obtain k . The spectral radius of M40 is defined as → ∞ the matrix M40, which maps the initial perturbations s0 to first ρ (M40) := max λi (M40) (83) order over a single impact: i | |

where λi is the i-th eigenvalue of M40. Since M40 is block- s4 = M40 s0. (74) diagonal, its spectral radius is equal to the largest of the The matrix is spectral radii of its diagonal blocks: M = M M M S¯˙ M M . (75) ρ (M ) = max ρ (A ) , ρ (A ) , ρ (A ) , ρ (1) . (84) 40 32 21 10 − 3 τ1 10 40 { x y z } 8

1.1 H = 0.80 m 1.1 H = 1.05 m H = 1.20 m 1.05 1.05

H = 1.60 m ) ) z x H = 2.00 m (A (A ρ ρ 1 1 z x e e max max 0.95 0.95

0.9 0.9 10 8 6 4 2 0 0 0.1 0.2 0.3 0.4 0.5 − − − − − 2 Paddle Curvature c (1/m) Paddle Acceleration aP (m/s )

A e [0.7, 0.9] Fig. 6. Worst-case spectral radius of Ax for ez = 0.8 and ex [ 0.5, 0.5]. Fig. 7. Worst-case spectral radius of z for z . ∈ − ∈

A This is equivalent to stating that the dynamics of the per- which it is straightforward to show that the eigenvalues of x turbation tuples corresponding to the diagonal blocks must are independent of the ball radius. We find that ρ (A ) is sensitive to the apex height H. In be stable. For the perturbation in vertical spin ω , the cor- x z contrast, the impact of the vertical coefficient of restitution responding spectral radius is ρ(1) = 1, which is marginally e on the following numerical stability analysis is negligible stable. However, we ignore ω in the stability analysis since z z and we fix it at e = 0.8, which lies in the middle of the the dynamics in ω are, to first order, decoupled from all other z z interval e [0.7, 0.9]. This interval corresponds to the range states and have no influence on juggling. Therefore, we state z ∈ of balls we expect to juggle: tennis balls to superballs [26]. We that the ball trajectory is stable if ρ (A ), ρ (A ), and ρ (A ) x y z capture the variability of the spectral radius with respect to the are smaller than one. unknown horizontal coefficient of restitution e with a worst- There are two more observations that make the stability x case analysis. In Fig. 6, we show the maximum of ρ (Ax) analysis more straightforward. First, we notice that Ax and over the range ex [ 0.5, 0.5] for various apex heights as a Ay are similar [28]: ∈ − function of the curvature c. The parameter range chosen for   1 0 0 ex captures both slipping and gripping ball impact behavior 1 Ay = Txy− AxTxy, Txy = 0 1 0  (85) as described in Section III-C4 and [26]. 0 0 1 We set the design specification for the first robot prototype − to juggle at heights of up to 1.2 m. Therefore, choosing which is based on the relation between ωy and ωx in the impact the paddle curvature c = 0.36 (1/m) satisfies the stability dynamics, see Section III-C4. The similarity implies that Ay requirement. and Ax have the same eigenvalues, ergo they have the same spectral radius. To attain stability of all horizontal degrees B. Vertical Stability of freedom of the ball, it is therefore sufficient to show that Local stability of the vertical degrees of freedom is achieved ρ (Ax) < 1. Intuitively, it is expected that the horizontal ball dynamics in y are not different from the dynamics in x due with an appropriate paddle acceleration. Inspecting Az (79), to symmetry. we find that the nominal impact time T (the only parameter depending on the apex height) appears in the off-diagonal Second, we find that ρ (Ax) is independent of the paddle elements in such a way that it cancels out when calculating acceleration aP, and ρ (Az) is independent of the curvature c. Therefore, we can analyze the horizontal and vertical stability the eigenvalues of Az. Therefore, the spectral radius ρ (Az) is of the ball trajectory separately. independent of the apex height. Analogous to the horizontal Matlab scripts featuring the following analyses are available stability analysis, we use a worst-case analysis of ρ (Az) over the range e [0.7, 0.9]. The resulting spectral radii are shown in the multimedia files provided with this paper. z ∈ in Fig. 7. We choose a = g/2 5 m/s2, which lies P − ≈ − in the center of the stable region. The determined negative A. Horizontal Stability acceleration is consistent with results in the literature that show that a negative acceleration is stabilizing. See for example the Local stability of the horizontal degrees of freedom is work by Schaal et al. [8] or Ronsse et al. [21], [22]. achieved by choosing a paddle curvature that produces a spectral radius ρ (Ax) smaller than one. Notice how the ball C. Aside: Alternative States for Perturbation Mapping radius R enters the matrix Ax (77): The only occurrences of R are in the numerator of elements (row, column) = (1,3) and Perturbation maps, i.e. Poincare´ maps are often defined (2,3) and in the denominator of elements (3,1) and (3,2), from between impact events in the impact juggling literature, e.g. 9 in [19]. In contrast, we choose a fixed time interval for the 0.06 τˆ τˆ

(m) 0.04 mapping M40 between the ball apex states. This choice is

P 0.02 motivated by the analysis of a periodic ball motion driven z 0 by an open-loop paddle motion with a fixed period time. 0 0.1 0.2 0.3 0.4 0.5 0.6 One can show, however, that the two representations are 0.5 equivalent, to first order. We define the alternative ball state as 0 Sˆ := (x, x,˙ ωy, y, y,˙ ωx, t, z,˙ ωz), with t the impact time, and (m/s)

P -0.5 ˙ the other states defined as the positions, velocities, and spins z just before impact. We may then analyze the local stability of 0 0.1 0.2 0.3 0.4 0.5 0.6 ) the nominal ball trajectory with the linearized Poincare´ map 2 10 for the alternative perturbations sˆ, where the perturbation in

(m/s 0 impact time is τ (29). One can show that to first order P ¨ z -10 sˆ = Tssˆ s (86) 0 0.1 0.2 0.3 0.4 0.5 0.6 t (s) where  xy  T 0 0 0 H = 0.5 ssˆ 1 T 0 Fig. 8. Paddle trajectory for apex height m and vertical coefficient xy of restitution ez = 0.8. The time interval shown is equivalent to 2T . The  0 T 0 0 xy T = ssˆ , T = 0 1 0 (87) nominal ball impact is indicated by the dashed line, which is flanked by the ssˆ  0 0 Tz 0 ssˆ    ssˆ  0 0 1 deceleration intervals defined by τˆ. Note that the paddle position is shifted 0 0 0 1 such that the lowest paddle position is at zero.   z 1 1 T Tssˆ = . (88) gT + z¯˙ g z¯˙P1 P1 − As we obtained measurements of the impact times however, Therefore we fixed τˆ based on impact time deviation statistics. We found 1 that τˆ = 0.05 s works well. sˆ[k+1] = Tssˆ s[k+1] = Tssˆ M40s[k] = Tssˆ M40T− sˆ[k]. (89) ssˆ In practice, a larger τˆ increases vertical robustness since 1 The inverse Tss−ˆ is well defined for T > 0. It follows that the larger impact time deviations are still within the stabilizing mapping matrices for sˆ and s are similar [28] and therefore, deceleration interval of the paddle trajectory. In addition, a the maps have the same eigenvalues. Furthermore, the block- larger τˆ enables the robot to juggle balls with a wider range diagonal structure of Tssˆ preserves the decoupling of the of coefficients of restitution. A ball with a coefficient of marginally stable ωz from the other states in sˆ. Therefore, restitution different from the one the trajectory is designed the stability of the remaining states directly follows from the for results in a shift in mean impact time. For example, a stability of Ax, Ay, and Az. Intuitively, if the perturbations at ball with a lower coefficient of restitution results in an earlier the ball apex vanish as the number of impacts tends to infinity, mean impact time where the paddle is faster. Therefore, it is the ball impact time deviations τ also vanish. desirable to achieve a larger range of paddle velocities during the deceleration interval. A larger range is also achieved by V. THE BLIND JUGGLER a higher paddle deceleration aP, given a fixed τˆ. In fact, We built a first prototype of the Blind Juggler with the it can be shown that for a given velocity range, a higher determined paddle curvature c = 0.36 (1/m) and paddle deceleration is preferable over a larger τˆ, since it leads to acceleration a = g/2. An industrial linear motor (Linmot a smaller total stroke of the paddle. There is a trade-off, P − PS01-37x120 [29]) actuates the solid aluminum paddle which however, since a higher paddle deceleration leads to wider was CNC-milled to the desired shape and has a diameter of impact time distributions (see Section VI-C), which in turn 0.3 m. We sized the motor to be able to continuously juggle requires a longer deceleration time τˆ. balls with a coefficient of restitution ez of at least 0.7 (tennis Finally, we choose the accelerations for speeding up the ball), and at apex heights H up to at least 1.2 m. paddle before decelerating during impact, and for retracting. 2 The trajectory of the paddle is tracked by a servo controller We use an acceleration of 15 m/s to speed up the paddle and accelerations of 10 m/s2 for the retracting motion. A sample (B1100, also by Linmot [29]). We manually tuned the servo ± controller to produce acceptable tracking performance. A high paddle trajectory is shown in Fig. 8. level state machine running on a D-Space real time control system [30] provides the profile parameters to the servo B. First Results controller and times the motion. The first prototype of the Blind Juggler is able to con- tinuously juggle a variety of balls at heights between a A. Paddle Trajectory few centimeters and about 1.4 m. Heights above 0.6 m are For a given coefficient of restitution ez and apex height H, only achieved with small Nylon precision balls, see the ball the paddle state at nominal impact is defined by (9) and (11). discussion in Section V-C. The Blind Juggler is robust to both Before and after the nominal ball impact, the paddle deceler- horizontal and vertical perturbations: ates with aP for time τˆ, see Fig. 8. Initially, we determined τˆ 1) Vertical: The apex height may be changed by slowly by assuming a static error in the ball coefficient of restitution. adapting the paddle motion. A given nominal apex height 10

TABLE I defines the paddle motion, as discussed in Section V-A. If VERTICAL AND HORIZONTAL EXPERIMENTAL DATA the nominal apex height, and therefore the paddle trajectory, is changed between two impacts of the ball by a small amount, Apex Height Deviation Statistics, aP = g/2 − the ball transitions to the new apex height due to the vertical Height (m) σz (mm) Mean (mm) Number of Samples local stability. This is demonstrated in a video provided with 0.5 2.0 3.2 1074 this paper. In the video, the nominal apex height is increased 0.8 3.4 3.0 1180 by 0.08 m between impacts, until the ball reaches the desired 1.05 5.5 1.0 1079 height. Impact x-Location Statistics, c = 0.36 (1/m) 2) Horizontal: We tested horizontal robustness by slowly Height (m) σx (mm) Mean (mm) Number of Samples pushing the robot back and forth in a wheeled cart. This 0.5 12.0 3.3 5301 demonstration is documented in a video provided with this 0.8 13.4 5.9 4549 paper. 1.05 16.3 3.3 5789

C. Impact of Ball Properties on Performance 100 σz= 5.5 mm In experiments with different balls, we observe that the main source of noise in the measured impact times and locations are stochastic deviations of the impact parameters, 80 i.e. ball roundness and coefficient of restitution. Solid Nylon balls which are manufactured to precise roundness for valve 60 applications introduce the least amount of noise. Specifically, we use precision balls that have a diameter of 0.012 m and 40 that weigh 0.001 kg. Only these precision balls allow the robot to juggle at apex heights larger than 0.6 m. Inferior Number of Samples 20 balls, such as superballs and table tennis balls, bounce too far off-center and eventually fall off the paddle at larger apex heights. High quality table tennis balls provide reasonable 0 20 10 0 10 20 roundness tolerances, but still fall off at larger heights. We − − suspect that the seam where the half-spheres are joined causes Height Deviation (mm) the balls to bounce off-center. Others suggested that for larger Fig. 9. Apex height deviation histogram and fitted Gaussian distribution for balls, aerodynamic effects may introduce additional horizontal apex height H = 1.05 m. ball motion. The behavior of different balls on the robot is demonstrated in a video provided with this paper. paper was obtained with the same ball and paddle in order to D. Measurements obtain comparable results. All measurements were performed We measured the impact time of the ball using a micro- with the high precision balls discussed in Section V-C. We phone. The impact locations on the paddle were measured collected data at three different nominal apex heights: 0.5 m, using a video camera mounted above the paddle. Whenever 0.8 m, and 1.05 m. All data, Matlab scripts for its analysis, the microphone detects an impact, a small LED array lights and a measurement video are available in the multimedia files up that is visible to the video camera. In an offline image provided with this paper. analysis step, we extracted the relative positions of the ball to 1) Apex Height: The estimated height deviation of the ball the paddle from all video frames where the LED array is lit. at nominal apex time is equivalent to the vertical position In addition, we measured the paddle position and velocity at perturbation sz0 (14). Means and standard deviations σz impact with the motor encoder. from experiments at different apex heights are summarized Given the measurement data, we estimated parts of the in Table I. Due to the high number of samples, we obtained ball state trajectory between two impacts. Since we had no sub-millimeter 95%-confidence intervals for all means and measurements of the ball spin available, we only estimated the variances shown in the table. The small non-zero means are states x, x,˙ y, y,˙ z, z˙. We did not consider aerodynamic effects due to modeling errors, such as imperfect trajectory tracking such as drag. Therefore, given two impact times t[i], t[i 1], of the paddle, or differences between the assumed and actual − and the corresponding impact locations x[i], x[i 1], the con- ball vertical coefficient of restitution ez. In Fig. 9, we show a − stant ball velocity between the impacts is x˙[i] = (x[i] x[i histogram of the deviations at apex height H = 1.05 m. − − 1])/(t[i] t[i 1]) (y is analogous). Similarly, we estimated 2) Impact Locations: The measured impact x-location − − + incoming and outgoing vertical ball velocities z˙ [i], z˙−[i] means and standard deviations σx are summarized in Table I. given the paddle positions and the impact time difference. The small non-zero means are due to slightly misleveled pad- From the same data, we further estimated the ball height at dles. We do not state the statistics for the impact locations in y- nominal apex time. direction, as they are practically identical (the data is available In the following, we present experimental apex height and in the multimedia files). In Fig. 10, we show a histogram of impact location data. All apex height data presented in this the measured impact x-locations for H = 1.05 m. A frame 11

σx= 16.3 mm 500 120

400 100

300 80 60 200 40 Number of Samples Number of Samples 100 20 0 60 40 20 0 20 40 60 0 − − − 20 10 0 10 20 30 40 Impact Location (mm) − − νz (mm/s)

Fig. 10. Impact x-coordinate histogram and fitted Gaussian distribution for apex height H = 1.05 m. Fig. 12. Vertical process noise histogram for apex height H = 1.05 m. Apparently, the distribution is not Gaussian. The estimated standard deviation is σνz = 9.09 mm/s.

0.82, 0.81, 0.80 for the apex heights H = 0.5 m, 0.8 m, 1.05 m, respectively. The signal νz[i] may be interpreted as process noise that is introduced into the system. The sources of this noise may include imperfect velocity tracking of the paddle, anisotropic and stochastic ball impact properties, and other modeling errors. We show a histogram of νz[i] for the apex height H = 1.05 m in Fig. 12. The data for the other heights is available in the multimedia files. The measured signals for all heights have a mean smaller than 0.01 mm/s, i.e. practically zero. 2) Horizontal: Without measuring the spin of the ball, we cannot estimate the horizontal coefficient of restitution ex from (53). Therefore, we use a modified horizontal impact model that does not include the ball spin Fig. 11. Accumulated impact locations on the paddle for apex height H = 1.05 m. The black crosses mark the impact locations and the white cross marks C + C C the paddle center. As a reference for scale, the paddle diameter is 0.3 m. x˙ =  x˙ − + (1 ) x˙ P (92) −

where  is a modified horizontal coefficient of restitution, x˙ P of the measurement video for the same apex height with an is the horizontal paddle velocity, and the superscript C denotes overlay of all measured impact locations is shown in Fig. 11, that the states are expressed in the impact coordinate system, which illustrates the narrow impact location distribution. see Fig. 4. Similar to the vertical ez (10),  models dissipation due to friction during the impact. It can be obtained from the C C +  definition of e (53) by  = e ω− = ω = 0 . Since E. Ball Parameter Identification x − x a reversal of the horizontal velocity is only plausible with 1) Vertical: We identify the vertical coefficient of restitu- ball spin present (56),  may only assume values in the range tion ez from the measured data using least squares fits. We of [0, 1]. minimize N 1 We identify the modified horizontal coefficient of restitution X− 2  using a linearized impact model, analogous to (62) in the (νz[i](ez)) (90) i=0 perturbation analysis. The linearized impact model for the horizontal ball velocity is over ez, where N is the number of measurements and + + ˙ ˙ ν [i](e ) :=z ˙ [i] + e z˙−[i] (1 + e )z ˙ [i] (91) x˙ = c ( + ez)(z¯P1 z¯1) x + x˙ − + (1 )x ˙ P (93) z z z − z P − − − is the deviation of the measured vertical post-impact ball where all the states are expressed in the coordinate system J. velocity from the value that is predicted by Newton’s impact Nominally, the horizontal paddle velocity x˙ P is zero; in + model (10). From the measurements, we have z˙ [i], z˙−[i], practice, however, it is non-zero due to a misleveled paddle. and z˙ [i] available (see Section V-D). The identified e are We combine the term (1 )x ˙ into a single parameter ζ, P z − P 12

3 600 10− σνx = 15.6 mm/s 2 · Raw Smoothed

400 ) 2 /s 2 m 1

200 (Ω) ( x νν Number of Samples S

0 40 20 0 20 40 − − 0 π νx(mm/s) 0 π/2 Frequency Ω( ) Fig. 13. Horizontal process noise histogram and fitted Gaussian distribution − for apex height H = 1.05 m. Fig. 14. PSD of horizontal process noise νx for apex height H = 1.05 m.

4 which we identify as well. We minimize 10− 3 · N 1 X− 2 Raw (νx[i](, ζ)) (94) i=0 Smoothed

over  and ζ, where ) 2 2 + /s νx[i](, ζ):=x ˙ [i]+c (+ez)(z¯˙P1 z¯˙1) x[i] x˙ −[i] ζ. (95) 2

− − − m + The measurements provide the ball speeds x˙ [i] and x˙ −[i],

as well as the impact location x[i]. The vertical coefficient (Ω) ( z of restitution ez is identified in a preceding step (see Sec- νν 1 tion V-E1) using the vertical data from the same experiment. S The nominal values z¯˙1 and z¯˙P1 are calculated using (6) and (11). Finally, we find  = 0.70, 0.55, 0.41, and ζ = 6.3, 12.7, 7.2 mm/s for apex heights H = 0.5 m, 0.8 m, 1.05 m, 0 respectively. 0 π/2 π We show a histogram of the noise signal νx[i] for the apex Frequency Ω( ) height H = 1.05 m in Fig. 13. The signal is zero mean due − to the parameter ζ. We do not state the statistics for the noise introduced in the y-direction, as they are practically identical. Fig. 15. PSD of vertical process noise νz for apex height H = 1.05 m. Measurement data in y, and at other apex heights is available in the multimedia files provided with this paper. is the autocorrelation function. We calculate the autocorrela- F. Process Noise Characteristics tion function with wrap-around, i.e. we assume that the noise signal is periodic: νx[i + lN] = νx[i], for any integer l. We We further analyzed the power spectral density functions show the measured PSD for the apex height H = 1.05 m in (PSD) of the measured noise signals νx, νz. We use the PSDs Fig. 14 for the horizontal data, and in Fig. 15 for the vertical in the parameter optimization presented later on. The power data. In the horizontal PSD, there is a significant amount of spectral density function of the signal νx[i] with length N is power present around the frequency Ω = π/2. This is most the discrete Fourier transform of its autocorrelation function likely due to the spin dynamics which are not captured in the N 1 − modified horizontal impact model. Evident from both vertical x X x jΩkn Sνν (Ωk) = Rνν [n]e− (96) and horizontal PSDs is that the noise signals are not white, n=0 since the PSDs are not flat. where 2πk Ω = , k = 0, 1,...,N 1 (97) k N { − } VI.DESIGN PARAMETER OPTIMIZATION are the discrete frequencies, and For the first prototype of the Blind Juggler, we had to choose N 1 from a range of stabilizing design parameters. For example, 1 X− Rx [n] = ν [i]ν [i n] (98) the model predicts that any curvature c (0, 0.42] keeps the νν N x x − ∈ i=0 ball from falling off the paddle for an apex height of H = 13

1.2 m. But how to choose the specific value? Intuitively, one A. Output Variance from Input Power Spectral Density would not choose a value that is close to the boundary of In order to optimize juggling performance by rejecting the stable parameter interval shown in Fig. 6 for reasons of the process noise, we use an approach analogous to the H2 ‘robustness’. Another idea would be to choose a curvature that analysis in the previous section. We learned from the measure- results in the smallest spectral radius as, roughly speaking, the ments that the process noise cannot be well approximated by spectral radius is a measure for the decay rate of the system white noise, see Section V-F. Therefore, we use the measured states. Below, we use a simple scalar dynamical system to noise power spectral densities together with an LTI model of show that both of these intuitions may be misleading, and that the juggling system in order to predict the output variances. the spectral radius may not be a good performance metric for Finally, we optimize the system parameters with the objective a system. Consider the system of minimizing the predicted output variances. For example, we analyze the horizontal system, which describes how the 1 x[k + 1] = ax[k] + ν[k] process noise νx maps to the impact location on the paddle. a We then find the paddle curvature that minimizes the predicted w[k] = x[k] (99) variance of the impact locations. The variance of the measured noise signal sequence νx[k] with state x, noise input ν, output w , and free system of length N may be estimated by parameter a. We call this system G(a). The goal is to keep N 1 the system output w small in the presence of some process 1 X− σ2 = ν2[k] (103) noise ν. The spectral radius is equal to a , and therefore we νx N x | | k=0 may choose any a < 1 in order to obtain a stable system. | | Considering only the two intuitive criteria stated earlier, we since the signal has zero mean. This corresponds to the x would choose a = 0, which results in the smallest possible zero-lag value of the autocorrelation function, Rνν [0] (98). spectral radius and is also furthest from the boundary of the Therefore, we obtain an estimate of the variance from the stable parameter region. However, the process noise enters the inverse Fourier transform of the PSD: system through the input gain 1/a, which gets very large for N 1 2 x 1 X− x jΩ 0 σ = R [0] = S (Ω ) e k· . (104) small a. Therefore, even though the state decays very quickly νx νν N νν k for small a, the noise is greatly amplified and will produce k=0 large outputs w . A good value for a must therefore be a trade- The PSD of the output wx of a single input, single output, off between input gain and state decay rate. discrete-time LTI system Gx may be calculated given the PSD x We analyze this trade-off for the system (99) with the Sνν of the noise input H2-norm for discrete-time, linear time-invariant (LTI) sys- x 2 x Sww(Ωk) = Gx (Ωk) Sνν (Ωk) (105) tems [31]. Roughly speaking, the H2 system norm is the gain | | of a system if the input is white noise. For example, the H2 where G (Ω ) denotes the magnitude of the frequency | x k | norm of the above system is the standard deviation of the response of the system Gx. Using the relation in (104), we output w if the noise input ν is unit variance, zero-mean white may then estimate the variance of the output (because the noise. The norm, denoted by subscript H2, is system is linear and the input is zero-mean, the output is also zero-mean). 2 2 E(w ) Analogous to the stability analysis in Section IV, we opti- G(a) := (100) k kH2 E(ν2) mize the design parameters paddle curvature c and acceleration aP independently for the horizontal and vertical degrees of where E is the expected value. The norm can be calculated freedom, as the respective systems are decoupled, to first using the impulse response h[k] of the system: order. Matlab scripts performing the following optimizations are available in the multimedia files provided with this paper.  2 2 X∞ 2 X∞ 1 k 1 G(a) = h [k] = a − (101) k kH2 a k= k=1 B. Optimized Paddle Curvature −∞ 1 X∞ 1 We find the paddle curvature c that minimizes the variance = a2k = . (102) a2 a2 (1 a2) of the impact locations. First, we derive the input-output k=0 − representation of the system for the horizontal directions based The trade-off discussed above is reflected in the structure of on the modified impact model (92) that is governed by the the denominator of the norm. The (1 a2) factor reflects modified horizontal coefficient of restitution . We define the − the influence of the spectral radius. In order to achieve a discrete-time LTI system Gx:  low norm, i.e. low output variance, the factor suggests a X[k + 1] = AxX[k] + Bxνx[k] small a. However, there is also the contribution a2 of the (106) wx[k] = CxX[k]. input gain factor, suggesting a large a. The minimizing a is T straightforward to find. It is a∗ = √2/2 0.7. If the process The state is X = (s , s ) , the horizontal perturbations at ≈ x0 x˙ 0 noise ν was indeed white, it would be optimally rejected by nominal apex time. The system output wx is equivalent to the choosing a = a∗. impact location on the paddle, to first order, which is what 14

3 10− we want to keep small. The input νx is the horizontal process 1.2 · noise. The underlying sampling time is 2T , the time between c = 0.18 2 two apexes. The matrices are straightforward to derive from a 1 c = 0.26 perturbation analysis analogous to Section III and are c = 0.39 )

2 0.8  2  2  ) /s 2c(+ez )gT 2c(+ez )gT 1.5 s 2 1 T +  + 1 (  ez +1 ez +1 | Ax =  − − 2  m 0.6 2c(+ez )gT 2c(+ez )gT

 (Ω) ez +1 ez +1 − − x (Ω) (

  0.4 1 G | x T   νν

Bx = Cx = 1 T . (107) S 1 0.2 We use the system Gx and the relations (104), and (105) to 0.5 predict the impact location variance as a function of the paddle 0 curvature c. We calculate 0 π/2 π N 1 1 X− σ2 (c) = Sx (Ω , c) Frequency Ω( ) x N ww k − k=0 Fig. 16. Horizontal process noise smoothed power spectral density function N 1 from Fig. 14 (gray) and magnitude of frequency responses of the system Gx 1 X− = G (Ω , c) 2 Sx (Ω ). (108) for different values of the paddle curvature. N | x k | νν k k=0 22 We show the magnitude of the frequency response of the system, along with the smoothed measured PSD of the noise 21 input signal in Fig. 16. We use the standard deviation of the output as the objective function to find the optimal noise- ) 20

rejecting curvature from mm )( c

min σx (c) (109) ( c x 19 for apex height H = 1.05 m, and previously identified vertical σ coefficient of restitution e = 0.79 and modified horizontal z 18 coefficient of restitution  = 0.41. A plot of the standard deviation σx (c) is shown in Fig. 17. There are two local minima at curvatures of 0.18 (1/m) and 0.39 (1/m). The min- 17 ima are not very pronounced; in the interval c = [0.18, 0.39], 0 0.1 0.2 0.3 0.4 0.5 the standard deviation is constant and equal to 18 mm when Curvature c (1/m) rounded to millimeters. Therefore, we predict similar impact location statistics for all curvatures in this interval. Fig. 17. Objective function of horizontal parameter optimization. These results further illustrate the poor correlation between the spectral radius and the system performance. For H = 1.05 m we find that the spectral radius of Ax is lowest for analysis predicts stable juggling at heights of up to 2 m. We c [0.35, 0.48], see Fig. 6. However, Fig. 17 shows that achieved sustained juggling at this height in experiments and ∈ for curvatures above 0.4 (1/m), there is a steep increase in show this in a video provided with the paper. predicted impact location standard deviation. Given that the impact location standard deviations are roughly identical for all curvatures in c = [0.18, 0.39], we C. Optimized Paddle Acceleration may choose a curvature based on other criteria. Namely, we Analogous to the paddle shape optimization, we optimize observe that the worst-case spectral radius analysis in Fig. 6 the paddle acceleration aP to minimize the standard deviation shows that lower paddle curvatures allow juggling at higher of the apex height. We define the discrete-time LTI system Gz: apex heights. There is a trade-off between lower curvatures and required leveling accuracy, however. The flatter the curvature, Z[k + 1] = AzZ[k] + Bzνz[k] (110) the larger the shifts in mean impact location when the paddle is wz[k] = CzZ[k]. misleveled. A first-order approximation to the lower bound ∆x T of the expected shift in impact location is ∆x = ∆ϑ/c, where The state is Z = (sz0, sz˙0) , the vertical perturbations at ∆ϑ (rad) is the leveling error angle. This bound does not nominal apex time. The output corresponds to the apex height include the additional shift caused by the non-zero horizontal deviation, to first order, which is equivalent to sz0. The paddle velocities due to ∆ϑ. For a curvature of c = 0.18 underlying sampling time is 2T . We reuse Az (79) from the (1/m), a one degree offset would cause the ball to shift at perturbation analysis. The other system matrices are least 0.1 m.  T  With the above trade-off in mind, we manufactured a paddle Bz = , Cz = [1, 0] . (111) with a curvature of c = 0.24 (1/m), for which the stability 1 15

4 10− We predict the output variance analogously to before (108): · N 1 aP = 1.7 2 1 X− z − σ (a ) = S (Ω , a ) aP = 4.9 2 z P N ww k P 3 − k=0 aP = 7.0 ) − N 1 2 )

/s 1.5 1 X− 2 s z 2 = Gz (Ωk, aP) S (Ωk). (112) (

νν | N | | m 2 k=0

1 (Ω) z

We show the magnitude of the frequency response of the (Ω) ( G | z νν 1

system, along with the smoothed measured PSD of the noise S input signal in Fig. 18. We obtain a = 1.75 m/s2 from 0.5 P − min σz (aP) (113) 0 aP 0 for apex height H = 1.05, and previously identified vertical 0 π/2 π e = 0.80 coefficient of restitution z . A plot of the standard Frequency Ω( ) deviation σz (aP) is shown in Fig. 19. The minimized standard − deviation is σz = 4.3 mm. The standard deviation for aP = 2 Fig. 18. Vertical process noise smoothed power spectral density function g/2 4.9 m/s is 6.8 mm, thus the predicted improvement G − ≈ − from Fig. 15 (gray) and magnitude of frequency responses of the system z is 37% using the optimized acceleration. for different values of the paddle acceleration. In an experiment, we gathered impact data for aP = 1.75 m/s2 using the same ball and paddle as for the mea- 20 − surements at a = g/2 presented in Table I. The mea- P − sured apex height standard deviation is σz = 4.0 mm with 95%-confidence interval of [3.88, 4.22]. Given the measured 15 standard deviation for a = g/2 of σ = 5.5 mm, the ) P − z

improvement is 27%. mm

The process noise power spectral density measured at )( 10 2 P aP = 1.75 m/s is, not surprisingly, different from the a − ( spectrum measured at aP = g/2. A contributing factor z − σ is that the paddle velocity tracking errors depend on the 5 desired paddle acceleration aP. In addition, different precision balls produce different noise spectra. With the new measured noise power spectrum, we could repeat the optimization, find 0 the optimal acceleration, and obtain new measurements. This 10 8 6 4 2 0 − − − − − could be extended into an iterative scheme with no guarantees 2 of convergence to an optimal paddle acceleration. Since the Paddle Acceleration aP (m/s ) measured spectra depend on a range of system parameters, and since the optimized vertical juggling performance is Fig. 19. Objective function of vertical parameter optimization. acceptable, we did not pursue this strategy further. Finally, even though the measured improvement of 27% is optimizing hardware design. The procedure of building a large, it is hardly noticeable when watching the Blind Juggler first prototype, obtaining noise measurements, and subsequent bounce a ball. A higher deceleration is in fact often preferable, design optimization may be useful for other mechanical robot as it allows the robot to juggle balls with a larger range of designs. coefficients of restitution, see the discussion in Section V-A. The results obtained with the Blind Juggler allow us to A video demonstrating the high vertical juggling performance design more advanced juggling robots, for example the Pen- with a close-up of ball apexes, for both a = g/2 and a = P − P dulum Juggler, which is able to juggle unconstrained balls 1.75 m/s2, is available in the multimedia files provided with − in a side-to-side pattern without feedback [32]. We further this paper. developed a paddle that features four concave, parabolic areas which enables the Blind Juggler to simultaneously juggle VII.CONCLUSIONS up to four balls. We use this paddle to study the rich The Blind Juggler demonstrates that high-performance dynamics of the bouncing ball system, such as co-existing robotic juggling of unconstrained balls is possible without stable periodic orbits and chaotic system behavior. Additional feedback. We analytically showed local stability of the ball information, including videos, may be found on the project trajectory and verified the results in experiments that confirmed website: www.blindjuggler.org. the robot’s ability to continuously juggle balls at heights of up to 2 m. We would like to highlight how signal process- ACKNOWLEDGEMENTS ing concepts, such as predicting system performance from We would like to thank Matthew Donovan and Daniel Burch measured noise power spectral densities, may be used for for their great help with the mechanical and electrical design 16 of the Blind Juggler. We further thank Matthias Fassler¨ for [21] R. Ronsse and R. Sepulchre, “Feedback Control of Impact Dynamics: his help with the measurement setup. Lastly, we are indebted the Bouncing Ball Revisited,” in Proc. IEEE Conf. Decision and Control (CDC), 2006. to the anonymous reviewers and Sebastian Trimpe for their [22] R. Ronsse, P. Lefevre, and R. Sepulchre, “Rhythmic Feedback Control valuable suggestions and comments. of a Blind Planar Juggler,” IEEE Transactions on Robotics, vol. 23, no. 4, 2007. [23] D. Hobbelen and M. Wisse, “Swing-Leg Retraction for Limit Cy- REFERENCES cle Walkers Improves Disturbance Rejection,” IEEE Transactions on Robotics, vol. 24, no. 2, 2008. [1] P. Reist and R. D’Andrea, “Bouncing an Unconstrained Ball in Three [24] ——, “A disturbance rejection measure for limit cycle walkers: The gait Dimensions with a Blind Juggling Robot,” in Proc. IEEE Int. Conf. sensitivity norm,” IEEE Transactions on Robotics, vol. 23, no. 6, 2007. Robotics and (ICRA), 2009. [25] K. D. Mombaur, H. G. Bock, J. P. Schloder, and R. W. Longman, “Open- [2] P. J. Holmes, “The dynamics of repeated impacts with a sinusoidally loop stability - a new paradigm for periodic optimal control and analysis vibrating table,” Journal of Sound Vibration, vol. 84, Sep. 1982. of walking mechanisms,” in Proc. IEEE Int. Conf. Robotics, Automation [3] N. B. Tufillaro, T. Abbot, and J. Reilly, An experimental approach to and Mechatronics (RAM), 2004. nonlinear dynamics and chaos. Addison-Wesley, 1992. [26] R. Cross, “Grip-slip behavior of a bouncing ball,” American Journal of [4] T. L. Vincent, “Control using chaos,” IEEE Control Systems Magazine, Physics, vol. 70, no. 11, 2002. vol. 17, no. 6, 1997. [27] S. H. Strogatz, Nonlinear Dynamics And Chaos, 1st ed. Perseus Books [5] M. Buehler, D. E. Koditschek, and P. J. Kindlmann, “A Simple Juggling Group, 1994. Robot: Theory and Experimentation,” in Proc. Int. Symp. Exp. Robotics, [28] G. Strang, Linear Algebra and Its Applications. Addison Wesley, 1988. 1990. [29] “LinMot Website.” [Online]. Available: www.linmot.com [6] ——, “A Family of Strategies for Intermittent Dynamical [30] “D-Space Website.” [Online]. Available: www.dspace.de Environments,” in Proc. IEEE Int. Conf. Robotics and Automation [31] S. Skogestad and I. Postlethwaite, Multivariable Feedback Control. (ICRA), 1989. Wiley, 2007. [7] A. A. Rizzi and D. E. Koditschek, “Further progress in robot juggling: [32] P. Reist and R. D’Andrea, “Design of the Pendulum Juggler,” in Proc. solvable mirror laws,” in Proc. IEEE Int. Conf. Robotics and Automation IEEE Int. Conf. Robotics and Automation (ICRA), 2011. (ICRA), 1994. [8] S. Schaal and C. G. Atkeson, “Open loop stable control strategies for robot juggling,” in Proc. IEEE Int. Conf. Robotics and Automation (ICRA), 1993. [9] S. Schaal, D. Sternad, and C. G. Atkeson, “One-handed juggling: A dynamical approach to a rhythmic movement task,” Journal of Motor Philipp Reist received the B.Sc. and M.Sc. degree in Behavior, 1996. Mechanical Engineering from ETH Zurich in 2007 [10] G. Baetz, M. Sobotka, D. Wollherr, and M. Buss, “Robot Basketball: and 2008, and was awarded the “Outstanding D- Ball Dribbling – A Modified Juggling Task,” in Advances in Robotics MAVT Bachelor Award” for his B.Sc. GPA. During Research. Springer, 2009. his studies, he was part of the ETH team that won [11] R. P. Ringrose, “Self-stabilizing running,” Ph.D. dissertation, Mas- the Atlanta RoboCup Nanogram tournament, and sachusetts Institute of Technology, Cambridge, MA, 2008. spent two semesters at the Massachusetts Institute [12] R. R. Burridge, A. A. Rizzi, and D. E. Koditschek, “Sequential Com- of Technology, where he worked on an underwater position of Dynamically Dexterous Robot Behaviors,” Int. J. Rob. Res., rangefinder and on randomized feedback motion vol. 18, no. 6, 1998. planning. Since 2009, he has been a graduate student [13] A. A. Rizzi and D. E. Koditschek, “Further progress in robot juggling: at the Institute for Dynamic Systems and Control at the spatial two-juggle,” in Proc. IEEE Int. Conf. Robotics and Automa- ETH Zurich. His research interests include control of dynamical systems, tion (ICRA), 1993. nonlinear dynamics, and mechanism design. In addition to research, he [14] P. Kulchenko and E. Todorov, “First-exit model predictive control of fast regularly teaches robotics workshops for high school students. discontinuous dynamics : Application to ball bouncing,” in Proc. IEEE Int. Conf. Robotics and Automation (ICRA), 2011. [15] R. G. Sanfelice, A. R. Teel, and R. Sepulchre, “A Hybrid Systems Raffaello D’Andrea received the B.Sc. degree in Approach to Trajectory Tracking Control for Juggling Systems,” in Proc. Engineering Science from the University of Toronto IEEE Conf. Decision and Control (CDC), 2007. in 1991, and the M.S. and Ph.D. degrees in Electrical [16] A. Zavala-Rio and B. Brogliato, “On the control of a one degree-of- Engineering from the California Institute of Technol- freedom juggling robot,” Dyn. Control, vol. 9, no. 1, 1999. ogy in 1992 and 1997. He was an assistant, and then [17] S. Schaal and C. G. Atkeson, “Robot juggling: implementation of an associate, professor at Cornell University from memory-based learning,” IEEE Control Systems Magazine, vol. 14, 1997 to 2007. While on leave from Cornell, from no. 1, 1994. 2003 to 2007, he co-founded Kiva Systems, where [18] T. Sakaguchi, M. Fujita, H. Watanabe, and F. Miyazaki, “Motion he led the systems architecture, robot design, robot planning and control for a robot performer,” in Proc. IEEE Int. Conf. navigation and coordination, and control algorithms Robotics and Automation (ICRA), 1993. efforts. A creator of dynamic sculpture, his work has [19] R. Ronsse, P. Lefevre, and R. Sepulchre, “Timing Feedback Control of appeared at various international venues, including the National Gallery of a Rhythmic System,” in Proc. IEEE Conf. Decision and Control and Canada, the Venice Biennale, Ars Electronica, the Smithsonian, the FRAC European Control Conf. (CDC-ECC), 2005. Centre, and the Spoleto Festival. He is currently professor of Dynamic [20] ——, “Sensorless stabilization of bounce juggling,” IEEE Transactions Systems and Control at ETH Zurich and chief technical advisor at Kiva on Robotics, vol. 22, no. 1, 2006. Systems.