I am doing a project, to draw images provided using robotic arm. Initially edge detection is done on image to be drawn and coordinate value is obtained as (x,y).
How to calculate 3 joint angles inverse kinematics from this value.
-
4$\begingroup$ This needs a little bit more detail: What's the configuration of your arm? Is it a planar 3-link manipulator, or is it a little more complicated? If it's a planar arm, simple 2D geometry can give you the required joint angles. If not, you might have to construct DH parameters before you figure out the IK: but you might be able to find a closed form solution. $\endgroup$– HighVoltageFeb 5, 2017 at 3:29
-
$\begingroup$ The best IK-Solver is RRT which is sampling-based. From current situation a graph is constructed for exploring the problemspace. The steps to the goal are determined by a queryrequest to the graph. (1) $\endgroup$– Manuel RodriguezFeb 5, 2017 at 9:45
-
$\begingroup$ It is 3dof robotic arm ....Can I obtain joint angles by knowing (x,y)coordinates alone $\endgroup$– QuestionFeb 5, 2017 at 13:40
-
$\begingroup$ There are many different 3dof robotic arms. The answer will depend on which type of arm you are using. For example, if all three joint axes are parallel, you need some inverse kinematic optimization like @ManuelRodriguez mentions. If they are not all parallel, you will most likely be able to obtain the joint angles directly from the coodinates. We need more information about the arm's structure. $\endgroup$– SteveOFeb 5, 2017 at 22:41
-
$\begingroup$ Without a schematic of the structure, i do not think that it is possible to answer your question $\endgroup$– 50k4Feb 8, 2017 at 14:58
2 Answers
The manipulator in the figure seems like an planar manipulator with 3 degrees of freedom (DoF). However, from the description it seems that you only have 2 coordinates as reference coordinates. As the 3 DoF of the manipulator suggests, you would need 3.
The simplets is just to set the third one to zero, and solve the IK for (x, y, 0). You can come up with better approaches. If you want to draw something you might have a felt tipped pen where the orientation does not matter or if you have a pen, it might matter. In this case you can derive a way to make sure that the orientation matches the heading direction (you can take the next (x,y) sample to calculate the orientation)
You can find a detailed example of how to calculate joint angles for a RRR planar manipulator here or here
One way you could do it is by creating a hashmap or a LUT(lookup table).
- Create an empty hashmap.
- Iterate through all possible combinations of all thetas (this results in 3 for-loops) and find the resultant (x,y) coordinates.
- Use the coordinates as the key to your hashmap and the angles as the value.
If the length of your robotic arm is constant, you get a better performance in speed after the initial overhead of loading/creating the LUT.