The Robot
The First CAD Draft
The robot consists of an aluminum plate actuated by a linear motor which is mounted on a support. The "racket" of our juggler is a machined solid aluminum plate. It is the shape of this plate that stabilizes the ball in the horizontal directions. In our mathematical analysis, we assume the shape to be parabolic, but we had to change it to spherical due to machining reasons. However, for small curvatures, the shapes are almost identical.
In the following sections, we present an overview of the mechanical design of the robot as well as some details on the electronics and programming of the robot. Finally, we present some measured results obtained with the first prototype. For videos of the robot in action, please refer to the video section.
Hardware Design
After obtaining the design parameters from our mathematical analysis, the hardware design is straightforward. We generate the linear motion of the paddle with a linear motor from LinMot. The motor has to be powerful enough to drive the paddle on the periodic trajectory. Overheating issues are to be considered if the robot should be able to juggle over a longer period of time. LinMot provides a program to easily check these temperature constraints on their website.
| a: | Spherical paddle |
| b: | Linear motor slider |
| c: | Magnetic spring |
| d: | Linear motor stator |
Motor
With our motor choice (datasheet), the robot is able to continuously juggle a ball with a coefficient of restitution in the range of 0.7 to 1.0 at nominal heights between almost zero and at least 1.3m.
The motor is further equipped with a linear guide that compensates for forces and moments that are not acting in the motor's actuated direction. The magnetic spring (datasheet) cancels out gravitational force acting on the moving parts, which lowers the motor power requirements.
Paddle
The paddle was CNC-milled following this drawing. It is 0.3m in diameter and weighs 1.34kg. The total mass actuated by the motor is about 3.6kg.
Trajectory Control
We bought a controller (datasheet) with integrated power electronics from LinMot. The controller is taking care of the low-level trajectory control and is able to drive quadratic profiles we set over serial connection. We can trigger the start of the motion externally, which we use to precisely time the motion. Furthermore, the controller provides position information in the form of digital encoder signals with a resolution of up to 1um.
The high-level controller is implemented in a D-Space (DS1104) real-time system. A program coded in C is taking care of all the feed-forward control of the robot. The D-Space system's digital I/O are used to trigger the motion controller.
A Sample Trajectory
Based on the apex height, we can determine the period time of the motion. Therefore, we know exactly at which time the paddle has to be at the nominal hit speed. In the math section, we also explain the stabilizing paddle acceleration at impact, which has to be negative.
In the figure to the right, we show a model trajectory. The different parts of the trajectory are marked with the red and green lines. The green lines mark the nominal hit time, while the red lines mark the different trajectory sections, i.e. acceleration to maximal speed (a), deceleration during expected hit time (b), retraction (c) and idling (d).
Deceleration Duration: A Free Parameter
There is one more parameter of the trajectory we have not yet determined: the duration the robot should decelerate the paddle. The ball does not always bounce up to the same height - it randomly jumps a bit higher or lower each hit. This is due to the fact that the coefficient of restitution varies slightly between bounces.
Based on an assumption of the maximal variation of the coefficient of restitution and the nominal apex height, we calculate how long the paddle should be decelerating. In the trajectory graph to the right, this duration is depicted as the interval between the first two red vertical lines (part b). During this time, the robot decelerates with the desired deceleration of about -1/2 g, half the earth's gravitational acceleration.
Experimental Data
The measurement data was recorded as shown in this video: A piezo strain-gage was glued to the bottom-side of the paddle and served as a contact microphone. This allows measuring the impact times. As an impact is detected, the red LED-array to the right flashes up and we extract the ball position from the video frame.
Higher Quality Video Available Here
Results
For more detailed experimental results, please refer to the paper. The following figures illustrate some of the data recorded using the piezo strain-gage and the camera. In the picture on the right, a video frame is overlayed with the extracted impact locations from a longer run of the robot.
Impact Height Distributions for H = 0.5m, 0.8m and 1.05m. 5301, 4549 and 5789 recorded consecutive impacts, respectively.
The figure on the right shows the graphs for the apex height distributions for three different heights. The standard deviations of the fitted gaussian distributions are quite small; e.g. for an apex height of 1.05 meters, the standard deviation from the nominal height is 0.012m - that means about 70% of all measured heights are closer than 12 milli-meters from the ideal height. Just the decelerating motion of the paddle yields a very steady apex height of the bouncing ball - without any feedback. We even show in the paper that by applying control to the system using the impact time as feedback, we only reduce the standard deviation by about 14 percent - or about 2 millimeters. Therefore, applying feedback control would not have any visible impact on the vertical performance of the robot.


