求解器参数

注意: 本主题仅适用于以下 Robotics OLP 产品: 

  • Visual Components Premium OLP
  • Visual Components Professional OLP
  • Visual Components Robotics OLP

加工程序和搜索路径求解器

该求解器不仅可在不太改变 TCP 路径的情况下尝试为加工程序和搜索路径找到有效解,还可以更改路径上的外部轴值、机器人配置和 TCP 方向。

为了更好地理解某些规划器参数,有必要了解路径规划算法的工作原理。首先,算法会检查原始路径,如果路径合适,可能根本不需要进行路径规划。以包含 10 个目标点的路径为例,首先,算法会尝试为第一个点随机找到一定数量 (StartCandidatesCount) 的有效位置,即候选位置。

接下来,算法会对下一个点执行同样的操作,尝试为其找到一定数量 (MidCandidatesCount) 的有效候选位置。仅当与前一个点的候选位置建立有效的运动/连接,此候选位置才真正有效。算法会依次处理路径上的每个点,直到为所有点找到有效的候选位置,或者直到路径规划时间用尽。为所有点都找到了有效的候选位置,即视为找到了路径解。从第一个点到最后一个点可能有多种路径选择,算法会根据成本函数参数选择最优路径。

加工程序路径规划的参数位于机器人属性 PathPlanSettings 中,而搜索路径规划的参数位于 SearchPlanSettings 中。这些参数分为常规运动学碰撞采样成本优化等类别。 

参数颜色

在 GUI 中显示

高级 GUI

常规

名称

默认值

单位

描述

ExtSolutionTime

40.0

通过特定工具或搜索候选位置求解路径所用的最长时间

SolveExts

[-1, 0, 1, 2...]

 

为每个路径点求解的外部轴数量。-1 表示

机器人的第 7 个关节

SolveConstExts

[]

 

求解的外部轴数量,必须在整个路径上保持恒定值

PointKindsToRemove

["Via","Approach",

"Departure"]

 

从路径中移除的点类型

OverrideValidExts

false

 

即使路径有效,也要找到新解

ToolSolverEnabled

false

 

首先尝试仅使用该工具求解语句

InspectStatuses

false

 

检查之前和之后搜索和焊接路径的状态,以确定是否有必要求解此路径

ExtBigInterpolationStep

100.0

毫米、度

首先用来验证路径的较大插值步长

ExtSmallInterpolationStep

10.0

毫米、度

在路径通过 ExtBigInterpolationStep 验证后所使用的较小插值步长

SearchModes

["3D.[2in-

1out]","3D.[2in-

1in]","3D.[2out-

1out]","3D.[2out

- 1in]","2D.[in]","2

D.[out]"]

 

如果搜索为自动生成,并且具有触摸候选位置,则尝试按顺序使用这些搜索模式进行求解

KeepTouchCount

false

 

对搜索进行求解时不更改触摸次数

运动学

GUI 中提供“MaxRobotArmReach”的参数、最大 TCP 速度和最小门架速度。

名称

默认值

单位

描述

JointLimits

[null]

毫米、度

关节范围列表。尝试按顺序使用各个关节范围列表来求解路径。

NearestJointLimitsFirst

false

 

尝试先使用与原始语句最接近的 JointLimits 中的第一个

关节范围列表

MinStretch

10.0

%

关节 5 在其操作范围内可以使用的最小距离

MaxStretch

90.0

%

关节 5 在其操作范围内可以使用的最大

距离

WristSingularityTolerance

1.0

路径中机器人关节 5 的值不能小于此值

PolarSingularityTolerance

100.0

毫米

机器人手腕(关节 5)与机器人关节 1 轴线的

最小距离

TurnTolerance

0.0

关节 4 和 6 与转弯限制(180 + n * 360)之间至少应保持这个距离

JointLimitPadding

[0.0, 0.0, 0.0…]

毫米、度

关节值与最小值和最大值之间必须至少保持

这些距离

MaxExtTravelRatio

10.0

 

外部轴相较 TCP 运动的最大运动长度,

D_ext / D_tcp ≤ MaxExtTravelRatio

ExtTravelMaxMore

1000.0

毫米、度

限制在两个路径点之间外部轴可以比 TCP 多运动的距离,

D_ext - D_tcp ≤ ExtTravelMaxMore

ExtTravelMaxLess

