Best way to solve this set trigonometric equations?

72 Views Asked by At

I have a robotic arm, and I need a transform between the angle of $3$ joints and the end-effector's $x$, $y$, and $z$ position in space. I came up with these equations and tested them going from $\theta_0$, $\theta_1$, $\theta_2$ to $x$, $y$, and $z$, and it works! But now I want to go the other way. I've actually solved it using a converging least-squares method computationally, but I was wondering if there is a closed form solution. I've tried my best algebraic simplifications, but I'm stuck. Any help would be appreciated!

$$ \begin{cases} a - e + b\cos(\theta_1) + c\sin(\theta_1) + d\sin(\theta_2+ \theta_1 )= z \\ \left [ b\sin(-\theta_1) + c\cos(\theta_1) + d\cos(\theta_2+ \theta_1 ) \right ] \sin(\theta_0) = x \\ \left [ b\sin(-\theta_1) + c\cos(\theta_1) + d\cos(\theta_2+ \theta_1 ) \right ] \cos(\theta_0) = y \end{cases} $$

, where $a$, $b$, $c$, $d$ and $e$ are constants. In practical terms, given $x$, $y$, and $z$, I need to solve for $\theta_0$, $\theta_1$, $\theta_2$.

Bonus question: Is this non-linear or linear?

1

There are 1 best solutions below

0
On

This is non-linear and a closed-form solution is unlikely to exist. You may want to have a look at inverse kinematics.