Posts: 336
Threads: 0
Joined: Dec 2022
Reputation:
22
You need to create the positioner as a separate mechanism consisting of linked axes, and do not synchronize it with the robot.
You will be able to create separate programs to control the positioner. You can then call these programs as subroutines within the main robot control program.
You can also assign specific names to these programs and identify them by these names in the postprocessor’s RunCode function. This will allow you to generate the code needed to control the axes using a PLC.
Most examples in our library that use gripping mechanisms operate on this principle.
This approach works well for applications where the positioner needs to move between index positions. For more complex tasks, such as welding circumferential seams using external axes, the robot controller must support operation with external axes in interpolation mode.
Posts: 44
Threads: 18
Joined: Sep 2022
Reputation:
0
How can I create a program call to a single script that rotates the Positioner to specific angles? I have multiple programs that are orientated at different positioner angles on both axes. But it seems like I can only call the python script by name when I want to pass in the angles as parameters to the script. Would I need to create multiple sub-scripts/programs just to rotate the positioner separately for each program?
Posts: 44
Threads: 18
Joined: Sep 2022
Reputation:
0
Thanks Sergei for the tips.
I also want to ask, instead of increasing the weights inside of the Optimize External Axes panel to be a very large number to prevent the positioner/external axis from moving. Is there a proper way of just disabling or preventing the positioner from rotating when generating the path?
For example, if the path that the robot is following goes out of range or is in an orientation that the robot cannot follow. RoboDK will force the positioner to rotate to allow the robot to continue along the path. But I want the positioner to stay fixed to that angle I've told it to go to, that I set in the Project Setting's starting joint fields.
Posts: 44
Threads: 18
Joined: Sep 2022
Reputation:
0
Yes, that is what I have been doing and setting the weights to 100,000 like in the tip on the documentation. Though this does work and I can keep the positioner still. There are still cases where RoboDK will attempt to move the positioner and robot to go to a random orientation for the robot to reach the path.
Is it possible to implement this as a feature to keep a fixed position/angle on external joints?
Posts: 4,714
Threads: 2
Joined: Apr 2018
Reputation:
219
All weights in the optimization window are relative to each other. If we added a checkbox to allow blocking an axis it would be to force a high weight that is hard coded and it could generate more confusion. The problem is that a very high weight could make the other preferences invalid as the other settings become irrelevant.
For example, if you want to prioritize one axis over another while still moving both you can add weights 10-100 times higher than another. And if you want to block an axis you should have a weight weight 100-1000 times highter than the other weights.