I finally found the time to do a comparison of setting up and using linear vs rotary servos for a button pusher. There’s no one right answer since sometimes unique space or other constraints will come into play. Regardless, I think it’s interesting to see how these two different mechanisms perform at the same task. For this test I decided using a computer keyboard as a target since it has a large array of buttons to press. Of course this is just a test of the mechanical mechanisms, not a good keyboard access method. For automating keypresses, interfacing though USB or Bluetooth is better in almost every way except entertainment value.
In this setup I found the full rotary solution to be simpler to build, cheaper, much faster in action, but slower to tune. In concept I thought I would like the linear solution better since it seemed more direct: you point the rotary “angle” servo at the target button, extend the linear “reach” servo the exact distance to that target, then extend the linear “press” servo the exact depth of that target. But in practice, the linear “reach” servo needs to have its load, the “press” servo, on a slide rail so that the press servo doesn’t rotate around at all during either servo’s actuation. If that servo doesn’t stay vertical it will miss the target button. Though there is something satisfying and cool about the slide rail setup, it’s more parts which means more cost and more complexity. Also, critically, the linear servos I tested were much slower at moving through their range of motion than the rotary servos. That’s why in that video you see quick motions when the next button requires the same amount of reach as the current one, but a relatively slow motion when the reach required is much longer or shorter.
The full rotary setup is much faster even though I’m not running it at full speed. Running at full speed be a jerkier motion, louder, and shorten the servo gear train life. Positioning the full rotary setup is slightly less intuitive since both the reach and the angle are both a function of two servos (not just one) and they’re the same two servos. Said another way, actuating either servo changes both the reach and the angle at the same time. Also since in this simple setup the rotary “press” servo doesn’t press straight down but rotates down, the button contact moves sideways slightly during the downward motion which affects aiming. In this setup the payoff in speed and cost justifies the slightly more involved position tuning.
Here’s some pictures of the mixed linear/rotary servo setup:
Here’s some pictures of the full rotary servo setup: