Finding length of an edge with a few variables known

71 Views Asked by At

I need to solve an inverse kinematics problem with geometric approach for a robotic arm and I've constructed a geometric system for my system, I've uploaded the picture System geometry. enter image description here I need to calculate the z length, but only the x value is known, is there a way I can manage to solve this system? I've tried triangle similarity, etc... but could not solve it yet.

Edit: I think the picture is unclear, so you gave a minus for the question. Here 135 and 170(the upper red line) are the length of the robot arm, z is the lower red line and x is the value that user gives as an input(say it is 10 for example), so h can be computer with ptyhagoras from(135^2=h^2 + x^2) and Q can be calculated from Q=atan2(x,h). However, the a angle (between 135 and 170) is unknown.

2

There are 2 best solutions below

1
On

A formula for $z$ can be readily found: $$ z=h-170\cos(a-Q), $$ but that depends on the value of angle $a$, which is arbitrary.

3
On

If I understand the design of your robot arm, basically you have one segment, the 135 one, that can rotate around the lower left point, and you have another segment, the 170 segment, attached to the first segment by a joint, which is the point where 170 meets 135. The 170 segment is also allowed to freely rotate around the joint. If this is your system, then you do not have enough input parameters. This system has two degrees of freedom (the configuration space is the two dimensional torus = a circle times a circle, or some subsurface of that, like a cylinder or a quadrilateral) and requires two input parameters to fully determine its configuration. You either have to allow the user to determine two parameters or you need to put another restriction to your robot arm so that its configuration space becomes one-dimensional.

For instance, input parameters could be $x$ and $z$ chosen in some appropriate intervals. Or $x$ and $y$, where $x+y$ is the length of the horizontal segment of the rectangle around your arm.