3000.0

毫米、度

限制外部轴可以比 TCP 少运动的距离(如果 TCP 在两个路径点之间运动距离较长),

D_tcp - D_ext ≤ ExtTravelMaxLess

PositionOffsetMaxChange

[180.0,100.0,10

0.0,10.0]

毫米、度

限制相邻点之间位置偏移的变化 [WireRoll, WireAngle, RakeAngle, StickOut]

OptimalRobotJointRanges

[]

 

首先尝试在这些范围内求解,例如,[[- 1e12,1e12]、[-50.0,30.0]] 可将关节 2 保持在 -50 到 30 的范围内

UseTrackKinematics

true

 

如果为 true,线性门架轴会尝试遵循该路径,从而减少机器人关节的移动

TrackKinMinVia

200.0

 

使用轨迹运动学进行过孔运动的最小 TCP 运动距离

TrackKinMinProcess

0.0

 

使用轨迹运动学进行非过孔运动的最小 TCP 运动距离

碰撞

名称

默认值

单位

描述

ExtDetectorsEnabled

true

 

碰撞检测已启用

ExtDetectors

[]

 

已弃用。要使用的碰撞检测器名称列表。检测器可在机器人设置中加以定义。

ViaCollisionTolerance

0.0

 

过孔点的碰撞容差

SearchCollisionTolerances

[]

 

搜索路径的碰撞容差。例如,[20.0,10.0] 表示首次触摸前容差为 20 毫米,第二次触摸前容差为 10 毫米,

之后不允许任何容差

采样

GUI 中提供了简化的参数,旨在提高采样的完整性、随机性和速度。

名称

默认值

单位

描述

PositionOffsetRanges

[null,[50.0,10.0,5.0,0

.0,40.0],[90.0,20.0,1

5.0,0.0,40.0],[180.0,

30.0,40.0,0,40.0]]

毫米、度

位置偏移范围列表。每个列表都包含 WireRoll、WireAngle、RakeAngle、StickOut 和 FlareAngle 的范围。如果未找到有效的候选项,则使用下一个

偏移范围。

StartEndOffsetLogic

[0.0,0.0,0.0]

 

如果起点/终点的随机喷焊角度超过列表中的第一个值,则该点会沿着焊缝移动,移动距离由列表中的第二个数值(以毫米为单位)来确定,还会添加伸出角度,这个角度由列表中的第三个数值(以度为单位)来确定

PositionOffsetProbs

[0.4, 0.3]

 

第一个 (0.4):使用前一个点解的位置偏移的概率,第二个 (0.3):

使用零位置偏移的概率,其余 (0.3):使用随机位置偏移的概率

ToolTryOrder

[]

 

尝试使用不同工具求解的顺序

ToolParameters

{}

 

工具特定的位置偏移范围列表,例如

{0:{"PositionOffsetRanges":[[50.0,50.0,50.0,0.0],[90.0,90.

0,90.0,0.0],[180.0,180.0,180.0,0.0]]}}

RobotConfigOptions

[]

 

列出可能的机器人配置(0 到 7)。如果为空,则表示配置

没有发生变化。

RobotConfigOptimizeTime

3.0

在实际求解之前,找到最佳机器人配置所花费的时间

RejectTimePerPoint

0.0

如果大于零,则首先尝试在该时间内为语句的每个点找到有效位置。如果无法为每个点找到有效位置,

则会得出结论,即无法求解。

ConnectToNearest

true

 

尝试将新的候选位置连接到前一个点的最近候选位置

TryNearOriginal

false

 

如果为 true,则尝试在原始值附近找到有效解。与原始值的可接受距离最初为 ExtSmallMotionLimits,但该距离呈指数

增长

StartCandidatesCount

20

 

在求解开始阶段为第一个路径点找到的有效候选位置的最大数量

MidCandidatesCount

20

 

在移动到下一个点之前,为路径上某个点找到的有效候选位置的最大数量

TryFindNextPointsTime

15.0

每段运动长度用于查找路径上某点的有效外部轴值的最长时间

ProbTryPrevPointSolution

1.0

 

尝试使用前一个点的有效解值而不是随机候选值的概率

MaxConnectionTries

2

 

将新的候选位置与前一个点连接以确保两点之间的运动也有效的

最大尝试次数

MaxConnectionsFound

1

 

