开源改变世界

墙上绘图仪数学 #469

推推 grbl 2年前 (2023-02-05) 230次浏览
打开
forbin1ab 打开了这个问题 2022 年 6 月 6 日 · 9条评论
打开

墙上绘图仪数学#469

forbin1ab 打开了这个问题 2022 年 6 月 6 日 · 9条评论

评论

墙上绘图仪数学 #469
贡献者

机器上下文

Wallplotter 运动学测试机。

功能说明

我很高兴最近偶然发现了 FluidCNC,特别是 WallPlotter 运动学模块。我设法让事情在我的机器上工作,但似乎在笛卡尔空间到绘图仪空间转换期间分割的工作方式存在不一致。我最终研究了由 pentacular 创建的 wallplotter.cpp 中的代码,并进行了一些更改以使其更好地工作。我对 git、github 和 discord 有点陌生,但我创建了一个分支,其中包含对 forbin1ab/FLuidNC 的最新 devt 分支的更改以及我制作的示例 .yaml 文件。我还创建了一些关于 markdown 中使用的测试机器的文档,并将其放在https://github.com/forbin1ab/FluidNCWallplotter上。

其他方法

不适用

我能提供什么帮助

我可以帮助对 wallplotter 运动学和可能的其他运动学模块进行任何额外的测试,因为我现在对这些模块更加熟悉了。

墙上绘图仪数学 #469 forbin1ab 添加了 增强 新功能或要求标签 2022 年 6 月 6 日
墙上绘图仪数学 #469

上面链接的 repo 不包含代码,只有文档,所以我无法查看您的代码更改。

墙上绘图仪数学 #469
贡献者作者

对不起这是我的错。我是新来的。我的第一个开源项目,也是第一次像这样使用 github。我把文档放在一个单独的仓库中,因为我不确定把它放在哪里。代码更改位于https://github.com/forbin1ab/FluidNC/tree/Devt的 devt 分支的分叉回购中

墙上绘图仪数学 #469
合作者
米奇布拉德利 评论了 2022 年 6 月 6 日  

这消除了循环内的乘法和除法

        float seg_x = position[X_AXIS];
        float seg_y = position[Y_AXIS];
        float seg_z = position[Z_AXIS];
        dx /= segment_count;
        dy /= segment_count;
        dz /= segment_count;

        for (uint32_t segment = 0; segment < segment_count; segment++) {
            // next segment endpoint
            seg_x += dx;
            seg_y += dy;
            seg_z += dz;
墙上绘图仪数学 #469

关于:

    void WallPlotter::lengths_to_xy(float h1, float h2, float& x, float& y) {
        // calculate x y lengths from the two given hypotenuses
        // Assumes origin is to the right and below of left motor...
        // TODO Optimize equations to reduce floating point operations
        float m = abs(_left_anchor_x)+abs(_right_anchor_x); // motor separation
        x = (h1*h1-h2*h2+m*m) / (2*m); // solve for X1
        ...

我可以看到,这里唯一的算法变化(不包括变量名替换和子表达式分解)是替换

        float m = abs(_left_anchor_x)+abs(_right_anchor_x); // motor separation

代替

        float distance = _right_anchor_x - _left_anchor_x;

新版本似乎不正确。例如,如果左锚点为 1,右锚点为 4,则旧版本给出的正确距离为 3,而新版本给出的距离为 5。新版本给出正确答案的唯一情况是锚点具有不同的符号.

当 right_anchor < left_anchor 时,旧版本可能会给出错误的距离,但可以说这是出于其他原因的错误。

墙上绘图仪数学 #469 米奇布拉德利 补充道 漏洞 仅供开发者使用并删除 增强 新功能或要求标签 2022 年 6 月 6 日
墙上绘图仪数学 #469
贡献者作者

根据您的意见……
我已经继续优化循环以消除不需要在循环体中的数学操作。
我还查看了您对用于将 lengths_to_xy 转换的算法的评论,并同意第二次看它们几乎相同。我已经继续并切换回以前的 le​​ngths_to_xy 系统,并进行了一个小改动来处理图像被颠倒绘制的事实。我继续并重新测试,一切似乎都很好。这些更改现在位于我的 Devt 分支上。再次感谢您的快速输入。非常酷的项目 。
墙上绘图仪数学 #469

墙上绘图仪数学 #469 MitchBradley 更改了标题 特征: 墙上绘图仪数学 2022 年 6 月 7 日
墙上绘图仪数学 #469

伟大的!下一步是使用存储库主页上的此按钮打开拉取请求。 针对 bdring 仓库的 Devt 分支。
墙上绘图仪数学 #469

墙上绘图仪数学 #469
贡献者作者
forbin1ab 评论了 2022 年 6 月 7 日 通过电子邮件
墙上绘图仪数学 #469 MitchBradley 提到了这个问题 2022 年 6 月 7 日
合并
墙上绘图仪数学 #469

如果您将 <issue_number> 放在 PR 评论中,PR 和问题将被链接起来以便于导航和跟踪。GitHub 有一些像这样的便利功能。

现在,想解决进给率转换数学问题吗?我的第一个猜测是通过电缆空间和笛卡尔空间中矢量长度的比率来缩放进给率,但也许我遗漏了一些东西。

墙上绘图仪数学 #469
贡献者作者
forbin1ab 评论了 2022 年 6 月 8 日 通过电子邮件

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
漏洞仅供开发者使用
项目

还没有

发展

没有分支机构或拉取请求

2名参加者
墙上绘图仪数学 #469墙上绘图仪数学 #469

喜欢 (0)