Hello,
Thanks for providing the additional Information. Good that you use mappMotion and ST, so my example was already in the right direction, matching both.
I think we talked about the same thing , because Right_Handed or Left_Handed (Mode) is pretty much the same than Solution1, Solution2, Solution3 of a redundant System.
Same TCP-Position → Different Joint-Positions.
You can only change from one Mode to another if in this Position both Modes result in the same Positions. For the SCARA Q1=0 Q2=0 Long-Arm can be both right and left.
But typicaly you would use a Joint Interpolation G100 to move from one Mode to another, as TCP positions can be skiped in this Interpolation.
The implementation mainly depends allways on the timing when somethings should be changed. And if it is possible to implement in that way.
Using different Functions
You can only change between these Library implementations with an reconfiguration of the axes Groupd by MC_BR_Process_Config/Param.
So very restrictive and high effort. → only use if the Robot (and calculation) would be drasticaly different.
Using same Functions
You have to decide how to generate the correct outputs, in the library function.
a) Automatic Selection
If the solutions are selected automaticaly, you have to take care to not have Jumps on the Position Outputs, the change of the selction can only take place in situations were are intersections between solutions.
(Instead of the ToolTip change in the First example you would have a computation logic to decide which Calculation is executed or which solution is used. )
b) Manual Selection
If an manual input from the Program leads to an change in the selected solution you need to have a possible Data provider, for your selction If or Case Statement.
(See First Posting - example)
Flexible, thinks can be changed during runtime via If/case Statements in Code → only use if calculations are similar and belong to somehow same mechanic.
As your calculations are all for the same Robot, i would definitly use the same Library Function with a propper implementation of the selection.
You told that you have always the same parameters for the tool, so you can use a part of Mechanical Data to descripe your tool-Geometrie, in this way, the tool-word would be completly free for usage of mode change. Would be a restriction for future use, but for the start a valid limitation.
If you have 5 Modes its lower than the possible 9 available.
So you can choose between Variant a) and b) in your Transformation Functions.
You can even use mcTOOL_VIRTUAL_TOOL_TIP_POS0 for Automatic , and mcTOOL_VIRTUAL_TOOL_TIP_POS1..5 for Manual selection of the Calculation Mode.
