Math 基于gimble的绘画机的数学编程帮助

Math 基于gimble的绘画机的数学编程帮助,math,printing,vectormath,Math,Printing,Vectormath,我是一名艺术家,参与制造各种计算机控制的机器。我已经开始制作一台基于gimble的XY喷漆机的原型,并意识到所需的数学知识是我力所能及的。我是一个相当不错的程序员,但数学能力不强,尤其是3D数学 为了了解我需要做什么,查看钻机可能会有所帮助: 早期原型: (小视频) (放大视频) 两个内圈代表X/Y轴,由步进电机控制。我希望能够同时使用光栅图像和矢量数据(gcode)。因此,我需要能够在纸上/从我的数据中确定2D空间中的一个点,并让gimble计算出到达该点所需的方向(即每个电机的步距)

我是一名艺术家,参与制造各种计算机控制的机器。我已经开始制作一台基于gimble的XY喷漆机的原型,并意识到所需的数学知识是我力所能及的。我是一个相当不错的程序员,但数学能力不强,尤其是3D数学

为了了解我需要做什么,查看钻机可能会有所帮助:

早期原型:

(小视频)

(放大视频)

两个内圈代表X/Y轴,由步进电机控制。我希望能够同时使用光栅图像和矢量数据(gcode)。因此,我需要能够在纸上/从我的数据中确定2D空间中的一个点,并让gimble计算出到达该点所需的方向(即每个电机的步距)


我一直在搜索2D>3D投影、Euler角度等,但我的深度不够。任何指向正确方向的指针、推送或代码片段都是最受欢迎的。我能理解大多数编程语言。

我认为这是一个简单的问题

假设环的中心到纸上最近点的距离(我称之为“原点”的点“O”)是距离X

取O正北方的另一个点p,其与O的距离为Y

要绘制该点,需要角度alpha,使tan(alpha)=Y/X,即,可以使用公式“arctan(Y/X)”[arctan有时也称为atan]计算alpha。Arctan是一个三角函数,我想您可能会在通用数学库的API中找到它的定义

以上是最简单的情况


我能想到的另一种情况是p点不是正北。与其说是正北,不如说它的北面距离是Y1,东面距离是Y2。解决方案是两个角度(两个环各有一个角度),其中一个是“arctan(Y1/X)”,另一个是“arctan(Y2/X)”。

您制造的机器非常好,我希望这对您有效。我相信这是正确的

在我看来,得到一个角度很简单,但另一个角度更难想象,因为我们已经倾斜了它所指向的轴

我将避免使用tan,因为在编程时,这可能会导致除以0,这可能会令人沮丧。同时,Z是纸上方原点的高度

YAxis=Arcin(X/sqrt(X²+Z²))

XAxis=Arcin(Y/sqrt(Y²+X²+Z²))

或者我们可以使用

XAxis=Arcin(Y/sqrt(Y²+Z²))

YAxis=Arcin(X/sqrt(X²+Y²+Z²))

另外,我非常想看一个这个绘图的视频,如果它有效的话

编辑:
经过思考,我相信只有一个解决方案会起作用,这取决于哪个轴受另一个轴的影响。Yy轴在中间还是x轴?

< p>也许我误解了,但我不相信万向节会做你想做的事。万向节可以指向任何三维方向,但不能移动到三维空间中的任意点。如果纸的平面与固定在万向节中的笔扫过的体积相交,笔可能会画一个圆,但仅此而已。即使画一个圆也不是一件确定的事情,因为在这种情况下,纸张也会与万向环扫过的体积相交;试着调整钢笔的方向会使一个戒指撞到纸上


我想你想要的是一个,而不是一个万向节。

如果你看这部电影,他似乎会用激光而不是物理画笔作画。是的,我会在最小圆环的中心使用喷墨(固体流,高压,由电磁阀控制)。我有另一台我正在工作的机器——更传统的X/Y绘图仪——它的编程非常简单(虽然精度+分辨率=电机控制一直是一个挑战。这里的一些图片:好的,我一开始没有看到电影中的激光光斑,现在我明白你在说什么了。不过我会在这里留下我的答案,作为在发布前对其他人进行调查的警告。谢谢ChrisW+zekian。我遵循了你们的说法。我发现了在发布我的问题后,我开始了解如何处理这个问题。我必须对位图数据进行一些转换,使0/0位于图像的中心。然后找出如何将弧度转换为离散步长(步进电机以+或-n步移动)。可能需要一点尝试和错误-一个戒指可以在其运动范围内移动的步数(例如-45度到45度),然后确定每弧度的步数-类似的。感谢/RoyOh-意味着添加到三角计算器的链接:弧度很容易转换为度(我想你知道每个电机的步进是多少度),为了把弧度转换成度,我们将弧度乘以180,再除以π。因此,要得到以度为单位的X轴,你需要做弧(X/sqrt(X²+Z²))*180/3.141592也可以使用Z来影响绘图的缩放,我想我会让你知道,以防你没有意识到。如果你对我是如何得出我给你的方程式感到好奇,我会很高兴地借助图表解释。仅供参考,一般术语是en.wikipedia.org/wiki/Gimbal,当然你可以使用专有的spel(请参阅您的版本。)