AXY:Blending

From SoftMC-Wiki
Revision as of 08:50, 13 April 2011 by Anonymous (talk) (Blending Behavior:)
Jump to: navigation, search

Blending Behavior:

1.) BlendingFactor (<robot>.BF) - either modal (global) or nodal (local) defines the blending between the motion it is given for and the next upcoming motion. Ranges from 0 (immediate = maximum blending) to 100 (no blending).

2.) BlendingFactorPrevious (<robot>.BFPrev) - either modal (global) or nodal (local) overwrites - if in the range of 0 to 100. The <robot>.BF of the previous motion meant to be applied between the previous motion and the current one. The meaning of the range 0 to 100 is the same as with <robot>.BF. If no such overwriting is desired <robot>.BFP must be set to -1 (actually: any negative number). The default value shall be -1, so that the default behaviour is the same as with current 4.2 firmwares.
example:


moves robot loc1 BF=0 <br>
moves robot loc2 BFPrev=90 BF=90 <br>
moves robot loc3 BFPrev=50 
means:
loc1 -> BF90 -> loc2 -> BF50 -> loc3

3.) The same shall apply to <robot>.CP and <robot>.CPPrev. if given and > 0 <robot>.CPPrev shall overwrite the previous <robot>.CP. If -1 (actually: any negative number) it shall be ignored. The default shall be -1. If the overwrite comes too late the previous motion shall continue with its own <robot>.CP. This means that it might still apply its own low CP if it was to be overwritten by a large CPPrev. These two factors basically allow to give separate blending coefficients for the two end points of a motion, together with a very explicit and easy rule how they're applied. one can:

a) always determine blending in advance (i.e. before or at starting the motion)
b) always determine blending retrospectively (i.e. after starting the motion)
c) mix a) and b) randomly

without any implicit magic at the price of only little changes to existing code.

Summary:

  1. global BF (<robot>.bf=<NUM>) is the default BF
  2. local BF (move <robot> BF=<NUM>) overwrites that default per motion
  3. this results in an effective BF per motion
  4. global BFPrev initialized by the system to -1
  5. local BFPrev overwrites global BFPrev per motion
  6. this results in an effective BFPrev per motion
  7. if the effective BFP is >= 0 (not negative), it overwrites the effective BF for the previous motion
  8. the same shall apply to CP and CPPrev

with some side effects:

NOTE-Info.svgNOTE
Globally setting BFP to >= 0 is probably a bad idea, because it will overwrite any and all elaborate local BF, but that's the spec.


See Also: Issue 2847Bugzilla icon.png