I worked on a large-format vertical 4-motor machine, similar to Jurg Lehni’s Otto, and we had the same issues. Despite seeming like a simple trigonometric problem, we weren’t able to find an IK solution that maintained tension in all of the lines. We were also losing steps and weren’t really able to pinpoint where exactly that was happening (was it a bad stepper driver, bad IK code causing rounding errors, tension force overcoming the holding torque and skipping, etc.) to be able to diagnose and solve.

Our end solution was to jog the machine to several pre-measured, marked coordinate points (we strung a regular grid of strings across the canvas), extract the stepper motor absolute step positions, and run a regression to on the step position vs. canvas coordinates to produce a best fit formula for IK. Even then, we still had to rely quite a bit on springs at the attachment points to deal with tension loss/gain and would need to re-home and re-tension the lines after an hour or two of use. It was not a pretty or particularly satisfying solution, but it got the bot functional enough to have running at an event.

I’d love to see what changes you made to get the most recent improved results, if only to know where we were making the mistakes.