开源改变世界

超短 XYZ 运动和大 ABC 运动的加速度违规 #550

推推 grbl 3年前 (2023-01-29) 216次浏览
关闭
robEllenberg 打开了这个问题 2019 年 1 月 26 日 · 13条评论
关闭

超短 XYZ 运动和大 ABC 运动的加速度违规#550

robEllenberg 打开了这个问题 2019 年 1 月 26 日 · 13条评论

注释

超短 XYZ 运动和大 ABC 运动的加速度违规 #550

运行此 G 代码片段时,由于加速违规可能会出现以下错误:

G0 X0 Y0 A0
G91 G20

G1 X0.1 Y0.1 A1.0 F100
G1 X0.000000005 Y0.000000005 A100.0 F10000
G90
G1 X0 Y0 A0 F10000
M2

以下是我重现该问题所遵循的步骤:

  1. 在具有至少一个线性轴和至少一个旋转轴的机器上以仿真或真实硬件运行 LinuxCNC。使用 Sam 的 HAL 设置来计算每个轴的加速度更容易看到。
  2. 运行附加程序
  3. 第 5 行的加速违规(或跟随错误)

在此之前它工作正常:

不确定,但可能适用于大多数 2.7 版本

有关我的硬件和软件的信息:

在 tests/trajectory_planner/circular_arcs/configs/XYZ.ini 中的用户空间构建(在 Ubuntu 18.04 上)中运行模拟配置(有点用词不当,因为它有一个 A 轴)。特定平台对于这个问题应该无关紧要,但如果它受到编译器/内核选择的影响会很有趣。

超短 XYZ 运动和大 ABC 运动的加速度违规 #550
jallwine 评论了 2019 年 1 月 26 日  

您确定 CART_FUZZ 与 TP 中使用的值一样小吗?使用了许多不同的 EPSILON 值。TP中相应的计算是在哪里做的?

#define CART_FUZZ (1.0e-8)

这些是在 tp_types.h 中找到的各种值:
#define TP_PURE_ROTATION_EPSILON 1e-6
#define TP_ACCEL_EPSILON 1e-4
#define TP_VEL_EPSILON 1e-8
#define TP_POS_EPSILON 1e-12
#define TP_TIME_EPSILON 1e-12
#define TP_ANGLE_EPSILON 1e-6

超短 XYZ 运动和大 ABC 运动的加速度违规 #550
合作者作者
罗伯·埃伦伯格 评论了 2019 年 1 月 26 日 通过电子邮件
超短 XYZ 运动和大 ABC 运动的加速度违规 #550

pmLineInit 函数是否被调用过?它具有与 pmCartLineInit 函数类似的检查,但您没有在那里进行比较更改。

https://github.com/robEllenberg/linuxcnc-mirror/blob/10c3678ab069f856532e5512a93bfaffcf930491/src/libnml/posemath/_posemath.c#L1569

超短 XYZ 运动和大 ABC 运动的加速度违规 #550
合作者作者
罗伯·埃伦伯格 评论了 2019 年 1 月 28 日 通过电子邮件
超短 XYZ 运动和大 ABC 运动的加速度违规 #550

当我对 MachineKit 进行更改时,我在以前运行的程序上收到 B 跟随错误。明天我再仔细看看,也许我哪里弄错了。

超短 XYZ 运动和大 ABC 运动的加速度违规 #550
合作者作者

在特定的病理情况下(弧线/切线在线性+角度和纯角度移动之间混合),我仍然看到一些违规行为(虽然不是那么糟糕)。我会继续调查,显然还缺少一些东西。感谢您试用!

超短 XYZ 运动和大 ABC 运动的加速度违规 #550

我正面临与您的 G 代码片段相同的问题,但 X 轴移动的时间稍长(例如 G1 X1 而不是 G1 X0.000000005),高于前面提到的 EPSILON。

我刚刚尝试测试在https://github.com/robEllenberg/linuxcnc-mirror/tree/bug-550-tp-canon-displacement-checks中做了什么但没有任何好处。

有人知道是否有办法解决这种情况吗?

提前致谢

超短 XYZ 运动和大 ABC 运动的加速度违规 #550
合作者作者
罗伯·埃伦伯格 评论了 2019 年 4 月 13 日  

@gfalavigna试试这个分支:
https ://github.com/robEllenberg/linuxcnc-mirror/tree/rellenberg/develop-combined-2.7

那个应该有针对 TP 加速违规的所有极端情况修复。

超短 XYZ 运动和大 ABC 运动的加速度违规 #550

我检查这个已经有一段时间了。你相信这是固定的吗?您有计划将这些更改移植到 MachineKit 吗?

超短 XYZ 运动和大 ABC 运动的加速度违规 #550
合作者作者
罗伯·埃伦伯格 评论了 2019 年 5 月 17 日 通过电子邮件