I am currently working on a project that controls a LR Mate 200iD/R-30iB using the PCDK in Labview. Positions are determined on the fly by the PC, then the User Frame/Tool Frame/TP program position are loaded and the TP program is executed. Everything seems to be work well so far except for trying to determine if the robot is at the TP program position(or done moving).
According to the PCDK documentation, the TPPostion object has a property called "isAtCurrentPosition":
Description
Returns information about whether the robot is currently at the teach pendant position.
Syntax
[blnAtCurPos = ]objTPPos.IsAtCurPosition
Parts
objTPPos as FRCTPPosition
blnAtCurPos as Boolean
Remarks
Queries to see if the position is the same as the current location of the robot for all groups defined for the teach pendant Position. TRUE means that this position is the same as the robot position; FALSE means it is not.
This property does not really seem to work right though. It returns true when the position is "close" to the program position. Using some test cases, joints can be out by as much as 4 degrees! I need to know when the robot reaches its target position so I can safely abort the program without worrying about it aborting too early(ie: during the move) like what is happening now. This way I can issue a new move position.
Does anyone know if there is a system variable that can be changed to better the precision of isAtCurrentPosition? Or maybe I'm just going about this wrong? I'm new to working with 6 axis robots, so I would not be surprised if I was just screwing something up.