0
$\begingroup$

After having set up the inverse kinematics for each intermediate point on a line that the tcp is supposed to travel, I encountered a problem that stops the tcp when it is supposed to travel along the line. While all other joints do not have to make big changes in the joint angles between the intermediate points, a joint has to rotate from -1 rad to 1 rad between two intermediate points, which is a very big rotation compared to the other joints. I understand that all joints have to make a different amount of angle change between two intermediate points, but the joint that has to do the large angle change cannot rotate as fast to compensate for this.

Should the other joints wait until the rotation of the joint is finished and then continue with the interpolation? This seems to be the only reasonable solution for me. However, this would mean a short interruption of the movement of the tcp on the line.

Therefore, I am confused by tasks that require the tcp to move at a constant speed on a line

$\endgroup$
0
$\begingroup$

It sounds as if the path the robot is traversing comes close to a singularity. This could be a wrist or an arm singularity. For these situations, you only have two options with this type of robot: either slow the path speed (possibly by setting your interpolation points closer together), or move the path within the robot’s workspace to avoid the singular configuration.

If you don’t do these, the tcp will deviate from the path (if you don’t wait for the large joint motion to complete), or it will dwell along the path (if you do wait for the large joint motion to complete). This is what makes singularities so challenging for tasks which require a certain path speed, such as seam welding or grinding.

| improve this answer | |
$\endgroup$
  • $\begingroup$ In my textbook it says that if the angle q5 in this robot is equal to 0, there are infinite solutions for the angles q4 and q6. As a solution for this the book says f(q4,q6) = c1*(q4A - q4)^2 + c2*(q6A-q6)^2 = MIN q4A and q6A are the joint angles calculated from the previous backward transformation when driving a robot path. By the above equation, a solution for q4 and q6 is taken which is closest to the previous solution. I dont understand this equation. $\endgroup$ – Hey Hey Feb 15 at 16:56
  • $\begingroup$ This is a separate question. But basically it is just the least-squares “closest” set of q4 and q6 to the current angles so the robot’s joint moves are as small as possible when going to the next point. Think about it physically: if the wrist is straight out, you can rotate q4 in one direction, and q6 the same amount in the other direction, to keep the tool angle the same. This is a wrist singularity. $\endgroup$ – SteveO Feb 15 at 17:01
  • $\begingroup$ But what does the function return? Angles for Q4 and Q6? And what are c1 and c2 and what does MIN mean? $\endgroup$ – Hey Hey Feb 15 at 17:14
  • $\begingroup$ Yes, this will return the values for q4 and q6 which minimize the deltas from their current positions. c1 and c2 might be weights in case you want to choose q4 and q6 to be allowed to move more or less than the other, or they might be kinematically determined values. I am not familiar with this derivation so I cannot help with this. Once you have the equation you can use linear algebra to minimize the deltas (remember (A^TA)^(-1)A )? If you need help with that equation you should put it in a separate question. Comment discussions are not preferred here. $\endgroup$ – SteveO Feb 15 at 17:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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