06-20-2023, 08:17 AM (This post was last modified: 05-29-2025, 09:45 AM by Albert.)
Hi,
I've implemented a linear rail in my station and synchronized it with the UR10e in RoboDK. I made it part of the robot kinematics, indeed now the Robot happens to have 7 joints.
The problem is that when I create a new target (be it cartesian or joints) it seems to store the rail position. That being said, I need the program to find the right positioning for the rail on its own.
So my question is: if I create a target somewhere in space (without bringing the UR10e there first and maybe somewhere unreachable for the robot unless the rail is moved), is there a way to have RoboDK find out that if they move the rail, the target is in reach?
Thank you
06-20-2023, 08:35 AM (This post was last modified: 06-20-2023, 08:35 AM by Alex.)
RoboDK will always give preference to the predefined joint configuration when reaching a target. If the target is not reachable with the configuration specified, it will solve for an alternative.
You can see this is you move the target in the 3D space.
What linear rail are you using?
Keep in mind that UR robots do not support linear axes synchronization the way that some other robots do and you may need a specific URCap for this.
Hi, any updates? It also happens on ABB robots that already have an integrated rail system.
The issue is: if I displace a target (be it cartesian or joint) in space by modifying its position and not by operating a "Teach Target" (so it doesn't contain any rail information) in a position that is clearly reachable by moving the rail, it keeps saying "target not reachable" when I double-click on it or I click on "move to target".
How can I solve that?
Here's a simple working station
When you have external axes synchronized with your robot, RoboDK uses the joint values of external axes defined in targets to move them as a reference, then, adjusts the robot joints to reach the target defined in the Cartesian space.
You can enable the Generic Axes Optimization option to properly configure how you want the robot to behave when you are jogging it manually to create new targets. You can enable this option here:
Double click the robot (in the tree or the 3D view)
Click on Parameters
Click on More Options
Check the Generic Axes Optimization option
Use a recommended preset such as Prioritize External Axes which will move the external axes and the robot with a slight priority towards the robot arm. You can fine tune the weights/priorities further in the settings below.
05-30-2025, 04:35 AM (This post was last modified: 05-30-2025, 04:50 AM by demtam.)
I set the parameters as you described earlier. At first it didn't work either. Then I changed the settings of Inverse Kinematics. Then the situations shown in the attachment happen. I put another target just on the rail (Target 2), it is reachable(there is no yellow triangle), when I click on it the robot takes this pose. (Target 1 is still yellow triangle)
The other attachment shows the situation I'm struggling with. I would like to move the workpiece circled in yellow from the "Start" position to the "End robot1" position. The "Start" gripping point was picked up by the robot(teach target) and the "End robot1" point was calculated using the python api. "Target 20" was also picked up by the robot for checking the reachability of "End robot1". So I think my question is very similar to the original question, the robot in the linear rail can't reach the calculated target (although it is reachable).