1
$\begingroup$

I have written a MATLAB code for inverse kinematics of 3R robotic arm, which returns value of joint angles for given link lengths and end effector position and orientation. But if location of point is outside the workspace or it can’t be reached with certain orientation the program gives error. Is there any way to check whether a particular point is reachable with a given orientation ?

$\endgroup$

2 Answers 2

2
$\begingroup$

You are basically asking if a given tool transformation has a corresponding IK solutions. This question, unfortunately, currently has no universal shortcut other than trying to actually compute IK solutions and see if any exists.

Nevertheless, I think there are a number of heuristics that you can use to speed up the process. For example, if the given position is farther from the base than the combined link lengths, you can be sure that no solution exists without checking further. You can also reach for works on reachability map.

$\endgroup$
3
  • $\begingroup$ Yes, reachability can be checked. I am finding it difficult to pre-check whether particular orientation of end effector is possible at given end effector position. I am trying to optimise link lengths of 3R manipulator for given end effector position, and end effector should be able to sweep angle of 60 degree about the point. $\endgroup$
    – Siddhesh
    Oct 20, 2017 at 9:02
  • $\begingroup$ I have posted the actual problem I am trying to solve here -> robotics.stackexchange.com/questions/14469/…, can you please offer your insights on it? $\endgroup$
    – Siddhesh
    Oct 20, 2017 at 9:05
  • $\begingroup$ I see. I will check the problem out when I have time. $\endgroup$ Oct 20, 2017 at 9:18
1
$\begingroup$

First find the workspace of the robot arm.

  • The easy method is to model the robot arm and to apply ramp functions to the first two joints and a sine function to the last joint. Use the probe block to record the end effector positions. Ensure that the simulation length is sufficiently long enough.
  • The hard method is to find it analytically as given here.

Second export result to MATLAB and plot a 3D graph using the plot3 command.

Third for every point you want to test; plot it on the same graph and you will immediately see if it's within the workspace or not.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.