The juggler machinery consists of two linear motion modules as depicted in Figure 1, each having a carriage moving in the vertical direction. A smaller motor having a rotating arm with a tray is mounted on each of the two carriages. The tray can hold a billiard ball and by combining the vertical movement of the carriage and the horizontal movement of the tray, the ball can be thrown up with a parabolic trajectory. Similarly, the ball can be caught by the tray if the velocity vector of the falling ball and the moving tray are the same at the moment the ball touches the tray. A third vertical axis formed with a linear motor has been added in the middle between the two vertical linear motion modules to be able to juggle with three balls. It can pick up a fallen ball from the bottom container and throw it up in order for it to be caught by one of the two trays, which perform the juggling. Several balls can gather in the bottom container.
Figure 2 shows how the balls are operated in the horizontal direction. There are switches mounted under the rotating arms, which are used to signal marginal positions of the arm. Positions of ±90° are limit positions, after which a collision with the construction would occur. The reaching of the limit positions is signalled directly to the hardware input of the respective ACOPOS drive. From the starting position of 0° the direction of the rotation is defined in order for it to be positive towards the middle of the juggler. The position of -43.6° serves as the homing reference and the position of ±43.6° marks the non-collision zone. The position of ±90° is the limit position; after reaching it the respective drive is stopped safely. The homing position is hard-wired directly to the drive, the non-collision-zone position is evaluated in software, and the limit positions are hard-wired to the safety logic. The safety logic is represented with a safety relay whose output is wired to the quick-stop inputs of all drives. By evaluating the presence in the non-safe zone any danger of a crash is eliminated. After reaching these non-collision-zone marginal positions there is still enough space for the arm to be stopped after receiving the stop command from the PLC.
Model of the machine mechanics
The kinematic equation is based on the model of the installed linear motion module as depicted at the right side of Figure 1. The kinematics can be described by
after applying the method of separation, where Jtot is the total moment of inertia being moved, s is the trajectory, r is the diameter of the driving band-wheel, Mmax is the maximum torque of the driving motor and M0 is the static moment of the system. Values of r, Mmax are known from the construction and motor parameters, while values of Jtot and M0 can be obtained by solving
The least-squares method was used to identify the parameters based on the measured values of torque M and velocity φ' of the motor. Consequently, we were able to obtain the maximum reachable values for the acceleration in the upward and downward directions, which are 66 m/s2 and 79 m/s2, respectively. Similarly, the rotating movement of the arms with trays is described by
the moment of inertia Jtray was identified from the measured values and the maximum reachable value for the angular acceleration was obtained to be 2000 rad/s2.
The axes kinematics
The juggling has been described by the juggling theorem. There are several techniques described there, from which the technique called cascade is suitable for our constitution. With this technique, the ball leaves the tray in the same vertical position where it is caught later on and only the horizontal position of the tray for throwing and catching differs. The juggling theorem can be expressed with
where nb is the number of balls in the air, nh is the number of hands, th is the time a ball spends in a hand, tf is the time a ball spends in the air, and te is the time a hand is vacant. Figure 3 shows the parabolic trajectory of a transversal throw.
Angle α is the angle of the throw, which must take into account the shape of the tray with bevel edge. In order for the tray to hold the ball safely, we select v0x to be 8 times smaller than v0y. For the balls to be juggled safely it is necessary for them to be at least diameter of the balls distant from each other at the time of catch and the time of throw. However, in our case the balls are caught under certain angle, which is denoted φd in Figure 3. Thus it is necessary to prolong the minimum necessary distance between two balls by 75% as shown in equation
where δ is the distance between two balls, φ is the ball diameter and ε is the 75%-reserve. Then, δmin ≈ 100mm if we take into account our previous requirement that v0x is 8 times smaller than v0y. Figure 4 shows the trajectories of the rotating arms in the upper graph that are projected into the x-z plane. The possible trajectories of the ball flight are marked as red dotted lines. The black solid line marked as Δδmin corresponds to distance between balls δmin. For δ = δmin we get βthrow = +6.4904°, βcatch = -45.7826° and Δδmin = 393.069mm.
Now the minimum time of flight tmin can be computed from length of flight Δδmin. By expressing each component of the velocity vector as a function of time and dividing v0y by v0x, we get
where g is the gravity acceleration, tmin is the minimum time of flight and the other notation corresponds to Figure 3. Stemming from the up-to-now computed values we get tmin ≈ 0.8s. We can also define throw period τ = th + te as the time between two consecutive throws from the same tray. We choose th = te and compute this value to be th = 0.4s. During th = te = 0.4s the drives must decelerate from the catching velocity and afterwards accelerate to the throwing speed |vthrow| = |vcatch|. During this deceleration/acceleration process the acceleration and position limits of the individual axes must not be exceeded. When computing the required acceleration vector the catching and throwing velocities together with the th time are taken, and also spatial requirements on the travelled trajectory during deceleration/acceleration must be counted with.
The effective torque Meff has been computed from the required torque values in the upward, downward and rotational directions. The torque value for the rotational movement is far below the nominal value of the motor but for the vertical axes we get approximately 50% over the nominal value of the motors. This fact is discussed more in next section.
In case the kinematics exceeds nominal values it is necessary to check the servo motors and servo drives thermodynamic model to be sure that the temperatures do not exceed any limit. If the limits are exceeded, the kinematics should be tuned or the machine operational time must be corrected. Otherwise the machine operation would be terminated abruptly after overheating.
After having computed the kinematics parameters in previous section, we can compute the thermal time constant of the motor winding. In our case we use effective torque Meff to get tthC = 184,93s, which is much greater than throw period τ = 0.8s. This fact allows us using the effective load instead of the dynamic load throughout the operational cycle, which brings great simplification.
In the case of the juggler the drives are in the low-revolution area of the operational characteristics and thus we can concentrate on winding heat dissipation. In such a case the thermodynamic behaviour can be modelled. However, only thermal time constant ttherm = 3300s was available in the motor documentation and thus it was necessary to perform the measurement and identification of the thermodynamic step response to the load. After normalising the characteristics and performing a convolution with the computed effective torque Meff, a thermodynamic model has been obtained as shown in Figure 5.
From the graph in the figure we can read the time after which the maximum allowed motor-winding temperature of 75°C is reached. This value of approximately 5min corresponds to the real experience with the juggler.