开源改变世界

M556 实施 ? #902

推推 grbl 2年前 (2023-02-06) 259次浏览
关闭
smartfriendz 打开了这个问题 2014 年 4 月 28 日 · 9条评论
关闭

M556 实施 ?#902

smartfriendz 打开了这个问题 2014 年 4 月 28 日 · 9条评论

评论

M556 实施 ? #902

对于 smartrap 项目。该设计意味着正交误差可能很难通过机械调整来纠正。
M556指令的执行:轴补偿可以很好的解决这个问题。
不幸的是,我看不出数学应该如何做到这一点:((尤其是在 X 和 Y 之间)。
也许有人会很快看到如何实现这个?

M556 实施 ? #902
贡献者

探测只能为您提供与其他两个坐标相对应的一个维度上的偏移量,因此无法使用探测来区分非电车平台和非正交轴之间的区别。如果你问我,一个让轴很容易非正交的设计不应该被称为“智能”。

M556 实施 ? #902

X 到 Y 校正不需要探测。探测只会自动进行 Z 到 Y 和 Z 到 Z 正交轴补偿。要进行 X 到 Y 正交轴补偿,您需要打印一个应该成直角的零件,然后他们会测量它在 cretin X 或 Y 距离处超出多少毫米。也就是说,当打印通常只需要 Y 移动的东西时,X 现在也会移动以进行校正。

M556 实施 ? #902

非常有趣,whosawhatsis :) 但这不是探测 X/Y 的重点,而是打印、测量和输入差异(如 mark 所说)。
fyi : https://reprappro.com/documentation/ormerod/axis-compensation/#Orthogonal_Axis_Compensation
我看过代码,他们有很好的 cpp 代码并做了一个简单的转换,但我看不到如何用 marlin 翻译编码方式。

M556 实施 ? #902
贡献者

虽然我坚持我的立场,即以这样一种方式设计机器,即这些错误更容易在软件中补偿而不是机械修复是一种可怕的做法,但这提出了我一段时间以来一直想提出的观点,即Marlin 确实需要在逻辑坐标(始终是笛卡尔坐标,在 gcode 中以毫米为单位)和轴的物理位置(按步长测量)之间的通用抽象层。对于像我们大多数人使用的没有平台补偿的离散笛卡尔(一个轴直接对应一个步进驱动器)机器人,只需要一个比例因子(步数/毫米),但其他几何形状如 deltabots、h-bot/coreXY 差动驱动等. 有丑陋的黑客,代码被插入到几十个不同的地方,以应对这些几何形状所需的变化。

有没有人认为这是像我认为的一样重要的补充?

M556 实施 ? #902

我只能同意你关于通过软件机械错误补偿的不良做法。这通常是一种糟糕的工作方式 :)
在这个特定项目中,设计决定采用全打印结构,这是一个挑战,因为我们都知道打印结构由于“业余”工具而更难直接构建(自制造打印机),而不是使用专业工具制作金属结构。
我们可以讨论这样做的有根据的想法,但我认为这里不合适。这个项目正在变得成功,我相信这是因为这种印刷一切的想法:与使用需要每个人都拥有相同昂贵的专业工具的木刻或金属框架相比,为社区分享设计和尝试新的解决方案要容易得多。
也就是说,我发现了一个有趣的想法让马林鱼拥有这个功能?即使打印机做得很好,您也可以对 X/Y 平面图做一些小的调整,而不是像您想象的那样方形。
我开始相信在实际代码中实现起来并不那么容易。

M556 实施 ? #902

你好,

是的,我认为你在这里提出了一个很好的观点。

太多的 hack 很快就会变得低效并破坏灵活性。

之后一如既往地在性能方面,灵活性似乎
在内存/代码大小/CPU 使用方面很重要。

因此,也许如果人们开始使用 marlin V2 寻求 Arm 支持,那么此时可以
使用更灵活的代码以及一些不错的 C++
专用类 + 设计模式等来完成。

我认为这会使您的抽象层更加灵活。

De : whosawhatsis [ mailto:notifications@github.com ]
Envoyé : lundi 28 avril 2014 10:13
À : ErikZalm/Marlin
Objet : Re: [Marlin] M556 实现?(#902

虽然我坚持我的立场,即以这样一种方式设计机器,即
这些错误更容易在软件中补偿而不是
机械修复是一种可怕的做法,但这提出了我
一段时间以来一直想提出的观点,即Marlin 确实需要在逻辑坐标(始终是 笛卡尔坐标,在 gcode 中以毫米为单位)和 轴的物理位置(按步长测量)
之间的通用抽象层。对于像我们大多数人使用的没有平台补偿的离散笛卡尔(一个轴 直接对应一个步进驱动器)机器人 ,只需要一个比例因子(步数/毫米) ,但其他几何形状如 deltabots、h-bot/coreXY 微分

驱动器等有丑陋的技巧,其中代码被插入到几十个不同的
地方,以附加这些几何形状所需的更改。应该有
一个坐标传递的函数,用于将 XYZEF 坐标集逐步转换
为每个物理轴的插值运动路径,以便
该函数的代码是
从笛卡尔坐标切换到三角坐标或 CoreXY 所需的全部代码到 SCARA,或者将逻辑 X
运动转换为发送到 3 个独立步进驱动器而不是一个的步进驱动器
(有没有注意到 Y 和 Z 有双步进驱动器选项,
但不是 X?),或者运行两个挤出机(以不同的步骤/mm!)串联
创建重复零件,甚至补偿非
电车的平台或非正交的轴。

有没有人认为这是像我认为的一样重要的补充?

直接回复此电子邮件或在 GitHub 上查看它
https://github.com/ErikZalm/Marlin/issues/902#issuecomment-41532994
。[图片:图片支持 par l’expéditeur。]

M556 实施 ? #902

我只是觉得很有趣看到每个人(无一例外)在自动调平(实际实施)后运行,这是修复不良机械平台对齐的软件技巧,但对于那两个轴(XY),不,这不好,软件不应该不要修理坏机械。
大声笑
我仍在尝试实现它,因为它只是一个简单的矩阵运算,但在 marlin 中,它看起来一点也不简单。

M556 实施 ? #902
贡献者

因为这不是 marlin 的问题,而是构建问题,并且没有任何评论,因为我可以关闭这个,