Robot Move Time by Joint Speeds?

Robot Move Time by Joint Speeds?

SchreyerNicholasB
Observer Observer
111 Views
4 Replies
Message 1 of 5

Robot Move Time by Joint Speeds?

SchreyerNicholasB
Observer
Observer

Does FlexSim offer a method to control move time of a motion path simply by the robot manufacturers specified joint speeds? 

0 Likes
Accepted solutions (1)
112 Views
4 Replies
Replies (4)
Message 2 of 5

moehlmann_fe
Explorer
Explorer

Sort of. You can calculate the move time based on the difference in rotation for each joint and use the maximum value as the move time for that path row. The move time for the first row can be computed on the fly based on the robots current position. In the attached example I do that in the cycle time code field. The other positions and speeds are fixed, so the move time for row 2 and beyond are calculated on reset.

I use the values from the "Joint Speeds" table but do not take acceleration into account. Since the paths are set to use relative joint speeds (negative move time), the relative speed values in the "Robot Geometry" GUI should be set according to the values in the Joint Speeds table.

Also see the documentation for more information about the move time settings for motion paths.

https://docs.flexsim.com/en/24.1/Reference/3DObjects/TaskExecuters/RobotMotionPaths/RobotMotionPaths...

0 Likes
Message 3 of 5

SchreyerNicholasB
Observer
Observer

I am using FlexSim 2024.0.2 so I am unable to open your example. Are you setting your calculated MoveTime as a negative value? When you calculate for the first row, are you returning the value from your calculation as the MoveTime for the first row and returning 0 as the value for "Path Cycle Time"?

0 Likes
Message 4 of 5

moehlmann_fe
Explorer
Explorer

Correct , I use negative move times and return 0 for the overall cycle time. I've attached a 24.0 copy of the model so you can inspect the code.

 

0 Likes
Message 5 of 5

SchreyerNicholasB
Observer
Observer
Accepted solution

This code does work as intended, but I did slightly modify it. I linked it to a parameter which the user inputs a percentage of the manufacturers specified joint speeds to run the robot at. Then instead of setting moveTime for that row to  -maxTime as you had, I set it as (100/percent run speed)*maxTime. You will notice that the value being applied is no longer negative. This is because adding a negative value in the moveTime will only affect the simulation appearance and not the overall moveTime for that position. From what I can tell, a negative move time will move all 6 joints at their individual max speed, meaning some joints will finish their motions before others. This makes for some weird robot motions that are "choppy" and if the moveTime value is positive, all the joints will complete their motions at the same time creating a smooth motion.