Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Simulation time question

Hello everybody!

I have some doubts when it comes to run the simulation and the cycle time:

1) Is the calculation of the cycle time affected if I add a "Smooth()" command? In my case, I can add a Smooth(60mm) command and nothing changes with the cycle time estimated by RoboDK (and I cannot appreciate the smooth movements in the simulation). 

In the doc it says: "RoboDK can accurately calculate the cycle time assuming the robot makes accurate point to point movements, without smoothing corners."

2) I have developed small python functions to attach/dettach/relocate the objects and move the tool. Does this affect?

3) It is going to be much the difference when I upload this program to the real robot?

I have these doubts because I am running a simple pick and place example with an UR, and the difference between the cycle time (RoboDK) and measuring the time, i.e. with the phone, is about 7 seconds. 

I need to be as accurate as possible.

PS: Attached is the .rdk file.

Thanks in advance! Kind regards :)
Hi Gumer,

You did not attach the .rdk file.

.rdk   002.004 - FA Encajado2.rdk (Size: 4.13 MB / Downloads: 559)


It should be attached now
Hi Gumer,

Hope you are well.
This is not a "bug", but there is some particularity when calculating cycle time.
First, the cycle time is calculated before the program is run. Therefore, it will be calculated with the "Rounding value" of the robot prior to the launch of the program.
You can find the "Rounding Value" by opening the "parameters" of the robot panel. If the value is -1, the rounding is deactivated.

To have the right cycle time estimation, you need to run the "Smooth" call before running the program.
You can either double click the "Smooth" command or run the program a first time to execute the "Smooth" command.
You can then run the program to see the cycle time difference.
Note that simply deleting the "Smooth" command won't bring back the "Rounding value" to -1.
You need to run a "Rounding" with the value -1 (it will appear as "Accurate").

The python scripts should not affect the time cycle.

To make sure that the cycle time matches the reality (like in the test you did) you need to make sure that the set speed and accelerations in RDK match the set speed and accelerations in the robot controller.

Dear Jeremy,

Thanks, and hope you are well too!

I see the time difference now, as you said. 

But what is freaking me is that if I measure the time with this setup, i.e: default UR configuration (250 mm/s and "Accurate") I get 41.2 seconds estimated by RoboDK, but if I measure this cycle with my smartphone I get about 48 seconds! 

Therefore, for the same simulation I get two times: the one estimated by RoboDK and the one that I measure with the phone (differences about 6-8 seconds always).

I do not know if I am making myself clear. Measuring with the phone implies that I press the play on my phone clock at the same time I press play on the simulation in RoboDK. Attached is a picture.    

Do not hesitate to contact me if anything is not clear!!!

Thanks in advance, 

PS: I have no real robot yet to check that the cycle time matches the reality.
Hi Gumer,

Now I understand.
Because of the Python script, you won't ever find the same cycle time on RDK and on your phone.
RDK mostly ignores the processing time of the python script in its cycle time as they are not part of the real robot program.

The difference is especially visible in your case because you are using loops quite a bit in your python script.

Have a great day.
Hi Jeremy!!


Last question about this. I run the simulation with "Smooth(5)" and "Smooth(50)" (big mm difference value, also tried with 10,15 and 20), and there is no simulation time difference. Is this expected? I only see the difference between "Accurate" and "Smooth(X)".

Thanks in advance
When the movement is accurate (blend radius is 0), RoboDK assumes the robot stops at each target after the movement. This means the robot has to accelerate and decelerate between consecutive targets.

When you use a blending radius (also known as smoothing, cornering, zone data, CNT, ...), we assume the robot will keep the speed constant. This is true if the speed is not very high, however, as you approach the limitations of your robot you'll see a drop in speed. This highly depends on your robot controller. RoboDK's cycle time is an estimate. More information here:

Users browsing this thread:
1 Guest(s)