从当前点的解到前一个点的解之间所找到的最大连接数量

成本

目前,通过成本寻找路径效果不佳。我们希望提升规划器的速度,因此通常没有太多路径可供选择。

名称

默认值

单位

描述

RobotJointCosts

[5.0,3.0,3.0,0.0

,0.0...]

 

机器人自身轴运动的成本系数

ExtJointCosts

[1.0, 1.0...]

 

外部轴运动的成本系数

ExtSmallMotionLimits

[20.0, 20.0...]

毫米、度

在外部轴运动的情况下用于成本计算的轴运动最小值

SmallStretchLimit

30.0

%

短距离拉伸的额外成本阈值

BigStretchLimit

75.0

%

长距离拉伸的额外成本阈值

SmallStretchCost

200.0

 

拉伸距离小于 SmallStretchLimit 时的额外成本系数

BigStretchCost

200.0

 

拉伸距离大于 BigStretchLimit 时的额外成本系数

PositionOffsetCosts

[10.0,40.0,40.0

,200.0]

 

使用位置偏移 WireRoll、WireAngle、RakeAngle 和 StickOut 的成本系数

优化

名称

默认值

单位

描述

PositionOffsetSmoothTolerances

[2.0, 1.0, 1.0, 0.2]

 

为继续保持此平滑过程,位置偏移 [WireRoll, WireAngle, RakeAngle, StickOut] 必须改变的程度。改变得越小越好,但会花费

更多时间。

PositionOffsetToZeroSteps

[0.0, 10.0, 10.0, 1.0]

 

如果大于零,则这是将位置偏移 [WireRoll, WireAngle, RakeAngle, StickOut] 设置为接近零的初始步长。实际步长至少是此步长的

四分之一

ExtSmoothTolerance

10.0

 

为继续保持此平滑过程,外部轴值必须改变的程度

ExtSmoothMaxTime

20.0

 

平滑求解路径所用的

最长时间

过孔路径求解器

过孔路径求解器可在加工程序、搜索、过孔和 PTP 等语句之间寻找路径。值得注意的是,目前尚未为线性运动语句定义转弯和机器人配置,因此暂不支持该语句。

过孔路径规划器会在起始位置和目标位置附近寻找随机有效状态,当这些新状态连接到附近的其他状态时,就会形成两个树结构:一个靠近起始位置,一个靠近目标位置。如果能找到两个树结构之间的连接,就可以形成初步的过孔路径解。要想优化此解,可跳过路径上不必要的状态,或者对运动进行平滑处理。

过孔路径规划器的参数可在机器人属性 ViaPlannerSettings 中定义。如需详细了解这些参数,请参阅常规运动学碰撞采样过孔路径等章节。可以利用机器人属性 SafeStates 定义其他安全状态,以加快路径查找过程并找到更佳路径。有关机器人安全状态的定义,详见安全状态定义一章。

常规

名称

默认值

单位

描述

MaxPlanTime

120.0

查找过孔路径所用的最长时间

InterpStepSize

10.0

毫米、度

用于检查不同点之间运动的插值步长

InspectStatuses

false

 

检查之前和之后搜索和焊接路径的状态,以确定是否有必要求解此路径

MaxTries

1

 

求解器从头开始尝试求解的次数

运动学

名称

默认值

单位

描述

JointLimitPadding

[0.0, 0.0,

0.0…]

毫米、度

关节值与最小值和最大值之间必须至少保持这些距离

MinStretch

10.0

%

关节 5 在其操作范围内可以使用的最小距离

MaxStretch

99.0

%

关节 5 在其操作范围内可以使用的最大

距离

PolarSingularityTolerance

50.0

毫米

机器人手腕(关节 5)与机器人关节 1 轴线的最小距离

WristSingularityTolerance

1.0

路径中机器人关节 5 的值不能小于此值

TurnTolerance

0.0

关节 4 和 6 与转弯限制(180 + n * 360)之间至少

应保持这个距离

碰撞

名称

默认值

单位

描述

CollisionTolerances

[0.0]

毫米

碰撞容差列表。第一个容差用于起点和目标点,第二个容差用于起点或目标点的下一个点,依此类推。

SearchCollTolStartInd

0

 

如果目标语句是“搜索”,则 CollisionTolerances 中使用的第一个碰撞容差可以不是 0

采样

