# Can you increase resolution/accuracy by mechanically averaging two actuators?

I'm working on a project using hobby servos to drive a revolute joint, and the servo mechanism doesn't seem to respond when I command a motion of less than about 1 degree. I want to increase the resolution without sacrificing range (otherwise I would just gear them down).

I've read that "parallel" robots such as delta-style 3D printers or pick-and-place machines are generally much more accurate than "serial" robots like a typical robot arm. Is there a linkage design which can combine the motion of two servos into a single "better" rotational actuator? The output would still just have one degree of freedom, but increased resolution compared with a direct coupling to one servo.

First I thought maybe you could reduce the motors by 2:1 and then add their outputs somehow, but it seems like this would also add the positional errors together, and you wouldn't gain anything:

Then I thought about it a bit more and came up with this arrangement, with a parallel linkage between the two motors fixed at a point between them.

I have no idea if this would actually improve my resolution though. Would I need to command different positions to each motor? e.g. if I want to achieve 90.5 degrees, would I command 90.0 to one motor and 91.0 to the second motor? Or is there a better way to approach this? (I realize I could just buy more expensive servos, but I'm trying to work with what I already have).

• hackaday.com/2022/02/08/… Commented Jun 28, 2022 at 1:14
• When you connect two servos mechanically in parallel, you need to use something springy or squishy. If either servo can influence the other's position, their separate control loops will fight each other. Commented Jun 28, 2022 at 14:18

Your intuition is right, parallel mechanisms will improve precision, in general, when compared to serial mechanisms, but with a number of caveats:

1. Parallel mechanisms (as opposed to serial, chain like mechanism) have this aspect of averaging out positional errors, but this aspect is not constant throughout the workspace. It is more accentuated in the middle of the workspace and tends to fade out the closer the TCP is to the margins of the workspace.

2. You have to be more careful about the kinematic design. For a serial chain the influence of one small motion in one motor on the TCP is much more intuitive then in the case of a parallel mechanism.

3. The workspace of a parallel mechanism is much smaller then the workspace of a parallel mechanism.

4. Parallel mechanisms improve the precision because of their geometrical (kinematic) model (e.g. a small motion at the motor level causes a smaller motion at the TCP level then in the case of the serial version and the motion produced is in more dimensions then in the case of a serial version, so the error gets less amplified and is spread out among more dimensions), not because they are overconstrained and one tries to pull/push the other motor.

I am not sure how your mechanism could/should function, but is it essential to create a kinematic model (or maybe a simulation) to better understand how it works, how many degrees of freedom it has and how to map TCP motion to the motor level.

• Thanks for the info. Any suggestions on where to start with kinematic modeling? Is that a "take an introductory college course", "watch a youtube lecture", or "get this software and read the docs" kind of thing? Commented Jun 29, 2022 at 4:32
• All of the above works. Look for 5 bar mechanism and 2RR robot kinematic problem on youtube as a start. You will see that it involves some geometry and linear algebra. Afterwards you can do kinematic modelling in any programming language (Python and Matlab will have nice libraries to ease your job) but you could also do it on paper (but it is much easier to code it). As for simulation tools maybe Matlab Simulink with SimMechanics (i guess it has a different name now) but it will only give you an ablity to simulate motion not to do an assesment or analysis.
– 50k4
Commented Jun 29, 2022 at 8:13