Difference between revisions of "Motion Dynamics/zh-hans"

From SoftMC-Wiki
Jump to: navigation, search
(Created page with "{{Languages}} = Introduction = This article describes the inverse dynamic model (IDM) feature used to compensate friction and dynamic effects for motion elements, otherwise le...")
 
Line 1: Line 1:
 
{{Languages}}
 
{{Languages}}
= Introduction =
+
= 介绍 =
This article describes the inverse dynamic model (IDM) feature used to compensate friction and dynamic effects for motion elements, otherwise leading to positioning errors and suboptimal settling behaviour.
+
本文介绍的逆动力学模型(IDM)用于补偿运动元件摩擦和动态效果的特征,否则导致定位错误和次优设置行为。
  
The motivation of the IDM feature is to use additional knowledge about the motion than just the position – i.e. velocity and torque – to offset the command values of the torque controller in order to make them react faster and thereby reduce the final positioning error and improve the settling behavior.
+
IDM功能的动机是使用关于运动的附加知识,而不仅仅是位置(即速度和扭矩)来抵消扭矩控制器的命令值,以使其反应更快,从而减少最终定位误差并改善稳定行为。
  
The term ''inverse dynamic model'' (IDM) means that the softMC takes a cartesian motion of a motion element and not only computes the joint position for the next Cartesian setpoint, but also the joint torque required for the motion.
+
术语 ''逆动力学模型 ''(IDM)表示softMC需要的运动元件的运动笛卡尔并且不仅计算用于下一个设定值笛卡尔关节位置,而且还用于运动所需的关节扭矩。 为了能够做到这一点,它需要动态模型 - 即运动元素的质量和惯性模型。 然后将关节速度和扭矩作为附加转矩指令数据发送到驱动器。
In order to be able to do that, it needs a dynamic model – i.e., a model of the masses and inertias – of the motion element.
 
The joint velocity and torque are then sent to the drives as additional torque command data.
 
  
== Available Models ==
+
== 可用的模型 ==
The page '''[[Dynamic Models|Dynamic Models]]''' lists all available dynamic models and also describes all necessary parameters.
+
本页面动态模型列出所有可用的'''[[Dynamic Models|Dynamic Models]]''',并描述所有必要的参数。
  
== Axis / Robot Motions ==
+
== /机器人运动 ==
To understand the difference in behavior between single axes and robot dynamics it is necessary to first understand the way these objects are implemented in the softMC firmware.
+
要了解单轴和机器人动态之间的差异,有必要首先了解这些对象在softMC固件中的实现方式。
  
After the ''reset all'' command there are only axes objects active in the softMC.
+
''reset all''命令之后,在softMC中只有轴对象有效。 这意味着位置,速度和其他驱动命令是通过这些轴对象循环计算的,无论轴是移动还是静止。此外,根据轴的动态模型循环计算附加转矩指令,对于立轴可以是重力补偿的常数值。
That means that the position, velocity and other drive commands are calculated cyclically by these axes objects, no matter if an axis is moving or if it is standing.
 
Also the additional torque command is calculated cyclically according to the dynamic models of the axes, which for a standing axis can be a constant value for gravity compensation.
 
  
Groups or robots objects instead only become active in the moment they are ''attached'' and are deactivated again on ''detach''.
+
组或机器人对象只能在它们被附加的时刻激活,并在分离时再次被停用。 一旦一组被激活时,它接管所有轴,属于它的控制。这意味着位置,速度和其他驱动命令现在由组对象计算,该对象也包括动态计算。 注意:当在终端发出组运动命令时,相应组将在运动时间段内自动附加到终端。
As soon as a group is activated, it takes over the control of all axes, which belong to it.
 
That means that the position, velocity and other drive commands are now calculated by the group object, which also includes computation of dynamics.
 
