Contact me: hankecnc@gmail.com

操纵杆实现算法 #741

推推 grbl 3年前 (2023-01-23) 206次浏览

打开
AlexHolden 打开了这个问题 2019 年 10 月 18 日 · 0 条评论

注释

操纵杆实现算法 #741

不久前,我使用 Grbl v1.1 Jogging Wiki 页面上“操纵杆实现”中描述的算法向我的发送者添加了屏幕操纵杆支持。一开始几乎用不上,搁置了一会儿,今天晚上才抽空调试。问题归结为维基页面上的这个等式:
dt > v^2 / (2 * a * (N-1))

我首先尝试在我的代码中将其实现为:
dt = (v * v) / (2 * a * (15 – 1))

使用该方程式,grbl 无法响应操纵杆位置的变化,特别是在范围的高端。如果我没记错的话,我得到的 dt 值在 1 秒范围内,我认为这转化为大约 15 秒的总延迟?我不是很清楚这个方程是怎么推导出来的,但是我觉得它用的是v^2而不是v对我来说没有意义,所以凭直觉我试着把它改成:
dt = v / (2 *一个 * (15 – 1))

那好多了。grbl 现在可以很好地响应操纵杆的变化,但我只能让它以机器最大进给率的 90% 左右慢跑;它会加速到最大速度,然后在大约半秒后它会减慢速度。经过一些实验后,我决定改为:
dt = v / (2 * a * 10)

它现在在整个操纵杆范围内都能很好地响应,并且能够以机器的最大进给速度点动。

不确定这是文档的问题还是我(缺乏)对它描述的算法背后的数学的理解,但也许这会帮助任何其他正在努力获得操纵杆支持的发件人开发人员。

喜欢 (0)