Automation Studio version 4.10.6.39
Custom Mechanical system of redundant 4 axis robot, (3axis for XY movement and 4th for Z)
Internal path planning - I have custom mechanical system with multiple posible kinematic calculations. For some of my calculation methods, I intermittently get an “Internal Path error” when using relative coordinates (G91), but the same move sequence works fine when using absolute coordinates (G90). I haven’t been able to reliably reproduce it — it seems to happen only from certain positions, and only with some of my methods. Could this be related to the planner being right at a kinematic/axis limit boundary, where relative moves accumulate small rounding/decimal differences that push the calculated position slightly over the limit, while absolute moves recalculate the exact position each time and thus stay within limits?"
Dynamic motion planner - Since I have multiple kinematic calculation methods implemented, is it possible to run part of a G-code program with one method, and then force a recalculation/replan from a certain point using a different method — within the same running program (not just switching the parameter before program start)?
Feedforward for custom mechanical system - Is it possible for me to use feedforward on custom mechanical system on higher version of AS? This is more of a question for future projects.
I am not aware of a real difference between G90 and G91. If you get an Internal Error it might be nessesary to let this analyse via offical support. Becaust the root cause can typicaly not be seen by the logger message. “Internal Error” can be anything…
Does it happen also in ARsim , or only on the real robot ?
Can you share the Message via Logger File or at least screenshot ?
Did you made Traces of the monitoring elements, to see if there is a hint to your idea of different numeric values ? This monitoring elements provide you the values direct from the AxesGroup. Monitoring elements
Feedforward for custom mechanical system - Is it possible for me to use feedforward on custom mechanical system on higher version of AS? This is more of a question for future projects.
The Coustom Model is currently realy limited in its function support. Here is the offical Documentation with the overview which mechanic does support which feature.
DM is the Dynamic Model which is the basis of the FeedForward-Function.
It is not supported for Coustom Models. If you would need this feature, please get in contact with a local sales representive to discuss this requirement with the Product Management Team. Mechanisches System
Hello,
I am sending the screenshots of the errors and what I found in help. Since I am using Mapp Motion 5.21.2, I didn’t look at what issue it could be for higher versions and the closest version I found in help was 5.20.1. As far as I know, I think I didn’t use the synchronization function.
This behaviour happened when I comented line N42. It is basicly the same thing as line N40, but it doesn’t have the decimal places. If I uncoment N42, it is running fine. It is specificly this G-code, when I am on different coordinates in the Work space, it worked fine regardless if that additional line is there or not.
For a internal Error i can only Brainstorm , as the real cause is unclear. We have a additional line hinting for invalid Positions which could mean that it is position related.
Unfortunatly -1067044849 is not descriped in AS-Help. -1067243523 does only mention to contact support.
N40 → Coordinates in ACS with G101 (Joint Movement interpolation - Feedrate)
N41 → is this the switch for the Calculation Methods ?? Variable unclear
N42 → Coordinates in MCS with G100 (Joint Movement interpolation - no Feedrate)
But it will use inverse Transformation to calculate ACS Traget Positions and then execute Interpolation on ACS coordinates. This means we do not exactly know which coordinates will be targeted , we must check results of the Transformation.
N50 → Relative Movement with no distance (why do we move to the same Point here?)
In general this should not cause any Problems, but i am not sure if your InverseDerivative can handle this situation if all positions are the same , previous and next ones.
Here was an error in 6.2 where a situation with no movement caused internal wrong velocity calculation. Not sure if this is related…
Can you check what result would be given of your Inverse Transformation for “N42 Values” and then check the InverseDerivative for a result of no movement with this positions of N42?
N50 → This is used, because in that situation, N40 will move the joints to some fix positions by forward kinematics, but it would cause jump in axes if we would want to move straight from this position. So the N50 is basicly a comand to hold TCP position while reconfiguring the robot into the chosen method of kinematics. So it will just re-orient itself.
When I recalculated my Inverse kinematics, the calculations are correct and there are no singularities.
I do not think that writing to the gMechDimensions via a Variable is a good idea.
You do not have any control about the synchronicity of the Variable write and the internal calls of the transformation, which with multicore available will also maybe on different cores.
How to use global variable for my custom mechanical system function - Ask Questions / Mechatronics & Motion - B&R Community
In this previous thread i recommended to use the tool-word to pass the information to the system, becuase the system has to expect that if the tool changes the data of transformation changes, and so the call of the Transformations and Tool-Word must be internaly synchnised and they have to cosider this.
If you do only write to a variable, i do not know how the internal dataflow will consider this change.
You have to expect that a lot of calculations are done in parallel with a lot of transformation calls. They are definitly run in parallel in background for different parts of the programm, the pre calculation lookahed is already some lines ahead, maybe with different tool, while the path planer still works on lines with an older tool.
You can try to use a G172 for synchonisation of the interpreter to check if you issue is maybe a timing issue with the change of the value of MethodNumber and the calls timings of the transformation inside the system.
But i would recomment to switch the Value passing via the tool-word.
It is definitly a not supported use case to change gMechDimensions during Runtime from the CNC Program.
Would be interessting if G172 will make any difference to the situation
N41 MethodNumber = 1
N41 G172