![]() |
1
4
我在学校的时候已经制造了9个机器人(1个第一,8个机器人眼)。我们使用的OmniDrive布局与您相同。贝塔的答案看起来是正确的,但是 添加旋转 之后所有车轮:
[这是加了旋转的β公式] 你需要考虑一下你的发动机的适用范围。我猜它可能需要一个+/-255的脉宽调制信号,因此输入或输出必须进行一定程度的调整。(没那么难…) 要回答您的特定问题: 矢量投影 基本上就是你在这里所做的。你用矩阵来应用它 米 ,您的操纵杆输入 我 以及你对电机的输出 o . 因此 o = 米 * 我 ;
|
![]() |
2
2
首先,让我们定义一些术语。按照通常的惯例,X轴指向右侧,Y轴指向上方(这样3号轮的推力就沿着X轴)。我们称车轮的运动为W 一 W 二 和W 三 ,每个定义使得w 我 >0表示车轮顺时针旋转。在您的示例中,如果w 一 <0,宽 二 = W 一 和W 三 =0,机器人将向+Y方向移动。 如果所有三个车轮以相同的速度旋转(W 一 = W 二 = W 三 )机器人会原地旋转。我猜你不想那样,所以 旋转的和必须为零:w 一 +W 二 +W 三 = 0 .
每个轮子的运动有助于机器人的运动;它们作为矢量添加:
所以,如果你从操纵杆上知道你想要的x和y,你有w 一 W 二 和W 三 . 正如我们已经看到的那样, 差异 W之间 一 和W 二 是什么驱动了Y运动。他们 总和 在X中驱动运动。 |
![]() |
3
1
正如你所认识到的,第一部分将找到一个合适的方程来表示任何电机设置的合成运动。根据你的控制水平和对你的电机速度的反馈,我建议你应该从写一个向量方程开始进行深入的过程:(定义正x为正前方) -m1cos(30)+m2cos(30)=x(负是因为1和2的功率必须相同,但向前运动的极性相反) m1sin(30)+m2sin(30)-m3=y(1和2的逆时针运动将导致机器人在y中向左移动,3的逆时针运动将导致机器人向右移动) 你需要加入的另一个输入是机器人的期望旋转,谢天谢地,M1+M2+M3=W(旋转速度) 你的操纵杆输入会给你x,y和w,所以你有3个方程,有3个未知数。 从这里,它是联立方程,所以你可能最终得到多个解,但这些通常可以根据可能的电机速度等限制。 一个例子是 rec::robotino::com::OmniDrive Class -此方法的源代码也可用… |
![]() |
4
1
虽然这个系统可以用数学来解决,但在2002年,第一个团队857选择用机械方法来解决它。我们的控制系统使用三个操纵杆,它们的X轴构成一个等边三角形,把手被球窝臂取代,球窝臂与Y形轭相连。将每根杆的X轴直接映射到电机转速上,解决了控制系统的问题。作为一个优势,这个系统对于外行来说是非常直观的——把轭推到你想去的方向,旋转它来转动。 |
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |