注释
您确定 CART_FUZZ 与 TP 中使用的值一样小吗?使用了许多不同的 EPSILON 值。TP中相应的计算是在哪里做的? #define CART_FUZZ (1.0e-8) 这些是在 tp_types.h 中找到的各种值: |
合作者作者
以前不是,佳能有自己的“小”值,即 1e-7。零长度检查在 pmCartLineInit(_posemath.c:1652) 中完成。它曾经查看矢量的整体大小,但现在查看最大的分量(这是佳能所做的)。这些其他 epsilon 值中的每一个都有与零长度移动检查无关的特定用途。我想最终合并它们,或者添加关于它们用途的文档。
|
合作者作者
我用 PmCartLine 替换了我能找到的 PmLine 的所有用法,因此当前未使用。我想弃用旧的 PmLine 和相关函数,或者我也可以将更改迁移到那里。
|
当我对 MachineKit 进行更改时,我在以前运行的程序上收到 B 跟随错误。明天我再仔细看看,也许我哪里弄错了。 |
合作者作者
在特定的病理情况下(弧线/切线在线性+角度和纯角度移动之间混合),我仍然看到一些违规行为(虽然不是那么糟糕)。我会继续调查,显然还缺少一些东西。感谢您试用! |
合作者作者
@gfalavigna试试这个分支: 那个应该有针对 TP 加速违规的所有极端情况修复。 |
我检查这个已经有一段时间了。你相信这是固定的吗?您有计划将这些更改移植到 MachineKit 吗? |
合作者作者
运行此 G 代码片段时,由于加速违规可能会出现以下错误:
以下是我重现该问题所遵循的步骤:
在此之前它工作正常:
不确定,但可能适用于大多数 2.7 版本
有关我的硬件和软件的信息:
在 tests/trajectory_planner/circular_arcs/configs/XYZ.ini 中的用户空间构建(在 Ubuntu 18.04 上)中运行模拟配置(有点用词不当,因为它有一个 A 轴)。特定平台对于这个问题应该无关紧要,但如果它受到编译器/内核选择的影响会很有趣。