Ben*_*Ben 8 language-agnostic math robotics vector
我在高中的FIRST机器人团队工作,我们正在开发一个奇异果驱动机器人,其中有三个全向轮安装在等边三角形配置中,如下所示:

问题是编程机器人以驱动电动机,使得机器人沿给定操纵杆输入的方向移动.例如,为了"向上"移动,电动机1和2将被均等地供电,而电动机3将被关闭.操纵杆位置作为矢量给出,我想如果电机也被表示为矢量,矢量投影可能就是我需要的.但是,我不确定这是否正确,如果是,我将如何应用它.我也有一种感觉,一个操纵杆位置可能有多种解决方案.任何帮助将不胜感激.
我在学校期间已经制作了 9 个机器人(1 个 FIRST,8 个 RoboCup)。我们使用与您相同的全向驱动布局。Beta 的答案看起来是正确的,但之后为所有轮子添加旋转:
W1 = -1/2 X - sqrt(3)/2 Y + R
W2 = -1/2 X + sqrt(3)/2 Y + R
W3 = X + R
Run Code Online (Sandbox Code Playgroud)
[这是添加了一些旋转的 Beta 公式]
您需要考虑电机的可用范围。我猜测它可以采用 +/-255 的 PWM 信号,因此输入或输出都必须进行一些调整。(这并不难...)
回答您的具体问题:矢量投影本质上就是您在这里所做的。您可以通过矩阵M、操纵杆I的输入和电机O的输出来应用它。因此O = M * I;
M = [(-0.5 -sqrt(3)/2 +1)
(-0.5 +sqrt(3)/2 +1)
(1 0 +1)]
Run Code Online (Sandbox Code Playgroud)