I have an application in a BMW-factory in which people can walk into a UR10 which is moving quite fast. We have a good safety system (german regulations) around it so that we first enter the reduced mode and only if the human comes even closer, the safety triggers an emergency stop.
I just tried the reduced mode with a UR5 that was moving rather slow (~250mm/s) and the transition to reduced mode was quite abrupt. I fear that activating the reduced mode on a fast (~1m/s) UR10 often could damage the hardware.
How is this transition implemented and is there a way to make the transition smoother? Is it possible that going into reduced mode often will damage the robot?
I have recently installed a UR10 with a light fence, which triggers reduced mode from full speed. The transitions i fast but smooth - you don’t even notice it. Maybe if the paraters for reduced mode i very far from the full speed, you would get an abrupt transition. What are the values for ‘reduced’ mode?
We have to go down to 250mm/s and currently allow 1000mm/s. How is the transition implemented? Is there a way to use this feature without slowly but surely destroying the hardware?
Hi, my understanding is that reduced mode will always kick in as fast as possible, and since this is a safety feature, it makes perfect sense.
Some safety devices, for example laser area scanners, allow multiple zones. It seems that the solution you want is to create a thread that listens to a non-safety-rated I/O signal that will slow the robot gradually when triggered and, if the person keeps getting closer, then reduced mode would kick in but it would be just a safeguard…
There’s a how-to guide on the support section in the UR website that explains how to essentially reduce the GUI slider via software. Seems like the way to go.
This is probably the way I have to go, but I hoped that there would be a simpler way to achieve this behavior. I am a bit surprised that there is seemingly no official way to react to an approaching person.
The reduced mode is not safe per se as the robot still can drive as fast as configured so an also configurable deceleration would not make the robot less safe.
Is this the how-to you meant: setting-the-speed-slider-from-a-program?
I’m not sure how to implement this. I normally use a python wrapper for URScript to move the robot, but I can’t find the “set speed”-command in the API Reference. Have you already used this method?
“set speed n” command is internally used by polyscope.
I modified the example program to show how speed scaling ramp up and down can be implemented:
speed_scaling_ramp_up_down_ex.zip (2.5 KB)
Speed is controlled by separate thread independent from main program. After 10s speed ramps down gradually over 2s from 100% to 20%, and then after 10s ramps up over 2s back to 100%.
Run the program, switch to variables tab, and observe “speed” variable. It also works well in simulator.
before trying to reduce the speed slider and than move into the reduce mode note that this will not work, because the speed slider will also set the safety speed limit to this value. Example:
safety limit Norrmal = 1400mm/s
safety limit Reduced = 300mm/s
speed in program = 1000mm/s
while setting the slider to 50% yo will set the program speed down to 500mm/s but you will also set the safety speed limits to 700mm/s (normal) and 150mm/s (reduced).That means the jump will be aproximately the same when entering the reuced mode.
I think that this is still ok, as in this case it is “soft” reduced mode. Program is not using internal controller reduced mode triggered by io, but instead io triggers thread that smoothly reduces speed, and safety limits.