Note: When a group motion command is issued at the terminal, the corresponding group is automatically attached to the terminal for the time period of motion.
 
  
As a conclusion of this design, axes of groups with gravity compensation need special treatment.
+
该设计的结论是,具有重力补偿的组的轴需要特殊处理。
Because at drive power enable the axis object computes the torque command, the gravity compensated axis need single axis dynamics configured.
+
因为在驱动力使轴对象计算转矩指令,重力补偿轴需要配置单轴动力学。 另一方面,在组运动期间,轴所属的组需要启用组动力学。
On the other hand, during group motion, the group to which the axis belong to need group dynamics enabled.
 
  
= Single Axes Dynamics =
+
= 单轴动力学 =
Dynamic computation for a single axis is activated by assigning an [[Dynamic Models|available model]] to the property [[MC-Basic:axis.DYNAMICMODEL|axis.DynamicModel]].
+
通过将[[Dynamic Models|available model]]分配给[[MC-Basic:axis.DYNAMICMODEL|axis.DynamicModel]]属性激活单轴的动态计算。
The corresponding dynamic parameters are provided to the array [[MC-Basic:axis.DYNAMICPARAMETER|axis.DynamicParameter]].
+
相应的动态参数提供给数组[[MC-Basic:axis.DYNAMICPARAMETER|axis.DynamicParameter]]
Friction parameters are handled separately by the properties [[MC-Basic:axis.VISCOUSFRICTION|axis.ViscousFriction]] and [[MC-Basic:axis.COULOMBFRICTION|axis.CoulombFriction]].
+
摩擦参数由Friction parameters are handled separately by the properties [[MC-Basic:axis.VISCOUSFRICTION|axis.ViscousFriction]][MC-Basic:axis.COULOMBFRICTION|axis.CoulombFriction]]分别处理。
{{Note|With the property [[MC-Basic:axis.AXISTYPE|axis.AxisType]] rotary and linear axes are distinguished by the Firmware.}}
+
{{Note|使用属性轴[[MC-Basic:axis.AXISTYPE|axis.AxisType]]为旋转或线性轴由固件区分。}}
  
 
<!-- In '''[[Control:Assist|aico.assist]]''' the following defines configure single axes dynamics:
 
<!-- In '''[[Control:Assist|aico.assist]]''' the following defines configure single axes dynamics:
Line 41: Line 33:
 
  -->
 
  -->
  
= Robot Dynamics =
+
= 机器人动力学 =
To activate dynamics for a robot, a [[Dynamic Models|dynamic model]] have to be assigned to [[MC-Basic:group.DYNAMICMODEL|group.DynamicModel]].
+
要激活机器人的动力学,必须将[[Dynamic Models|dynamic model]]分配给[[MC-Basic:group.DYNAMICMODEL|group.DynamicModel]]。模型参数在数组[[MC-Basic:robot.DYNAMICPARAMETER|robot.DynamicParameter]]中设置。
The model parameters are set in the array [[MC-Basic:robot.DYNAMICPARAMETER|robot.DynamicParameter]].
 
  
Friction parameters for all the axes belonging to the robot are set in the axes friction properties [[MC-Basic:axis.VISCOUSFRICTION|axis.ViscousFriction]] and [[MC-Basic:axis.COULOMBFRICTION|axis.CoulombFriction]].
+
机器人的所有轴的摩擦参数设置在轴摩擦属性[[MCBasic:axis.VISCOUSFRICTION|axis.ViscousFriction]][[MC-Basic:axis.COULOMBFRICTION|axis.CoulombFriction]]中。为了考虑机器人动力学中的摩擦补偿,不需要为其轴选择动态模型。
To consider friction compensation in robot dynamics, it is not necessary to select a dynamic model for its axes.
 
  
A special case in robot/group dynamics is the '''axes based dynamics'''.
+
'''基于轴的动力学 '''是机器人/组动力学中的一个特例。当选择时,机器人/组根据其轴的[[Dynamic Models|dynamic models]]计算其动力学。该模式的主要目的是为非机器人组和笛卡儿机器人提供动力学。基于轴的动力学通过将<code>-1</code>分配给 [[MC-Basic:group.DYNAMICMODEL|group.DynamicModel]]来激活。
When selected, the robot/group computes its dynamics according to the [[Dynamic Models|dynamic models]] of its axes.
 
The main purpose of this mode is to enable dynamics for non robot groups and Cartesian robots.
 
Axes based dynamics is activated by assigning <code>-1</code> to [[MC-Basic:group.DYNAMICMODEL|group.DynamicModel]].
 
  
 
<!-- In '''[[Control:Assist|aico.assist]]''' the following defines configure robot dynamics:
 
<!-- In '''[[Control:Assist|aico.assist]]''' the following defines configure robot dynamics:
Line 59: Line 46:
 
* [[Control:Assist:COULOMB_FRICTION(Axis)]] -->
 
* [[Control:Assist:COULOMB_FRICTION(Axis)]] -->
  
= Payload Handling =
+
= 有效载荷处理 =
Robot/Axis payload significantly influences the motion dynamics and is considered in all [[Dynamic Models|dynamic models]].
+
机器人/轴负载显着影响运动动力学,并在所有[[Dynamic Models|dynamic models]]中考虑。
Applications should adjust the values in [[MC-Basic:axis.PAYLOADMASS|axis.PayloadMass]] and [[MC-Basic:axis.PAYLOADINERTIA|axis.PayloadInertia]] each time the payload changes.
+
每次有效载荷变化时,应用程序应调整[[MC-Basic:axis.PAYLOADMASS|axis.PayloadMass]][[MC-Basic:axis.PAYLOADINERTIA|axis.PayloadInertia]]中的值。
  
 
<!--  
 
