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

Difference between SolveIK_All and target poses

#1
Hello, I am a beginner who started robodk less than a month ago.
We are trying to move the targets created in robodk sequentially by python api. At this time, when moving to the next target, check the validity by doing movej_test. For this purpose, solveik_all was used and the pose with the joint closest to 0 deg was selected.
The problem is that solveik_all seems to have been used so that the tool CAM1 is located at the target, but the inverse kinematics is solved in the correct direction, but the position is different. Why is that so? thanks.


Attached Files
.rdk   demo_v0.5.rdk (Size: 20.62 MB / Downloads: 296)
#2
I solved it by referring to the link, but I'm not sure why I can't specify the tool and frame as before. (https://robodk.com/doc/en/PythonAPI/exam...easibility)
Code:
tool = ur5e_cr1.getLink(ITEM_TYPE_TOOL)
if not tool.Valid():
    tool = RDK.Item('Cam1', ITEM_TYPE_TOOL)
    if not tool.Valid():
        print("Cam1을 찾을 수 없습니다.")
        exit()
    ur5e_cr1.setPoseTool(tool)

tool_pose = tool.PoseTool()

base_frame = ur5e_cr1.getLink(ITEM_TYPE_FRAME)
if not base_frame.Valid():
    base_frame = ur5e_cr1.Parent()
    ur5e_cr1.setPoseFrame(base_frame)
frame_pose = ur5e_cr1.PoseFrame()
#3
The SolveIK and SolveIK_All functions of the API take the pose of the robot flange with respect to the robot base (not the active tool and active references).

However, most other robot poses should be the pose of the active tool with respect to the active coordinate system (such as: MoveJ, MoveL, MoveL_Test, setPose, Pose).
  




Users browsing this thread:
2 Guest(s)