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

Sync speed vs default speed

#1
I have setup a program for a Universal Robot with a Linear rail.  In my simulation program the robot speed is manipulated to make it start and stop at the same time as the rail.  When I send it through the post processor the robot runs at default post processor speed unless I use a set speed command then it runs that speed.  How do I tell the post processor to use the synchronized speed calculated by the simulation program?
#2
I have found that if I set the speed under my UR10 parameters without sending a set speed command it has no affect on the robot speed either. Am I missing something?
#3
Setting the speed in RoboDK allows you to specify joint speed and linear speed:
https://robodk.com/doc/en/Robot-Programs.html#InsSpeed

Joint speed & acceleration is used for joint movements and linear speed & acceleration is used for linear movements.
#4
(07-10-2019, 01:39 PM)Albert Wrote: Setting the speed in RoboDK allows you to specify joint speed and linear speed:
https://robodk.com/doc/en/Robot-Programs.html#InsSpeed

Joint speed & acceleration is used for joint movements and linear speed & acceleration is used for linear movements.
I am not 100% sure you understand what I am asking.  I realize how to set the speed.  Manually setting the speed of the robot can not change the speed of the rail to match.  I am letting the rail speed determine the robot speed since it is the slowest part of the system.  The software seems to calculate the speed needed to run the robot to match the start and stop time of the rail.  I just need to know how to get the software to send this speed to the real robot.  In simulation without setting the robot speed both robot and rail start and stop at the same time.  When I run it on the real robot that does not happen.

The best solution to what I am after is being able to send the calculated synchronized speed of both the robot and the rail to the robot.  I can then send the speed of the rail upstream to PLC to control it.  I just don't know how to access those variables in the post processor.  Is there a list of system variables or methods somewhere?
#5
Hi Mike,
If you were to write it manually, what would your robot code look like?
I'm not that familiar with UR, but when you say that in a best solution the robot would send seep to the PLC that drives the rail, how would you do that manually? Does't a UR line of code let you do that? If so, you can modify the "set speed" instruction of your UR post processor so that it also send the rail speed to the PLC.

It's normal that the reality speed does not match the simulated one. For it to match, the speed of the mechanism defined in RDK would need to exactly match the speed of the real rail (acceleration and deceleration included).

I'm not even sure that what you are trying to achieve is possible, most robot that syncs with external axes do it by driving the external axis directly through the controller. Therefore the sync is done at the same time as the robot path is calculated.

Have a great day.
Jeremy
#6
(07-10-2019, 08:55 PM)Jeremy Wrote: Hi Mike,
If you were to write it manually, what would your robot code look like?
I'm not that familiar with UR, but when you say that in a best solution the robot would send seep to the PLC that drives the rail, how would you do that manually? Does't a UR line of code let you do that? If so, you can modify the "set speed" instruction of your UR post processor so that it also send the rail speed to the PLC.

It's normal that the reality speed does not match the simulated one. For it to match, the speed of the mechanism defined in RDK would need to exactly match the speed of the real rail (acceleration and deceleration included).

I'm not even sure that what you are trying to achieve is possible, most robot that syncs with external axes do it by driving the external axis directly through the controller. Therefore the sync is done at the same time as the robot path is calculated.

Have a great day.
Jeremy

Currently I am letting the PLC control speed by doing the calculation to determine which one will take the most time and slowing down the other until it takes the same amount of time.  The robot only controls the distance the rail has to move.  I control the robot speed by manipulating the speed slider.  It is not a perfect solution as they never do finish at exactly the same time.  Usually the rail finishes slightly before the robot.  


Your simulation seems to run this perfectly.  I just want to know how to access the variables within the simulation that command the rail and robot speed when they are synchronized.  If I can access those variables within the post processor I can send them on to the robot to solve this issue.  As it is right now it seems to be using the default robot speed in the post processor if I don't put a Set Speed command in the RoboDK program.  The Set Speed command will send it whatever speed I type in but I don't want that.  I want the calculated speed that the sync algorithm running in the background is telling the robot and rail to run.  For the current move I am testing that should be around 80 mm/s for robot and 25 mm/s for the rail.  The default speed is 300 mm/s for the robot and that is what it runs at so the robot completes the move way before the rail
#7
(07-12-2019, 11:53 AM)Mike Wescott Wrote:
(07-10-2019, 08:55 PM)Jeremy Wrote: Hi Mike,
If you were to write it manually, what would your robot code look like?
I'm not that familiar with UR, but when you say that in a best solution the robot would send seep to the PLC that drives the rail, how would you do that manually? Does't a UR line of code let you do that? If so, you can modify the "set speed" instruction of your UR post processor so that it also send the rail speed to the PLC.

