0
$\begingroup$

I am moving the robot with real-time inputs from the joystick.I use the end-effector values X,Y,Z,rx,ry,rz.(i.e., the motion is in linear motion).So, now I want to check all the joints values in real time to prevent joint limit exceeding problem.So , I put inverse kinematics(KDL plugin) to compute joint angles.

Now the exact problem is, For example, let’s say the robot’s 6th joint has to go to 190 degrees.So according to the joystick movement the end effector moves. In background I want to check joint angles using IK. The robot starts moving. The controller starts computing IK and eventually moves normally towards 180 degrees. Once the robot attempts to cross the 180 degrees mark, due to the [-180,+180] orientation range, the controller will read a sudden -180 and I get 6th joint value as -170 degrees instead of 190 degrees. This cause drastic motion change. Can anyone help me to solve this issue?

$\endgroup$

1 Answer 1

0
$\begingroup$

Since your use case makes small, incremental movements of the eef, one thing you could do is reject a new IK solution which tries to move any robot joint by too much from its current position. Of course, it's up to you to decide what is "too much".

Another potential issue: are you aware that a 6-DOF robot can have multiple joint-solutions for an eef pose? Are you calculating the solution that causes the smallest amount of movement?

$\endgroup$

Your Answer

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

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