Difference between revisions of "Motion Blending/zh-hans"
(Created page with "{{Languages}} ==介绍== 混合是两个或多个运动的组合在一起。 在混合运动期间通常不会在中间点停止。 有三种混合类型: # '''CP''' (Conti...") |
|||
Line 74: | Line 74: | ||
* [[MC-Basic:group.BLENDINGFACTOR|'''BlendingFactor (<robot>.BF)''']] - 模态(全局)或节点(局部)定义运动之间的混合。 '''''这是给下一个运动''''' 范围从0(即时= 最大混合值)到100(无混合)。<br> | * [[MC-Basic:group.BLENDINGFACTOR|'''BlendingFactor (<robot>.BF)''']] - 模态(全局)或节点(局部)定义运动之间的混合。 '''''这是给下一个运动''''' 范围从0(即时= 最大混合值)到100(无混合)。<br> | ||
− | * [[MC-Basic:group.BLENDINGFACTORPREVIOUS|'''BlendingFactorPrevious (<robot>.BFPrev)''']] - | + | * [[MC-Basic:group.BLENDINGFACTORPREVIOUS|'''BlendingFactorPrevious (<robot>.BFPrev)''']] - 模态(全局)或节点(局部)覆盖(如果在0-100范围内)前一运动的<robot> .BF。'''''在之前的运动和现在的运动之间是适用的'''''。范围0到100的含义与<robot> .BF相同。 如果不需要这样的覆盖<robot> .BFPrev必须设置为-1(实际上可以是任何负数)。 |
* The same shall apply to [[MC-Basic:group.CP|'''<robot>.CP''']] and [[MC-Basic:group.CPPREV|'''<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: | * The same shall apply to [[MC-Basic:group.CP|'''<robot>.CP''']] and [[MC-Basic:group.CPPREV|'''<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: | ||
+ | |||
+ | 这同样适用于[[MC-Basic:group.CP|'''<robot>.CP''']]和[[MC-Basic:group.CPPREV|'''<robot>.CPPrev''']]。如果给定且> 0 <robot> .CPPrev将覆盖之前的<robot> .CP。如果是-1(实际上:任何负数),它将被忽略。默认值为-1。如果覆盖太晚,以前的动作将继续使用自己的<robot> .CP。 | ||
::a) always determine blending in advance (i.e. before or at starting the motion) | ::a) always determine blending in advance (i.e. before or at starting the motion) |
Revision as of 03:33, 8 May 2017
语言: | [[::Motion Blending|English]] • [[::Motion Blending/zh-hans|中文(简体)]] |
---|
介绍
混合是两个或多个运动的组合在一起。 在混合运动期间通常不会在中间点停止。
有三种混合类型:
- CP (Continous Path) 混合.
两个运动通过一个共同的运动曲线引导成为一个运动。 - SP (SuperPosition ) 混合.
两个运动组合成一个,每个运动都由自己的运动曲线引导. - AI (Advance Interpolation) 混合.
许多运动通过一个运动曲线引导成为一个运动。
由BlendingMethod property.属性选择。
混合属性
在不同的混合方法中使用不同的混合属性:
Properties | CP | SP | AI |
BlendingMethod | 1 | 2 | 3 |
CP | ✓ | - | - |
CPPrev | ✓ | - | - |
BlendingFactor | - | 1..100 | - |
BFPrev | - | 1..100 | - |
BlendProtected | - | ✓ | - |
BlendingStartCondition | ✓ | ✓ | - |
DoubleMode | ✓ | ✓ | - |
简单混合
前两种混合方法(Continuous Path (CP) and Super Position (SP))的特征在于,在混合中两个运动是活动的并且精确的组合成一个运动。在第一种情况(CP)中使用曲线跟随进行组合,在第二种情况(SP)中是简单的添加了两个运动。这两种混合方法的触发是以指定从第一运动的目标位置的距离。在CP中,这是由cp因子定义的,它代表与目标点的线性距离(但是这个因子与第二运动的CP相结合)。在SP的情况下,它是起点(混合因子 - BF)的简单距离(以百分比给出)。 在这两种情况下,当前运动的参数(CP或BF)影响下一个运动的混合点。 当其中一个运动没有明确的混合参数时,将使用默认值(CP或BF)。 但默认值也可以隐式关闭混合(CP = 0或BF = 100)。
- 如果其中一个运动已关闭混合,则适用以下规则:
- 节点BF定义了混合中下一个运动的起始点。
- 如果节点BF值设置为100(或CP = 0),则不会与下一个运动混合。
Program Example
Blendingmethod =1 ' cp CP = 0 BlendingFactor = 100 MOVE L MOVE L CP = 10 Move L delay 100 Blendingmethod =2 ' sp CP = 0 BlendingFactor = 100 MOVE L MOVE L BlendingFactor = 85 Move L BlendingFactor = 100
混合传递规则
- BF / CP的节点值定义了混合中下一步运动的起始点。
- 如果节点BF值设置为100(或CP = 0),则不会与下一个运动混合。
- BlendingFactor (<robot>.BF) - 模态(全局)或节点(局部)定义运动之间的混合。 这是给下一个运动 范围从0(即时= 最大混合值)到100(无混合)。
- BlendingFactorPrevious (<robot>.BFPrev) - 模态(全局)或节点(局部)覆盖(如果在0-100范围内)前一运动的<robot> .BF。在之前的运动和现在的运动之间是适用的。范围0到100的含义与<robot> .BF相同。 如果不需要这样的覆盖<robot> .BFPrev必须设置为-1(实际上可以是任何负数)。
- 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:
这同样适用于<robot>.CP和<robot>.CPPrev。如果给定且> 0 <robot> .CPPrev将覆盖之前的<robot> .CP。如果是-1(实际上:任何负数),它将被忽略。默认值为-1。如果覆盖太晚,以前的动作将继续使用自己的<robot> .CP。
- 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
moves robot loc1 BF=0 moves robot loc2 BFPrev=90 BF=90 moves robot loc3 BFPrev=50 means: loc1 -> BF90 -> loc2 -> BF50 -> loc3
Rules Summary
- global BF (<robot>.bf=<NUM>) is the default BF
- local BF (move <robot> BF=<NUM>) overwrites that default per motion
- this results in an effective BF per motion
- global BFPrev initialized by the system to -1
- local BFPrev overwrites global BFPrev per motion
- this results in an effective BFPrev per motion
- if the effective BFP is >= 0 (not negative), it overwrites the effective BF for the previous motion
- the same will apply to CP and CPPrev
with some side effects:
NOTE | |
Globally setting BFPrev to = 0 is not recommended, because it will overwrite any and all elaborate local BF |
NOTE | |
Accuracy of the path length depends on the velocity at the moment of blending. Error in the magnitude of can be expected! |