<!--  
Line 69: Line 56:
 
  -->
 
  -->
  
= Torque Error Monitoring =
+
= 扭矩误差监测 =
 
[[File:Torque error monitoring - Torque command, feedback, error (Joint 1 of Delta robot).png|thumb|Comparison between torque command and feedback]]
 
[[File:Torque error monitoring - Torque command, feedback, error (Joint 1 of Delta robot).png|thumb|Comparison between torque command and feedback]]
  
Collision detection is a very important topic in the field of modern robotics.
+
碰撞检测是现代机器人领域的一个非常重要的课题。 Servotronix为几种运动学类型提供[[Dynamic Models|dynamic models]],可在机器人运动期间计算所需的关节扭矩。
Servotronix offers [[Dynamic Models|dynamic models]] for several kinematic types, which compute needed joint torques during robot motion.
 
  
On the other side joint drives provide actually needed torque feedback.
+
另一方面,关节驱动器提供实际需要的扭矩反馈。 这个想法是通过比较指令的[[MC-Basic:axis.TORQUEADDCOMMAND|commanded torque feedforward]]与返回的[[MC-Basic:axis.TORQUEFEEDBACK|torque feedback]]来计算[[MC-Basic:axis.TORQUEERROR|torque error]],以检测异常行为。
The idea is to compute the [[MC-Basic:axis.TORQUEERROR|torque error]] by comparing [[MC-Basic:axis.TORQUEADDCOMMAND|commanded torque feedforward]] with returned [[MC-Basic:axis.TORQUEFEEDBACK|torque feedback]] to detect abnormal behavior.
 
  
Torque error monitoring is activated axis-wise by enabling [[MC-Basic:axis.TORQUEERRORENABLE|axis.TorqueErrorEnable]] and setting the [[MC-Basic:axis.TORQUEERRORMAX|axis.TorqueErrorMax]] value.
+
通过启用[[MC-Basic:axis.TORQUEERRORENABLE | axis.TorqueErrorEnable]]并设置[[MC-Basic:axis.TORQUEERRORMAX | axis.TorqueErrorMax]]值,可以启用轴向转矩误差监控。
  
On axes with very noisy [[MC-Basic:axis.TORQUEFEEDBACK|torque feedback]] the torque error can be filtered.
+
在具有非常嘈杂扭矩反馈的轴上,可以过滤扭矩误差。 低通滤波器的参数由[[MC-Basic:axis.TORQUEFEEDBACK|torque feedback]]指定。
The parameter for the '''low-pass filter''' is specified by [[MC-Basic:axis.TORQUEERRORFILTER|axis.TorqueEerrorFilter]].
+
'''低通滤波器'''的参数由[[MC-Basic:axis.TORQUEERRORFILTER|axis.TorqueEerrorFilter]]指定。
  
The torque error exception is thrown in the instant the [[MC-Basic:axis.TORQUEERROR|torque error]] exceeds [[MC-Basic:axis.TORQUEERRORMAX|axis.TorqueErrorMax]].
+
[[MC-Basic:axis.TORQUEERROR |扭矩误差]]超过[[MC-Basic:axis.TORQUEERRORMAX | axis.TorqueErrorMax]]的瞬间会引发转矩误差异常。
The '''stopping behavior''' in this case is configured with the properties [[MC-Basic:axis.TORQUEERRORSTOPTYPE|axis.TorqueErrorStopType]] and [[MC-Basic:axis.TORQUEERRORDISABLETYPE|axis.TorqueErrorDisableType]].
+
在这种情况下,[[MC Basic:axis.TORQUEERRORSTOPTYPE | axis.TorqueErrorStopType]][[MC Basic:axis.TORQUEERRORDISABLETYPE | axis.TorqueErrorDisableType]]配置'''停止行为'''。
  
 
<!--  
 
<!--  
Line 94: Line 79:
 
  -->
 
  -->
  
= Model Parameters Identification =
+
= 模型参数识别 =
Dynamic model parameters can be obtained manually using
+
动态模型参数可以使用
 
<!-- identification methods.  
 
<!-- identification methods.  
 
* IDM Tools of aico.control provide a teach pendant user interface for the identification routine. -->
 
