I am using RSI for communication with KRC4. I am trying to overcome the limitations of pose corrections. So far I think I have manage to overcome the individual limits, but there is overall limit somewhere, which I can not find/reset and hence I am not able to make corrections larger than 5 mm. Can anyone help me with this issue? I have just started using KRC4 a week ago, so please forgive my ignorance if the question seems too simple to you.
Overall Correction Limit
-
new_learner -
December 11, 2013 at 11:49 AM -
Thread is marked as Resolved.
-
-
Can you post the KRL program you are using?
-
It is the example Ethernet Program provided with the KRC4, with slight modifications.
Code
Display More&ACCESS RVO1 &COMMENT DEF RSI_TEST1( ) ; ============================================= ; ; Test Program for KUKA RSI ; ; ============================================= ; Declaration of KRL variables DECL INT ret ; Return value for RSI commands DECL INT CONTID ; ContainerID DECL REAL Var; ; Variable to set public parameters ;FOLD INI ;FOLD BASISTECH INI GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI ;Make your modifications here ;ENDFOLD (USER INI) ;ENDFOLD (INI) ; Move to start position PTP {A1 0, A2 -90, A3 90, A4 0, A5 90, A6 0} ; Create RSI Context ret = RSI_CREATE("RSI_Ethernet1.rsi",CONTID,TRUE) IF (ret <> RSIOK) THEN HALT ENDIF ;Resetting limts ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "LowerLimX", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "LowerLimX", Var*100) ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "LowerLimY", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "LowerLimY", Var*100) ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "LowerLimZ", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "LowerLimZ", Var*100) ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "UpperLimX", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "UpperLimX", Var*100) ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "UpperLimY", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "UpperLimY", Var*100) ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "UpperLimZ", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "UpperLimZ", Var*100) ret = RSI_GETPUBLICPAR(CONTID, "POSCORR1", "MaxRotAngle", Var) ret = RSI_SETPUBLICPAR(CONTID, "POSCORR1", "MaxRotAngle", Var*100) ; Start RSI execution ret = RSI_ON(#RELATIVE) IF (ret <> RSIOK) THEN HALT ENDIF ; Sensor guided movement RSI_MOVECORR() ; Turn off RSI ret = RSI_OFF() IF (ret <> RSIOK) THEN HALT ENDIF PTP {A1 0, A2 -90, A3 90, A4 0, A5 90, A6 0} END
-
-
In RSIVisual, do you have a StopDistMon object? Are you using RSI or FTC? I ask b/c FTC includes a StopDistMon object automatically, attached to the State output of the POSCORR_CTL object.
-
I am using RSI, but I would look into the StopDistMon object.
-
Were you able to fix this problem? If so, how?
I have tried modifying the limits that exist in the *.rsi.xml and *.rsi files, but still get "AXISCORR Correction out of range: A2max".
-
I reset not only individual axis limits but also overall axis limits. But in you case it seems to be the problem with individual axis limits. How are you modifying limits?
-
Yes I am wondering the same thing here. No matter what I set the limits to(in the poscorr object), I cannot correct position by more than 5mm. Its like one major problem after another with this program!
-
haven't had time to test, but now after a very careful read of the manual(and a suggestion by someone who has made it work), it is required to have a poscorrmon/axiscorrmon object if you want to exceed 6mm overall correction or +/- 5deg. The limits in the poscorr object are active for the individual correction values, but these will be overidden by the default "overall" correction limitation. I assume the default is of course active if you do not add a poscorrmon object. So you need both, though the monitor doesn't have to be hooked up, just present(and the parameters adjusted)
-
As wes_mcgee points out, I'm using both the AXISCORR and AXISCORREXT objects to adjust the axis limits, as well as the AXISCORRMON (which handles both axis and external) for the overall limits. The problem I'm seeing, it turns out, is that without the AXISCORREXT object my joint limits are fine (exactly as I define them in RSIVisual). But when I add the AXISCORREXT object, all of the joint limits revert back to +-5 degrees (axis and external) and displays the "AXISCORR Correction out of range: A*max" message, irrespective of what I've set in the AXISCORR and AXISCORRMON object parameters. At this point, I'm not really sure what else to try.
Ever see anything like this? Thoughts, suggestions, help?
-
interesting, yes we were using cartesian, but we also haven't been able to test it yet.
-
Was reading up on something else related to RSI, and stumbled across something that doesn't appear to be documented in any of the PDF manuals, which I believe relates to this subject.
If you are using RSI 3.x, the DOC folder on the install media should have a sub-folder called LEGACY. In this folder, there is an old-style .CHM "help" file titled "rsiCommands_Legacy". If you open this file and click on "About Legacy Support" in the left pane, then scroll the right pane down, there is a section about Global Correction Limitation that makes reference to an additional motion limit aside from that controlled by the AXISCORR and POSCORR objects, which must be adjusted by using RSI_SETPARAM commands. It appears that this "Global Correction Limit" applies across all active RSI objects in total, whereas AXISCORR and POSCORR will only limit the outputs of their particular RSI container.
So far, this is the only place I have found this global limit mentioned. The default values appear to limit motion to a sphere of 5mm radius and/or a total rotation of 5deg. Details of how this interacts with the other motion limits is sparse.
Since FTC is just a layer atop RSI, and I've used FTC with motion limits larger than this in the recent past, I'd guess that FTC applications overwrite the Global Correction Limit to match whatever is set in the FTC configuration menus.
-
I have met the same question,in the RSIVisual,there is a toolbox configuration. The poscorrmon option may help you!