Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Issue with Inverse kinematics of UR10 using SolveIK_All in Python

#1
Hello, I recently tried to use the SolvIK_All function in the Python script to solve the inverse kinematics of the specific end pose of UR10 to get all the joint combinations. 

The problem is that I can only get one value of the robot joints solution each time.

I am pretty sure there are at least four inverse kinematic solutions for the current robot end-point posture, so I don't know where the problem lies. Please help me solve it!

Code:
from robodk.robolink import *  # API to communicate with RoboDK
RDK = Robolink()
robot = RDK.Item('UR10')
if not robot.Valid():
    raise Exception('No robot selected or available')

for sol in robot.SolveIK_All(robot.SolveFK(robot.Joints())):
    print(sol)
Results:
Code:
[-45.00000399720827, -89.99999971952762, -90.0000023573822, -180.00000020639916, -90.00000014166224, -135.00000001418832]


Attached Files Thumbnail(s)
微信图片_20240913104409.png   
#2
Did you calibrate the robot or did you load the controller kinematics? When you calibrate a robot or use the controller kinematics with a UR robot, the inverse kinematics is iterative. Therefore, you'll only see one solution. You can disable it in the robot parameters section.

Can you share your RoboDK project file? We can help you better.
#3
Dear Albert,

I did load controller kinematics, and now I have disabled it. Thank you for your help.

In addition, I noticed that when I disabled the controller kinematics, there would be a numerical error of 6.144mm. I would like to ask the role of the controller kinematics here and whether disabling it will affect the overall accuracy.

Then I also want to ask the meaning of iterative kinematics in RoboDK for inverse kinematics? How did it solve? It will be great if there is an instruction manual for the inverse kinematics solver in RoboDK.

Best regards,
Scofield
#4
The numerical accuracy is the discrepancy between the nominal kinematics used by RoboDK and the kinematics available in the robot controller. If you generate programs using the default post processor, the robot controller will apply its own kinematics. The discrepancy is the difference between the simulation and the real robot.
  




Users browsing this thread:
1 Guest(s)