机器人永远不会直走


19

我正在使用2个相同的直流电动机和脚轮。电机连接到L293D电机驱动器,并由RPi控制。

机器人没有直行。它向右转向。我两个电机都以100%PWM运行

我试图纠正的错误:

  1. 我将轮子的PWM调整得更快,达到了99%,但是机器人只是转向了另一侧。
  2. 我调整了机器人的重量,问题仍然存在。

我曾经试图在没有负载的情况下运行电动机。正如我后来告诉我的,这是导致直流电动机空载运行的原因吗?

如果不是这个原因,请告诉我如何解决此问题,而无需使用任何传感器进行控制。


在我所使用的差分驱动器配置中,很可能会发生这种情况。两个电动机之间的微小差异将导致机器人旋转。
Demetris

4
欢迎使用开环控制。您需要自己(眼睛)的传感器来自己检测问题,您如何看待机器人无需附加传感器就能检测到问题?用传感器闭合控制回路是必经之路。
弯曲单元

1
如果要避开传感器,步进电机可能会工作。

@bdares-如果没有传感器,机器人如何知道何时改正方向?如果一个轮子撞到摩擦力低的区域(例如,灰尘)并打滑,则机器人会转弯并且永远无法校正。
Chuck

当您说没有传感器时,这是否意味着没有外部感应,还是您还排除了车轮上的编码器?因为这是解决此问题的典型方法。
JamesRyan

Answers:


29

我张贴这是一个答案,因为它是的答案。

你不能

正如@ BendingUnit22所提到的,您正在尝试“开环”控制。噪音和变化将意味着您的机器人将永远不会驱动完美的直线。

电机可能具有不同的绕组电阻(不同的驱动电流/扭矩),车轮可能具有不同的尺寸,车轮可能具有不同的牵引特性,脚轮轴承可能是“硬”的,而脚轮在车辆启动时可能不会完全笔直,地板的表面摩擦特性可能会有所不同(阅读:灰尘或地毯)-清单不胜枚举。

解决您无法控制的事情的唯一方法(我在上面提到的内容以及更多内容)是使用反馈传感器。

您可以通过更正我列出的问题来尝试获得更好的开环性能,但是还有更多问题,您根本无法控制一切。


5
究竟!问题出在“我正在使用2个相同的直流电动机”语句中。它们永远不会完全相同,正如@Chuck所提到的,还有很多其他注意事项。机器人技术中唯一可以确定的是错误和噪音都会出现。
Ryan Loggerythm '16

2
在同一轴上使用两个轮子仍会比仅使用两个相同电动机产生更好的结果,不是吗?
约翰·德沃夏克

@JanDvorak-当您说“两个轮子在同一轴上”时,我不确定您的意思,但是我相信可以理解/暗示这两个轮子在同一几何轴上。如果您指的是相同的控制轴(如在一台电动机中)或(再次暗示一台电动机),那么我要指出的是,不可能在锁轴的情况下执行差速驱动转向。要使一台电动机将两个车轮控制到不同的速度,就需要一个差速器(和其他设备),并且差速器有效地将车轴分成两部分,而您又回到了平方。
Chuck

我确实是说一根车轴,对不起。我不知道有不能走直线路的要求吗?
John Dvorak

2
@JanDvorak-我相信OP的机器人是微型鼠标式的车辆。即使只需要直行并使用一个轴,其他所有错误源仍然适用。如果一个车轮的直径比另一个车轮大0.1%,那么它每转一圈的路径长度将比较小的轮胎大0.1%。举例来说,标称车轮尺寸为10cm,车轮间距为10cm。较大的轮胎为10.01厘米,每转行驶的距离为0.0314厘米。对于轴距,机器人转一圈旋转0.12度。一根轮胎上的灰尘很容易产生0.01厘米的灰尘。
Chuck

6

由于已经提到了开闭环问题,因此我将对“我曾经尝试在无负载的情况下运行直流电动机”进行评论。
是的,这样做可能会损坏电动机,但也可能带负载损坏或破坏电动机。破坏来自电流和由此产生的温度。如果没有烟雾,并且电动机发出一些明显的气味,则很可能没有损坏。根据我的经验,我可以说爱好级直流电动机将在温度超过100°C时开始退化。然后您会清楚地注意到这样的温度

编辑:
我确实再三考虑了一下,我可能会想到一个您的同事可能一直在谈论的想法。有一种特殊的交流电动机。这些是非励磁同步电动机。基本上,它们是为自我毁灭而建造的。如果您给它们加电,它们将开始加速直到它们自行分解。但是,如果您对它们施加沉重的负载,则由于它们必须施加大量负载,它们无法达到此状态。因此,您可以出于合理目的使用它们。无论如何,您在应用程序中绝对不会使用这种电动机。


1
我也认为,尤其是对于业余爱好电机,当您将其加热到足以察觉到它发烫或闻起来很怪异时,您可能已经烧掉了绕组的绝缘层。像很多电气设备一样,它要么工作正常,要么损坏。中间情况不多。
Chuck

没有这种烟雾或任何可见的损坏。因此,当我运行不到半分钟时,它可能没有受到损坏。
鼠标

2

您所描述的称为开环控制,为此您需要两个完全相同的电动机,两个完全相同的轮子,机器人的重心位于两个轮子之间的中心,完美的对称电路,最后是一个完美的均匀水平面继续运行。

为此,通常需要订购数十或数百个零件,然后进行大量测试,以找到两个在功率和速度与电压和PWM方面最接近的电动机。对车轮,电机控制器和其他零件执行相同的操作。

此过程称为合并-在进行这些测试后,您可以根据其功能或特征对其进行排序。与更改为闭环模型相比,正常运行在时间和资源上都比昂贵得多,甚至不考虑恶劣的地面条件。

但是,这是无需额外的传感器即可满足您的要求的一种方法。


1

尽管它永远不会是完美的,但是可能有一种简单的方法可以使它更精确。

如果在100%-100%的情况下汽车始终向左转,而在100%-99%的情况下汽车始终向右转,那么您应该能够通过尝试介于两者之间的值来对此进行改进。

从100%-99.5%开始,然后根据结果继续100%-99.75%或100%-99.25%。这应该很快会收敛到您将“平均”连续进行的情况。


0

好吧,如果问题不在于每个车轮的硬件或软件差异,那么可能是自然缺陷的一个问题,无论是您构建机器人的方式还是电动机的生产方式。连接可能不牢固,或者RPI可能没有输出相同的电流。您可能想使用速度控制器。请先尝试。

如果这不起作用,则您的制造商可能没有制造相同的电动机,您可能只需要校准电动机。这可能意味着缩放强电动机的值,以便强电动机的100%功率与弱电动机匹配。


2
使用相同的电机控制器将无法解决当前的问题。问题是机器人技术的核心,即“如何纠正错误”?
Ryan Loggerythm '16

我听说直流电动机的前进速度会稍慢一些。同样,重量的任何不平衡都可能导致向一侧移动。更不用说摩擦等其他事情了。做任何“相同的”事情都行不通。步进器可能会做得更好,但是您不应该太快开车或其他任何事情……
保罗

-2

带直流电动机的车轮应在前面b。而后侧的成本轮。然后它只会向前移动


欢迎来到Arslan Robotics。在Stack Exchange上,我们正在寻找提供一些解释和上下文的全面答案。很短的答案不能做到这一点,因此,请编辑您的答案以解释为什么它是正确的,最好是引用。不包含说明的答案可能会被删除。
Mark Booth
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.