我有一个头脑风暴机器人,它有后背/前轮,前面有一个马达,它能左右移动一根棍子(圆形运动),我想要棍子末端的左右运动是线性的。我想通过使用前后向运动来修正圆形运动来实现这一点。这是一张供参考的图片,图片,如果您知道任何公式或过程,请告诉我。阿德威
发布于 2022-06-04 20:23:07
首先,让我们对这个问题做一个更多的数学绘图。假设机器人是静止的,圆圈的一半是你的手杖可能有的路径。这个圆的半径,h,是你的棍子的长度。A点是棍子的起始位置,B点是棍子的结束位置。角α是它的起始角,角β是它的结束角,两者都是从x轴测量的.

在这张图中,x是棍子的两个位置之间x轴的差异。因此,机器人需要通过向后行驶来补偿距离,这就是我们计算的目标。
为了计算x,我们需要棍子位置的两个x坐标的差值。在数学语言中,这变成:

注意,|EC|是指段[EC]的长度。
现在我们只需要计算|EC|和|ED|。这可以使用余弦函数来完成。余弦函数计算三角形的撇号与在直角三角形中选择的角相邻的边的比例。有关更多信息,请参见维基百科。
如果你已经知道了角度,从这里开始就很简单了。在三角形EDA中,我们可以声明:

在三角形ECB中,我们可以声明:

我们可以改革方程式,以便:

以及:

然后,如果我们填写第一个方程,那么我们得到:

请注意,您可能已经形成了正确的形式的角度,因为它们可能不是从x轴测量。
但是如果我们还不知道角度,我们需要先计算它们。然后我们需要知道|AD|和|BC|,这是机器人中心和我们想要到达的位置之间的距离。
这一次,我们必须使用正弦函数,它是三角形的撇号与在直角三角形中选择的角相对的边的比率。
在三角形EDA中,我们可以声明:

在三角形ECB中,我们可以声明:

这意味着我们可以使用偏正弦函数,通常表示为sin⁻¹ x。它计算有余弦x的角度。
如果我们对方程式进行改革,我们就会得到:

和:

使用这些值,我们可以使用上面的公式来计算x。
https://stackoverflow.com/questions/72502151
复制相似问题