* IDM Tools of aico.control provide a teach pendant user interface for the identification routine. -->
the [[MC-Basic:IdentificationStart|IdentificationStart]] and [[MC-Basic:IdentificationFinish|IdentificationFinish]] routines.
+
[[MC-Basic:IdentificationStart|IdentificationStart]][[MC-Basic:IdentificationFinish|IdentificationFinish]]程序手动获取。
  
  
  
 
[[Category:Motion Dynamics]]
 
[[Category:Motion Dynamics]]

Revision as of 18:06, 29 May 2017

语言: [[::Motion Dynamics|English]]  • [[::Motion Dynamics/zh-hans|中文(简体)‎]]

介绍

本文介绍的逆动力学模型(IDM)用于补偿运动元件摩擦和动态效果的特征,否则导致定位错误和次优设置行为。

IDM功能的动机是使用关于运动的附加知识,而不仅仅是位置(即速度和扭矩)来抵消扭矩控制器的命令值,以使其反应更快,从而减少最终定位误差并改善稳定行为。

术语 逆动力学模型 (IDM)表示softMC需要的运动元件的运动笛卡尔并且不仅计算用于下一个设定值笛卡尔关节位置,而且还用于运动所需的关节扭矩。 为了能够做到这一点,它需要动态模型 - 即运动元素的质量和惯性模型。 然后将关节速度和扭矩作为附加转矩指令数据发送到驱动器。

可用的模型

本页面动态模型列出所有可用的Dynamic Models,并描述所有必要的参数。

轴/机器人运动

要了解单轴和机器人动态之间的差异,有必要首先了解这些对象在softMC固件中的实现方式。

reset all命令之后,在softMC中只有轴对象有效。 这意味着位置,速度和其他驱动命令是通过这些轴对象循环计算的,无论轴是移动还是静止。此外,根据轴的动态模型循环计算附加转矩指令,对于立轴可以是重力补偿的常数值。

组或机器人对象只能在它们被附加的时刻激活,并在分离时再次被停用。 一旦一组被激活时,它接管所有轴,属于它的控制。这意味着位置,速度和其他驱动命令现在由组对象计算,该对象也包括动态计算。 注意:当在终端发出组运动命令时,相应组将在运动时间段内自动附加到终端。

该设计的结论是,具有重力补偿的组的轴需要特殊处理。 因为在驱动力使轴对象计算转矩指令,重力补偿轴需要配置单轴动力学。 另一方面,在组运动期间,轴所属的组需要启用组动力学。

单轴动力学

通过将available model分配给axis.DynamicModel属性激活单轴的动态计算。 相应的动态参数提供给数组axis.DynamicParameter 摩擦参数由Friction parameters are handled separately by the properties axis.ViscousFriction和[MC-Basic:axis.COULOMBFRICTION|axis.CoulombFriction]]分别处理。

NOTE-Info.svgNOTE
使用属性轴axis.AxisType为旋转或线性轴由固件区分。


机器人动力学

要激活机器人的动力学,必须将dynamic model分配给group.DynamicModel。模型参数在数组robot.DynamicParameter中设置。

机器人的所有轴的摩擦参数设置在轴摩擦属性axis.ViscousFrictionaxis.CoulombFriction中。为了考虑机器人动力学中的摩擦补偿,不需要为其轴选择动态模型。

基于轴的动力学 是机器人/组动力学中的一个特例。当选择时,机器人/组根据其轴的dynamic models计算其动力学。该模式的主要目的是为非机器人组和笛卡儿机器人提供动力学。基于轴的动力学通过将-1分配给 group.DynamicModel来激活。


有效载荷处理

机器人/轴负载显着影响运动动力学,并在所有dynamic models中考虑。 每次有效载荷变化时,应用程序应调整axis.PayloadMassaxis.PayloadInertia中的值。


扭矩误差监测

Comparison between torque command and feedback

碰撞检测是现代机器人领域的一个非常重要的课题。 Servotronix为几种运动学类型提供dynamic models,可在机器人运动期间计算所需的关节扭矩。

另一方面,关节驱动器提供实际需要的扭矩反馈。 这个想法是通过比较指令的commanded torque feedforward与返回的torque feedback来计算torque error,以检测异常行为。

通过启用 axis.TorqueErrorEnable并设置 axis.TorqueErrorMax值,可以启用轴向转矩误差监控。

在具有非常嘈杂扭矩反馈的轴上,可以过滤扭矩误差。 低通滤波器的参数由torque feedback指定。 低通滤波器的参数由axis.TorqueEerrorFilter指定。

扭矩误差超过 axis.TorqueErrorMax的瞬间会引发转矩误差异常。 在这种情况下, axis.TorqueErrorStopType axis.TorqueErrorDisableType配置停止行为


模型参数识别

动态模型参数可以使用 IdentificationStartIdentificationFinish程序手动获取。