Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Time simulation vs Set Speed instruction
#1
How are the values in the Set Speed instruction used by RoboDK to determine the simulation time?

The units of the Set Speed values can't be specified: they can be absolute in mm/s, deg/s, or relative as a percentage. Whatever values are entered will show up in a speed command as-is when exported to a robot program, so they should simply be entered in the units according to the command definition of the applicable robot; that's fine. In my case of a Mecademic R500, a percentage is to be entered for all linear and joint speed and acceleration commands.

To determine the (absolute) time simulation of the robot performing a certain movement though, I think RoboDK must somehow relate the Set Speed values to absolute units such as deg/s. How else can you get a time simulation shown on screen in absolute time units?

I would like to know how the speed values are interpreted and used by RoboDK to derive its time simulation.

Best regards,

Maarten
#2
RoboDK calculates time assuming you'll have constant acceleration until you reach your desired speed. Units used by default are mm for linear movements and deg for joint movements.

You'll find more related information here:
https://robodk.com/doc/en/General.html#CycleTime

When you generate a program for a robot arm it is up to the post processor to decide how to convert these units to a robot controller instruction. 

For example, for Mecademic, this formula is used when we specify the joint speed in deg/s:
Code:
   def setSpeedJoints(self, speed_degs):
       """Changes the robot joint speed (in deg/s)"""
       # Mecademic joint speed is in %, not deg/s.
       self.addline("SetJointVel(%.3f)" % min(max(speed_degs, 0.001), 100.0))  
In short, the same value you enter as deg/s will be the percentage value set as the joint speed. Therefore, cycle time will not be calculated properly by RoboDK for Mecademic robots during joint movements.
#3
Thanks Albert, that's want I wanted to know.

For use with Mecademic, perhaps RoboDK could consider incorporating the option to specify and treat the velocity and acceleration as a percentage of another specified absolute unit. In fact, since individual joints have different maximum absolute speeds (see excerpt from the Meca500 programming manual 8-3 page 26 below), it would be necessary to specify each individually to get an accurate cycle time:

SetJointVel(p): p: percentage of maximum joint velocities, ranging from 0.001% to 100%
...
It is not possible to limit the velocity of only one joint. With this command, the maximum
velocities of all joints are limited proportionally. The maximum velocity of each joint will
be reduced to a percentage p of its top velocity. The top velocity of joints 1 and 2 is 150°/s,
of joint 3 is 180°/s, of joints 4 and 5 is 300°/s, and of joint 6 is 500°/s.
  




Users browsing this thread:
1 Guest(s)