注释
|
我制作了一个控制 scara 手臂的 Grbl 叉子,但它并不是真正可以有意义地集成到 Grbl 中的东西——它必须是一个单独的项目。Grbl 将始终专注于笛卡尔设置。就目前而言,将第四个轴添加到 Grbl 非常简单,因为这是一个笛卡尔轴,无论它需要什么——我怀疑这个轴在 Marlin 中是塑料进给?将旋转添加到混合中将需要对 grbl 中的前瞻规划器进行复杂的返工,我认为目前在任何人的路线图中都没有。 如果我要更新 Grbl 以使用更现代的处理器,我个人会选择基于 ARM 的设置。我仍在等待一些电路板像 Arduino 一样无处不在,让这样的努力变得有价值。 |
|
嗨 Simen,感谢您的快速回复。目前,我在使用 Marlin 时通过校准它以在每个轴上移动角度而不是毫米来捏造 gcode;即我按度定位每个手臂部分。这实际上使得计算实际位置的数学计算并不太糟糕,但这可能不是专业人士的做法!我的手臂的优点是手臂的任何部分都不依赖另一个,所以如果我改变下臂的角度,上臂与地面保持相同的角度。我认为这与 SCARA 布局有很大不同,不确定您的其他叉子是否会帮助我。 考虑到更多令人兴奋的硬件即将出现,我理解您对 grbl 投入更多工作的沉默。然而,我确实认为 Arduino 还剩下很多生命——它很容易编程,可用性和可扩展性将使它在未来几年内继续存在。我没有想过正确的旋转轴会如何影响规划器,但我现在明白这会很棘手。但是您始终可以将其定义为仅移动 360 度且不再移动的轴,或者 360 度之后的下一个增量为 1。但是我不是程序员,我敢肯定它涉及的远不止于此! 我可能会坚持使用 Marlin,看看我能否让第 4 轴和第 5 轴独立工作。也许我最终不得不切换到 LinuxCNC,这感觉像是一个倒退的步骤,但至少内置了 arm control。 |
|
我并不是说我对按原样维护 Grbl 不感兴趣,我只是说我看不到将它升级到具有相同处理能力的不同 atmega 的意义,只需要一些额外的引脚,因为你很快就会用完处理能力试图让所有这些额外的引脚都充满行动。然而,我确实理解为什么 RepRap 装置会这样做,因为它们在加热器和进料器以及你有什么方面有更多的进展。对于铣削,香草 Arduino 上的 Grbl 仍然只是我个人的门票。 |
|
我完全同意西门。对于旋转的 ABC 轴,数学会开始变得复杂,并且需要更多的计算能力。比简单的 328p atmegas 可以真正强大地做更多一点。内存也有问题。Grbl 被拉伸到最大,为 3 轴提供最小但一致的功能。所以这主要是一个复杂的问题,你添加的越多,你需要的内存和计算能力就越大。 就个人而言,我认为第四轴是可行的,如果对 Arduino 非常小心的话。我不认为数学与我们在规划器中已有的有太大不同,但我认为可能需要做出一些妥协才能使其稳健地工作,因为计算该额外轴需要更多的周期。(我们还必须将加速度更改为与轴无关,这在我的路线图中。)我希望在不久的将来的某个时候看到这发生,也许作为一个不同的开发分支。 另一个注意事项:TinyG/grblshield 的 Alden Hart 一直在研究基于 atmega mega 芯片的 6 轴控制器。不确定他现在在他的项目中的什么位置,但从我上次看到的情况来看,它工作得很好。不过他只支持自己的 TinyG 特定硬件。 |
|
@chamnit考虑如何使用旋转轴管理有效的进给率让我很头疼。有效进给率不会是笛卡尔运动和旋转运动的结果,必须考虑工具与在给定时间点移动的每个旋转轴的距离。我同意在 atmega 架构的约束下可以管理单个旋转轴,但是三个?我必须检查一下@aldenhart取决于。如果他能够做到这一点,听起来真的很不可思议,但话又说回来,他还是相当聪明的! |
|
是的,有点头疼。您必须在每个时间点独立考虑每个轴的加速度和速度,但我认为可能有一个简单的解决方案来处理它们。我认为诀窍在于您必须将每个运动限制为最大轴的加速度。我还没有在纸上解决它,但它应该可以在不杀死 Arduino 的情况下实现。 对于有效的进给率,这些应该由 CAM 软件或后处理器处理。这是使 6 轴机器如此困难的众多问题之一。大多数时候,机械师必须自己编写特定于机器的后处理器。我们有一台工作中的 5 轴,它太不稳定了,以至于机械师不得不三重检查他们的代码,以确保在他们开始切割时没有任何损坏。特别是当刀具退出时以及工件移动并旋转到新位置时。 |
|
@simen:我一直在考虑更多关于有效进给率的问题,并且我一直在与机械师 Mike 讨论这个问题。这是我们的机械师的一些说明。 因此,主要问题是当您同时进行旋转和平移时,它们会使用两个不同的单位,即英寸和度数。要解决这个问题,您必须使用反时限 (G93)。这会强制旋转和平移通过使用一个 feed 参数而不是两个来同步移动。如果您使用两个单独的 feed 参数进行旋转和平移,每个小的简单错误都会影响同步,其中一个会先于另一个到达目的地。 在这一点上,我不确定这对 Grbl 到底意味着什么,但我想我们必须更新反时限代码才能正确转换轴进给率。它可能是可行的……总之,需要考虑的事情。 |
|
(常识免责声明:如果以 CNC 加工为生的人不同意我的文字,他们可能是对的。如果我的文字不同意这本书(Peter Smid 的 CNC 编程手册),那本书肯定是对的) 关于这个问题,我有以下几点要说:
关于旋转轴问题的简短结论:
希望能帮助到你。 |
|
@csdexter: 同意你所说的大部分,如果不是全部的话。
所以,如果这完全可能的话,我认为研究仅使用第 4 轴的同步旋转和平移是值得的。相关的更改应该是独立于平台的,我们可以稍后使用功能更强大的硬件添加此功能,也就是说,如果我们发现小 Arduino 无法处理它。从那里开始,使用 ARM CPU,我们应该很容易添加额外的两个 BC 轴以实现完整的 6 轴运动。 我同意 Radu 的观点,对于 CNC 加工,6 轴受到可以对其进行编程的免费/廉价软件的可用性的限制,但 Grbl 不仅仅是加工。我们已经看到许多其他简洁有趣的应用程序,用于艺术装置和其他东西的简单移动,所以我认为,如果我们能做到,那就去做吧。 |
|
你好 我在这里的第一篇文章,希望不是最后一篇,因为我正在尝试 关于更多轴所需的硬件: 否则,我已经基于 UC3 设备创建了自己的电路板, 问候 |
|
我将权衡一下 TinyG 是如何做到的。所有代码都可以在 github (Synthetos/tinyg) 上找到,以供审查、使用和重用。 所有 6 个轴都是协调的,并且它们是受速率限制的。这是通过将所有运动转换为固件内部的时间单位来完成的——不管它们在 Gcode 中是如何指定的。Kramer RS274v3 NIST 规范中有一个密集的部分,内容涉及在进行涉及两个域中的运动的非反时限模式协调运动时,线性轴和旋转轴应如何关联。我读了很多很多次,希望我没看错。 在内部,所有运动规划都是作为标量值完成的,该标量值通过 6 轴单位矢量转换为运动。第一个操作是在给定轴的物理限制的情况下,将移动速率限制为移动所需的最短时间。请注意,轴都有最大速度、加加速度和转弯加速度的独立参数(TinyG 使用加加速度控制加速度 – 因此加速度不是常数) 是的,它现在只能为 Atmel Xmega 芯片编译。有人愿意和我一起开发 ARM 端口吗? |
|
哇,这引发了讨论!感谢所有的头脑风暴。aldenhart,TinyG 看起来真的很有趣,而且看起来绝对是接管复杂机器控制的有力竞争者。假设您可以获得足够的 I/O,您绝对应该将其移植到 ARM。我希望我能帮上忙,但我真的是一名平面设计师——也许我可以给它上色! 对于我目前的特定问题(机器人手臂)来说,这可能有点过头了,而且我只有一个 Arduino Mega 2560,而不是更强大的 Xmega,所以我什至不能尝试它。我想我可以扩展 Marlin 以容纳额外的轴。从 XYZ 到旋转坐标的转换必须由主机完成(可能最终在控制器上完成),但这应该不会太糟糕;如果我想翻译一系列 XYZ gcode 命令(比如,如果我用 XYZ reprap 切割一些东西用于 3D 挤压,我想使用 arm 重现),我应该能够编写一个 python 脚本来给我相同的 gcode在我的 4 个旋转轴上 – 我想!类似于极谱绘图机器人的工作方式,这对我来说实际上是一个很好的起点。进给率可能是个问题,但与旋转+平移系统的方式不同。抱歉,我也只是从我要解决的问题考虑这些,而不是针对所有 CNC 系统 – 请原谅我的短视观点! |
|
在 2012 年 9 月 12 日上午 06:31,Alden Hart 写道:
我愿意帮忙! 我确实参加了 Teensy 3.0 的 Kickstarter(还有 您认为使用过的飞思卡尔“Kinetis”K 系列 PK20DX128VLH5 / 或者等待 Arduino Due 会更好吗? 我不属于这家公司,如果他 http://www.kickstarter.com/projects/paulstoffregen/teensy-30-32-bit-arm-cortex-m4-usable-in-arduino-a 技术规格: 32 位 ARM Cortex-M4 48 MHz CPU(M4 = DSP 扩展) 所有引脚都具有中断能力。
|
|
几周前,我从 kickstarter 订购了一些 Teensy 3,只是为了试用一下。嵌入式系统面临的挑战之一是找到一个 ARM,它可以满足这些用途(大约 5 美元,+/-),可用(不会永远缺货),具有足够好的免费或便宜的开发链(支持模拟或在-circuit trace/debug),并且拥有不繁琐的库许可并支持开源项目(所以 TI 已经出局 – 或者当我们与他们交谈时)。哦,我想要很多 IO 引脚来处理很多事情。 我也同意 Simen 关于等待“Arm Arduino”的看法。具有讽刺意味的是,Pi 和 Beaglebone 对于这些用途来说太强大了(复杂,恕我直言),因为您会尝试从非实时操作系统中尝试运行实时系统的所有复杂性,而且引出线是谋杀。 我们一直在研究所有这些因素,并且认为 NXP1758 系列是迄今为止最好的。第 1 步是准备好工具链,可能还有 FreeRTOS。 |
|
我还支持 Teensy 3 项目,主要是因为我很感兴趣将它用作新 RepRap 控制器的基础。将 grbl 移植到它上面似乎是这样做的良好开端,因此我也有兴趣帮助进行 ARM 移植。 如果一切都按照我的计划进行,我将在几周内获得几份用于容纳 teensy 和 pololu 步进驱动器的电路板的备用副本。如果有帮助,我很乐意发送其中一些… |
|
我也在将 grbl 移植到 ARM,更准确地说是移植到 Cortex-M3 和 Cortex-M4F(基本上相同的代码使用不同的 -march 选项编译两次)。 事情仍在不断变化,最终产品设计可能最终会在“One Man Orchestra”解决方案中使用 ARM,并使用类似于 Olimex 的 STM32-H152 的电路板,或者它可能会沿着我目前正在开发的路线发展其中涉及使用 ATtinys 执行所有硬件低级任务,使用一个 ATmega328P(在 Pro Mini 上)执行管理、G 代码解析和数学运算。 |
|
并不是说移植到 ARM 特别困难,但它更多的是 如果我们开始为多个平台开发,那么 Simen 所说的和我支持的,在没有 我个人认为 Grbl 还有很多工作要做。我们还可以使用一些 2012 年 9 月 16 日下午 3:37,Radu – Eosif Mihailescu < 我也在将 grbl 移植到 ARM,更准确地说是移植到Cortex-M3 和 Cortex-M4F(基本上相同的代码使用 不同的 -march 选项 特定于 CPU 的——而 libc 可以处理其余的事情。 事情仍在不断变化,最终产品设计可能最终会在“One Man Orchestra”解决方案中使用 — |
|
我已经关注了一段时间,我想插话。为什么不只是第 4 轴,现有硬件上的一些简单和基本的东西?它不一定是完美的,人们会找到解决问题的新方法。你可以建立一个只有 4 轴的传输…… |
|
或许: #define MM_PER_INCH 25.4 #define FAST_XY_FEEDRATE_INCH 50.0 #define CURVE_SECTION_MM 0.5 // 限制 #define SENSORS_INVERTING 0 // 喷嘴加热器的电阻电流 #define HEATER_CURRENT 100 // 引脚 Mega2560 #define SERIAL_RX_PIN 0 #define X_ENABLE_PIN 2 |


我知道 grbl 是为 3 轴、非旋转轴 CNC 机器设计的,但是添加第 4 轴和/或第 5 轴有多难?我也很欣赏它是为在低端 Arduino 上运行而设计的,但实际上人们还在使用 AVR328 来运行 CNC 铣床吗?644 有足够的引脚和更多的计算能力来支持更多的轴。我有一个 reprap RAMPS 板,它有 5 轴和 6 个端点。该板的一个更简单的变体,带有主轴控制而不是加热床/热端控制,非常适合运行由 NEMA17 或 23 电机驱动的 4 轴或 5 轴泡沫塑料/轻木切割机。此类机器的刀具路径可以在开源软件中生成,例如 Gmax http://www.turbosquid.com/gmax和 CNC 工具包http://www.cnc-toolkit.com/
想象一下能够用这样的设置切割光滑的船体!
基于 grbl 的 Marlin 固件添加了第 4 轴,并且能够将工具更改为第 5 轴。还需要与轴无关的每毫米步数和加速度,这在 Marlin 中已经存在。此外,还可以支持其他形式的机器人技术,例如机器人手臂——这是我不可告人的动机。请参阅http://forums.reprap.org/read.php?146,153660
不幸的是,我不是程序员,所以我真的不知道该怎么做。除非其他人已经这样做了?