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

SolveIK For External Axes

I have a station with two 6-axis robots and two XYZ gantries. I have calculated 4*4 poses with Matlab which I want to reach with the robots. I then loaded these into RoboDK via setAsCartesianTarget and setPose. But moving to these targets in RoboDK does not work, because the information of the axis joints are missing. Now I thought about using the SolveIK function. 
Is it possible to use the SolveIK function for external axes or do I have to determine these values beforehand? Or is there another solution for this problem Im missing?
You should use setJoints on your target to specifying the joint values of your external axes before setting the pose (you can leave the joint values of your arm at 0).

target.setJoints([0,0,0,0,0,0, 100,200,300])
More information here:
Is manually specifying the external axis the only way? That is, is there no version of SolveIK() that will also handle external axes based on the "Optimization Settings" in the "Synchronize External Axes" tool? Right now, I have to attempt to SolveIK() at every point on an external axis, which is very slow; it would be nice to be able to integrate the external axis into the solver.

The "curve follow project" / "point follow project" / "robot machining project" tools seem to implement this functionality, but I don't think any of them support using targets to specify the path.

You can use setJoints to set the joints of a robot and specify the position of the external axes before calculating the inverse kinematics.

# If you want the external axes 1-3 to be 10, 20, 30 (mm or deg), set these joint values first:
robot.setJoints([0,0,0,0,0,0, 10,20,30])

# Calculate the result (external axis values are not changed when calculating the inverse kinematics)
joints = robot.SolveIK(pose)

Users browsing this thread:
1 Guest(s)