GUI 中提供通用参数,可用于调整贪婪度和采样密度。

名称

默认值

单位

描述

MotionLimits

[100.0, 30.0, 10.0,

100.0]

毫米、度

限制起点和目标点周围的最大运动长度。列表中包含对 TCP 位置、TCP 旋转、机器人额外轴和门架轴的

限制条件

SamplingRange

[1000.0, 2000.0]

毫米

起点和终点周围采样区域的大小。包含对 TCP 位置和门架关节的限制条件。

NeighborCount

5

 

将新的采样位置连接到最近状态的尝试次数

ProbTryConnectTrees

1.0

 

尝试连接起点和目标状态树的概率

MaxTreeConnectTries

5

 

将一个状态连接到另一棵树中的状态的尝试次数

MaxTreeConnectDist

2000.0

毫米

如果状态与另一棵树的状态的距离超过此值,则不会尝试连接这两个状态

ProbOppositeSample

0.25

 

采样状态位于另一棵树附近的概率。这有助于两棵树相向生长。

ProbTryLeap

0.2

 

创建采样状态的概率,该状态的外部轴值来自另一棵树的状态。会尝试直接连接,

MotionLimits 不会影响跳跃状态。

安全状态

名称

默认值

单位

描述

NormalSafeStatesEnabled

true

 

路径解中使用正常的安全状态

FindSafeStatePathMaxTime

60.0

在起点和目标安全状态之间寻找路径所花费的最长时间。

TryWithoutSafeStatesDistance

1000.0

毫米、度

如果起点和目标点的距离小于此值,则首先尝试在没有安全状态的情况下求解。

TryWithoutSafeStatesMaxTime

60.0

一开始在没有安全状态的情况下尝试求解的最长时间。

优化

名称

默认

单位

描述

MaxSkipStatesTim

e

60.0

用于路径优化的最长时间。

MaxFailedSkips

100

 

如果状态跳过连续失败次数超过此值,则将停止状态跳过算法。

MaxStatesToSkip

5

 

算法尝试一次跳过的最大路径点数量。

MinSmoothDist

100.0

毫米

仅在平滑运动的长度至少达到此值时才对拐角进行平滑处理

SkipSafeStates

false

 

用于指定算法能否跳过安全状态。

过孔路径

名称

默认值

单位

描述

JointMotionSpeed

50.0

%

设为求解路径的关节运动速度

LinearMotionSpeed

500.0

毫米/秒

设为求解路径的线性运动速度

NearMotionSpeed

100.0

毫米/秒

求解路径上最后一个点的线性运动速度

JointMotionsOnly

false

 

仅使用关节运动。如果为 false,则首选线性运动。

MaxLinearMotionRotation

0.0

线性运动过程中 TCP 的最大旋转角度。如果超过此值,则会添加

更多点。

安全状态定义

机器人的 SafeStates 属性仅包含两个参数,如下表所示。

名称

默认值

单位

描述

UltraExtRanges

[]

毫米、

外部轴区域列表,其中机器人关节 1 具有更大空间进行大幅运动。例如,[[[- 1e12,1e12],[-0.5,0.5]]] 定义了一个区域,其中第一个外部轴可以是任何值,而第二个

外部轴必须介于 -0.5 和 0.5 之间

JointDistFactors

[1.0,1.0,0.0,0.0…

]

 

计算最近安全状态时关节索引的距离系数

SafeStateSearchStep

50.0

毫米、

SolveJoints 寻找有效安全状态所用的

步长

SafeStateSearchRange

500.0

毫米、

SolveJoints 寻找有效安全状态时所允许的最大

变化量

States

[]

 

安全状态定义列表

应针对每种安全状态定义以下参数:

名称

默认值

单位

描述

Name

""

 

安全状态的名称。对功能没有影响。

RobotConfig

0

 

机器人手臂的配置(0 到 7)

RobotJoints

[0.0, 0.0, ...]

毫米、度

安全状态下的所有关节值,包括外部轴。

SolveJoints

[]

 

关节索引,可能需要稍微不同的值才能获得有效安全状态。

Level

1

 

状态的安全级别。0 表示正常,1 表示超级安全

InheritJointInds

[6, 7, …]

 

在机器人附近形成安全状态时从机器人状态中复制的关节值。默认情况下,所有外部轴的值都复制自原始状态,进而形成安全状态。