Welcome, Guest. Please login or register.
Did you miss your activation email?
November 20, 2008, 10:10:48 PM
Home Help Search Calendar Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Robot Help and Discussion Center
| |-+  KUKA Robots (Moderators: Werner Hampel, kai_n, MartinH)
| | |-+  making sure that a motion command can be performed
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: making sure that a motion command can be performed  (Read 425 times)
RoboticsMan
Newbie
*
Offline Offline

Posts: 24


« on: August 15, 2008, 01:18:04 PM »

Hi

Is it possible to ask a KUKA robot whether it will be able to perform a specified motion? If it is unable because it cannot reach the destination (i.e. the arm is not long enough, or a joint limit is met), the answer should be 'no'.
I need this knowledge for a project involving vision guided robotics.

thanks in advance!
Logged
schampneuf
Newbie
*
Offline Offline

Posts: 14


« Reply #1 on: October 06, 2008, 05:16:59 PM »

Hi,

Use undocumented KRL function INVERSE.
Calculate your point of destination.
Then use INVERSE. If you don't have an error code it means that you can reach your point...
Logged
mookie
Full Member
***
Offline Offline

Posts: 111


« Reply #2 on: October 06, 2008, 05:23:39 PM »

can you give a quick example of syntax for this?
Logged
schampneuf
Newbie
*
Offline Offline

Posts: 14


« Reply #3 on: October 07, 2008, 03:52:23 PM »

E6POS DESTINATION ; Point we want to reach
E6AXIS DESTINATION_AXIS
INT ERRORCODE

$TARGET_STATUS=#SOURCE
ERRORCODE=0
DESTINATION_AXIS=INVERSE(DESTINATION,XHOME,ERRORCODE)

IF (ERRORCODE<>0) THEN
    ; Go to Destionation
    PTP DESTINATION
ELSE
    ; Can't reach destination
    HALT
ENDIF


can you give a quick example of syntax for this?
Logged
mookie
Full Member
***
Offline Offline

Posts: 111


« Reply #4 on: October 07, 2008, 11:23:53 PM »

im assuming that the inverse function returns a value of which axis is unable to attain the position?
Logged
asimo
Full Member
***
Offline Offline

Posts: 165


« Reply #5 on: October 08, 2008, 02:10:59 AM »

Thanks a lot for sharing this one with us schampneuf. Do you know other "undocumented" function like that?
Logged
SkyeFire
Full Member
***
Offline Offline

Posts: 140


« Reply #6 on: October 08, 2008, 02:15:09 PM »

 icon_mrgreen
We could probably create an entire sub-forum dedicated just to KUKA "Undocumented Features."  Like INV_POS(), the #TOOL switch for the LIN_REL command, and who knows how many others.

Logged
schampneuf
Newbie
*
Offline Offline

Posts: 14


« Reply #7 on: October 08, 2008, 04:39:50 PM »

Yes,

There is also FORWARD that transforms an E6AXIS to an E6POS ...

Thanks a lot for sharing this one with us schampneuf. Do you know other "undocumented" function like that?
Logged
bert
Newbie
*
Offline Offline

Posts: 16


« Reply #8 on: October 08, 2008, 11:11:02 PM »

icon_mrgreen
We could probably create an entire sub-forum dedicated just to KUKA "Undocumented Features."  Like INV_POS(), the #TOOL switch for the LIN_REL command, and who knows how many others.



Please, feel free to give us more :) I'll pay you back some day.
Logged
mookie
Full Member
***
Offline Offline

Posts: 111


« Reply #9 on: October 09, 2008, 03:21:59 PM »

hey bert, cant this function for finding if the position is acheivable be the answer for what you were looking for before?
Logged
bert
Newbie
*
Offline Offline

Posts: 16


« Reply #10 on: October 12, 2008, 09:14:53 PM »

The problem I had before was that the position may well be achievable, but potentially undesirable. However, I have another cunning use for this function.
Logged
SkyeFire
Full Member
***
Offline Offline

Posts: 140


« Reply #11 on: October 14, 2008, 09:30:18 PM »

Bert:  Found some data about the INVERSE and FORWARD commands, that reminded me of your earlier search for a way to un-init a variable.  According to my source, if the INVERSE or FORWARD command have a failure, the RETURNed value will be a blank {E6POS:} or {E6AXIS} value.  So if you *really* want to "blank" a pos or base variable, you could probably abuse one of these functions to do it.

However, it looks like these functions don't give any feedback on which axis, if any, would be violating its software limits in the event of an overreaching attempt.


Logged
RoboticsMan
Newbie
*
Offline Offline

Posts: 24


« Reply #12 on: October 15, 2008, 04:13:54 PM »

I have tested the example, and I have a small correction:

IF (ERRORCODE<>0) THEN
...

Should instead be

IF (ERRORCODE==0) THEN
...

E6POS DESTINATION ; Point we want to reach
E6AXIS DESTINATION_AXIS
INT ERRORCODE

$TARGET_STATUS=#SOURCE
ERRORCODE=0
DESTINATION_AXIS=INVERSE(DESTINATION,XHOME,ERRORCODE)

IF (ERRORCODE<>0) THEN
    ; Go to Destionation
    PTP DESTINATION
ELSE
    ; Can't reach destination
    HALT
ENDIF


can you give a quick example of syntax for this?
Logged
bert
Newbie
*
Offline Offline

Posts: 16


« Reply #13 on: October 15, 2008, 08:38:06 PM »

Bert:  Found some data about the INVERSE and FORWARD commands, that reminded me of your earlier search for a way to un-init a variable.  According to my source, if the INVERSE or FORWARD command have a failure, the RETURNed value will be a blank {E6POS:} or {E6AXIS} value.  So if you *really* want to "blank" a pos or base variable, you could probably abuse one of these functions to do it.

However, it looks like these functions don't give any feedback on which axis, if any, would be violating its software limits in the event of an overreaching attempt.

Thanks for that info. I'll have a bit of a play in the morning.
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!