I am using a KRC 4 cabinet with version 8.3 of the software.
I need to enable collision detection on a point I am modifying with vision. In the manual It states you must use the in-line forms to enable collision detection. Is it possible to just increase the over-torque sensitivity of the robot so it will fault sooner before it causes damage in the event of a crash?
Collision detection problem
-
jamesand6 -
January 15, 2019 at 4:15 PM -
Thread is Resolved
-
-
Torque monitoring can never prevent collisions, but can be used to minimize a damage. This means the robot can react faster after collision is detected. Reaction depends on many factors, such as the speed and velocity, payload, inertia, everything robot is carrying. So to answer your question, increasing the sensitivity of the robot axes will only make the reaction quicker after impact.
-
Unfortunately the Kuka one doesn't work like the ABB Motion supervision . I have tried to use it a couple of times without much success
apparently this has changed in KSS Version 8.5 But we will wait and see
-
i want to khnow the difference between motion supervision and collision detection?
-
Is it possible to just increase the over-torque sensitivity of the robot so it will fault sooner before it causes damage in the event of a crash?
Yes.
System integrator manual.
Get it form here: Kuka Downloads (software, cad...)
Page 196.6.11.6.2 Robot program: avoiding damage in the event of collisions
Code
Display More... 1 DECL TorqLimitParam myParams ... 2 FOR i = 1 to 6 3 myParams.lower = $holding_torque[i] - 500 4 myParams.upper = $holding_torque[i] + 500 5 myParams.monitor = #off 6 myParams.max_lag = 0.1 7 SET_TORQUE_LIMITS(i, myParams) 8 ENDFOR 9 $acc.cp = my_low_acceleration 10 $vel.cp = my_low_velocity 11 LIN P7 12 LIN P8 13 LIN P9 14 FOR i = 1 to 6 15 myParams.lower = -1E10 16 myParams.upper = 1E10 17 myParams.monitor = #on 18 SET_TORQUE_LIMITS(i, myParams) 19 ENDFOR 20 $acc.cp = my_high_acceleration 21 $vel.cp = my_high_velocity 22 LIN P10 ...
So all the 6 axes are given a limit from -500 Nm to +500 Nm compared to the holding torque. You can only choose a single axis if you want.
The holding torque is dependent on the load and the position of the arms. If it is stretched out, a larger moment applied and if the arm is close to the robot base, a lower moment is required to keep it in place. So set your load correctly - the weight of the tool and the carrying load.On a KR10 robot I used +40Nm on just the 3rd axis and it worked fine. I knew what direction the additional load was coming from... So on a smaller robot the 500 Nm is a big number.
Also... you have to move slowly... the monitoring function will give an error if you move faster then the speedlimit in T1 mode... so don't move faster than that.If the robot takes 20 degrees of motion to stop from full speed then it does not matter what your torque limits are... it will cause a lot of damage.
-
Hello all, I am on a KRC4 - 8.6, KR 6 - 700
I have a quick question regarding : Torque limitation VS Collision detection VS ... ? :
First, here is my system:
- When I load a part in a station, I wan't to "push" it to make sure it is sitting on its bed (otherwise, going to a fix position will result in a +/- 0.5mm accuracy).- Sadly, the force that I can apply on the part is very low* (just a bit too much force will make the part slip inside the robot's grippers, too less will make my robot too soft for motion).
- For now, I tried to achieve this by using "SET_TORQUE_LIMITS", I did not reach yet a very satisfying result ... but I might still be able to improve my logic/calculations etc ...
- And just now, I tested another "approach" in JOG mode with the function "Collision detection" (so at least the logic here is safe), and that seems to be more efficient than what I did so far (and the fact that the robot stops as soon as pressure is reached is a +).
So, now, my question is :
I know that I can use the Collision detection in Program (cycle) but, is it possible to use it like a Trigger (When collision is detected, then stop in position, open gripper and retract for example)? Or is it just meant to stop the robot and wait for operator to restart?
Else, is the SET_TORQUE_LIMITS the right way to go? Or is there another way that you would use for my case (except mechanical solution)? If I really want to stop when the torque is reached, do I need to combine SET_TORQUE_LIMITS + some code in SPS ?
* For info, in "collision detection" my peak values in the jogging dataset are in the range of 40 - 60Nm (so ~10 times less than max torque)...
-
I have seen in some threads but I don't know how its done:
External Content www.youtube.comContent embedded from external sources will not be displayed without your consent.Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy. -
there are two different things involved:
torque monitoring (makes robot fault if torque threshold reached)
torque limiting (makes robot weaker, even to a point that it cannot stand on its own)
both can be used independently....
COLLISION DETECTION: torque limiting is not active, torque monitoring is active.
robot tries to get to programmed position. if obstacle is encountered, robot uses more and more torque and tries to push the obstacle out of the way. if torque increase reaches collision threshold, fault is generated and program stops. note that program execution STOPS... so robot is no longer OPERATIONAL, manual recovery or intervention is needed.
SOFT ROBOT: torque limiting is active, torque monitoring may be active (but does not have to be).
robot tries to get to programmed position. if obstacle is encountered, robot uses more and more torque and tries to push the obstacle out of the way. if torque increase reaches soft axis torque limit, there is no more torque increase ("stall"). this means that robot cannot move the obstacle out of way and as long as this does not trigger COLLISION DETECTION threshold, robot is still OPERATIONAL and can respond to program. so if one creates program to detect this situation, it is possible to respond and move away for example.
this is covered in the system integrator manuals. settings and example code are included as well.
related variables commands have changed from one KSS to another so make sure to use correct manual.
also note that this is crude since it is on a non-collaborative robot. goal is to prevent DAMAGE and costly downtime/repair. if you need robot or application to "feel" something, use collaborative robot or add appropriate sensors to EOAT.
-
Damn, Panic, I've been attempting collision detection on KSS 8.5 all morning and must be missing one or two steps. I remember there being something during programming 2, but for the life of me I can't remember. I remember simply being able to run my program and assign the axis values to a collision data set, but for the life of me cannot figure the step I'm missing or doing incorrectly from the SI manual.
-
me neither... i mean how could anyone know what you have forgotten or tried.... if you keep the details to yourself, you may work on it alone i guess.
-
you may work on it alone i guess.
That was the plan! But alas I had no luck. As I said, I was testing on a KR 3 R540 with KSS 8.5..
I made a super simple module, start pos with three SPTP movements, on two of the three I set COLLDETECT to [1] and ran the program with programmed velocity in both T2 and AUT logged in as Expert with Collision detection - Data set configuration window open, yet no peak value left 0.
Bonus question: is it possible to use a collision as an interrupt?
-
collision detection in KSS8.5 is different from one used before. so check manual for KSS8.5.
-
Yep. Goes without saying, like I said in missing a step and I've done the examples.
Tried savemax also after setting collmon_max for all 6 to 0.. l
-
thank you for sharing progress but... not sure why you even post here if you are going to keep things secret and not engage into discussion about the issue.
still no clue what examples you are referring to or what steps you are following or if you met preconditions but manual is very detailed so keep doing whatever is that you are doing.
-
just sharing my experience thus far.. didn't realise it was such an inconvenience in a related thread topic.
I'll be back in front of the bot tomorrow and will figure it out and follow up here.
-
you started conversation by telling there is an issue with your robot and specifically mentioned my name. when i responded you backed out and did not want to discuss it, leaving thread in limbo. posting without purpose and taking time of kind people willing to offer helping hand is not really what the forum is about. i would say it is no different from spam, but that is just my opinion. i love it when some stranger from the other side of the world decides to alert me on a weekend and does not try to sell me things. so much better than telemarketers.
-
you started conversation by telling there is an issue with your robot and specifically mentioned my name. when i responded you backed out and did not want to discuss it, leaving thread in limbo. posting without purpose and taking time of kind people willing to offer helping hand is not really what the forum is about. i would say it is no different from spam, but that is just my opinion. i love it when some stranger from the other side of the world decides to alert me on a weekend and does not try to sell me things. so much better than telemarketers.
He is a 5 minute no free work robot expert, and he must not tell all his secrets 😉.
just sharing my experience thus far.. didn't realise it was such an inconvenience in a related thread topic.
I'll be back in front of the bot tomorrow and will figure it out and follow up here.
It's funny how things turn fast. When i was sharing my experience and trying to be constructive, not even asking for any help, i was being mocked for my work... which could be one of the solutions also for your bonus question 🤣🤣🤣🤣... But as you say it somewhere else, hey it is just a simple interrupt with torque and most people can do it etc...😁😁👍, so why it is then even this a question for you 😉, if it can be used or not...
-
That was the plan! But alas I had no luck. As I said, I was testing on a KR 3 R540 with KSS 8.5..
I made a super simple module, start pos with three SPTP movements, on two of the three I set COLLDETECT to [1] and ran the program with programmed velocity in both T2 and AUT logged in as Expert with Collision detection - Data set configuration window open, yet no peak value left 0.
Bonus question: is it possible to use a collision as an interrupt?
You have system variables for collision detection available and i see no reason why they couldn't be used with interrupts...
-
I knew it would be something relatively simple I was missing. The peaks were not changing as they were all set to 0 - clearly mentioned in the documentation, but since jogging collision detection was working, I assumed program colldet would be working too. Changed the peak values to 500 to register new peaks, however I still didn't get savemax to work.