How to deal with a joint suddenly having to make a large change in angle during linear interpolation?

  • 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

  • HawkME Oh ok, thanks for your reply. I now know that the problem is a singularity occurs.


    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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now