It's normal that the reality speed does not match the simulated one. For it to match, the speed of the mechanism defined in RDK would need to exactly match the speed of the real rail (acceleration and deceleration included).

I'm not even sure that what you are trying to achieve is possible, most robot that syncs with external axes do it by driving the external axis directly through the controller. Therefore the sync is done at the same time as the robot path is calculated.

Have a great day.
Jeremy

Currently I am letting the PLC control speed by doing the calculation to determine which one will take the most time and slowing down the other until it takes the same amount of time.  The robot only controls the distance the rail has to move.  I control the robot speed by manipulating the speed slider.  It is not a perfect solution as they never do finish at exactly the same time.  Usually the rail finishes slightly before the robot.  


Your simulation seems to run this perfectly.  I just want to know how to access the variables within the simulation that command the rail and robot speed when they are synchronized.  If I can access those variables within the post processor I can send them on to the robot to solve this issue.  As it is right now it seems to be using the default robot speed in the post processor if I don't put a Set Speed command in the RoboDK program.  The Set Speed command will send it whatever speed I type in but I don't want that.  I want the calculated speed that the sync algorithm running in the background is telling the robot and rail to run.  For the current move I am testing that should be around 80 mm/s for robot and 25 mm/s for the rail.  The default speed is 300 mm/s for the robot and that is what it runs at so the robot completes the move way before the rail
Is there a way to access these calculated speed variables in the post processor?
#8
(07-12-2019, 11:53 AM)Mike Wescott Wrote:
(07-10-2019, 08:55 PM)Jeremy Wrote: Hi Mike,
If you were to write it manually, what would your robot code look like?
I'm not that familiar with UR, but when you say that in a best solution the robot would send seep to the PLC that drives the rail, how would you do that manually? Does't a UR line of code let you do that? If so, you can modify the "set speed" instruction of your UR post processor so that it also send the rail speed to the PLC.

It's normal that the reality speed does not match the simulated one. For it to match, the speed of the mechanism defined in RDK would need to exactly match the speed of the real rail (acceleration and deceleration included).

I'm not even sure that what you are trying to achieve is possible, most robot that syncs with external axes do it by driving the external axis directly through the controller. Therefore the sync is done at the same time as the robot path is calculated.

Have a great day.
Jeremy

Currently I am letting the PLC control speed by doing the calculation to determine which one will take the most time and slowing down the other until it takes the same amount of time.  The robot only controls the distance the rail has to move.  I control the robot speed by manipulating the speed slider.  It is not a perfect solution as they never do finish at exactly the same time.  Usually the rail finishes slightly before the robot.  


Your simulation seems to run this perfectly.  I just want to know how to access the variables within the simulation that command the rail and robot speed when they are synchronized.  If I can access those variables within the post processor I can send them on to the robot to solve this issue.  As it is right now it seems to be using the default robot speed in the post processor if I don't put a Set Speed command in the RoboDK program.  The Set Speed command will send it whatever speed I type in but I don't want that.  I want the calculated speed that the sync algorithm running in the background is telling the robot and rail to run.  For the current move I am testing that should be around 80 mm/s for robot and 25 mm/s for the rail.  The default speed is 300 mm/s for the robot and that is what it runs at so the robot completes the move way before the rail

Is there a way to access the calculated speed values from the simulation for both the rail and the robot in the post processor?
#9
Hi Mike,

It is not possible to retrieve calculated speeds when you use synchronized motion. The robot controller usually synchronizes the motion so the robot and the axis move at the same time.

Instead, if you are unable to rely on the controller for the synchronization, I recommend you to calculate these speeds in the post processor. You may need to decompose the speed as robot speed + linear rail speed making sure you don't exceed maximum speeds.

Albert
#10
(07-23-2019, 04:36 AM)Albert Wrote: Hi Mike,

It is not possible to retrieve calculated speeds when you use synchronized motion. The robot controller usually synchronizes the motion so the robot and the axis move at the same time.

Instead, if you are unable to rely on the controller for the synchronization, I recommend you to calculate these speeds in the post processor. You may need to decompose the speed as robot speed + linear rail speed making sure you don't exceed maximum speeds.

Albert
  




Users browsing this thread:
1 Guest(s)