CalcJointT without axis configuration?
jay_c
✭
Hello,
I'm wondering if anyone has an idea for how to use CalcJointT, but with an input RobTarget that doesn't have a solved axis-config? (During the program execution we switch off the axis config using ConfL\Off and ConfJ\Off).
The reason for this is that I would like to do a reach-ability check for a toolpath before starting the actual motion. This requires iterating through several thousand robtargets, using CalcJointT to raise an error if the target is unreachable.
I guess it is possible to iterate through all of the potential configurations until CalcJointT doesn't return an error, but since this requires several hundred iterations for each target (of which there are thousands in a single toolpath), it's not realistic to compute this every time we run the program due to time constraints.
!*********************************************************************************************************************
I'm wondering if anyone has an idea for how to use CalcJointT, but with an input RobTarget that doesn't have a solved axis-config? (During the program execution we switch off the axis config using ConfL\Off and ConfJ\Off).
The reason for this is that I would like to do a reach-ability check for a toolpath before starting the actual motion. This requires iterating through several thousand robtargets, using CalcJointT to raise an error if the target is unreachable.
I guess it is possible to iterate through all of the potential configurations until CalcJointT doesn't return an error, but since this requires several hundred iterations for each target (of which there are thousands in a single toolpath), it's not realistic to compute this every time we run the program due to time constraints.
!*********************************************************************************************************************
! check whether a specific target is able to be reached - returns error and updates counter if unreachable
!*********************************************************************************************************************
!*********************************************************************************************************************
PROC check_target_reachable( robtarget target, PERS tooldata used_tool, PERS wobjdata wobj)
check_j_target := CalcJointT(target, used_tool\WObj:= wobj);
ERROR
incr nr_of_unreachable_targets;
TEST ERRNO
CASE ERR_ROBLIMIT:
TPWrite "Target within envelope, but one or more axis is out of range";
iterate_config target;
CASE ERR_OUTSIDE_REACH:
TPWrite "The position is outside the robot's working range.";
CASE ERR_WOBJ_MOVING:
TPWrite "The mechanical unit isn't standing still at execution";
DEFAULT:
TPWrite "Unreachable Target - unspecified reason";
ENDTEST
TPWrite "Error Target {" + NumToStr(nr_of_unreachable_targets,0) + "} : " + NumToStr(target.trans.x,2) +", " + NumToStr(target.trans.y,2) + ", "+ NumToStr(target.trans.z,2);
TRYNEXT;
ENDPROC
0
Comments
-
It might work if you set all 0's for the configs.Lee Justice0
Categories
- All Categories
- 5.5K RobotStudio
- 394 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 309 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 785 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 4 Job listings