AutodeskRoboticsLab / Mimic

An open-source Maya plugin for controlling Industrial Robots. Written in Python 3.
https://www.mimicformaya.com/
172 stars 39 forks source link

Program passes Mimic checks and still fails when run on robot #19

Open rider-rebooted opened 3 years ago

rider-rebooted commented 3 years ago

This maybe something we’re doing wrong on our end.

When we try and push the high speed moves and tweak the acceleration curves to eliminate jerk and velocity errors, the program passes Mimic analysis but still fails when run on the robot.

Unfortunately the pendent doesn’t report whether this is velocity or jerk so we have to return to Maya and tweak blindly.

aatb-ch commented 3 years ago

What robot brand? What I have found is that the timestep used changes the analysis granularity so it might pass or fail analysis depending on how fine/rough you are stepping through the path. If you are very close to limits it becomes unpredictable as any variability from the ideal model will change your kinematics from being below/over the edge.. With our Universal Robots on high-speed moves, we can trigger e-stops just because the base is not perfectly bolted to the floor and some moves will shake and resonate while passing analysis without issue. Best to stay with some margin off limits.

evanatherton commented 3 years ago

@rider-rebooted the acceleration and jerk limits we check are nominal because they actually depend on the payload and center of mass of your tool. So the controller calculates those limits dynamically. You can pull the calculated limits off the controller for more accurate checks.

Assuming you have a KUKA, you can look at the log and it will show you exactly what limit was violated and at what timestamp in the program.

evanatherton commented 3 years ago

Assuming you're using entertainTech or ready2_animate:

In file mdrEmily.ini: set the variable DERIVATES to MAXIMA to log the max speed/accel/jerk for each axis or ALL to log speed/accel/jerk for each command in the table (every 12 ms step). Any change to the mdrEmily.ini requires a “cold boot/reload files" The log can be found in C:\KRC\ROBOTER\LOG. Multiply the timestamp by your fps rate to determine the keyframe location of your issue.

rider-rebooted commented 3 years ago

Thanks for your replies @aatb-ch and @evanatherton !

In answer to your question @aatb-ch, we are using a Kuka robot and always analyse at 12ms increments.

@evanatherton Thank you for explaining how to generate and view these logs.

Am I correct in thinking the controller builds a ‘profile’ of the current payload which gets more comprehensive with experience?

You say that that we can pull the calculated limits off the controller. Is this a case of dialling values for each axis into Mimic manually?

I wonder if it would be possible to run a ‘calibration’ movement sequence that would quickly gather enough info to calculate limits then (with some scripting) read and import these into Mimic automatically to account for payload changes and give us a custom set of limits for programming.