机器人/真实世界传感器
本节涵盖传感器缺陷和这些组件在真实世界中的行为主题。
根本不存在“距离传感器”。那些通常被称为“距离传感器”或类似名称的组件,它们测量某些东西并从中提取距离信息。这种提取在特定情况下效果很好,但在许多其他情况下毫无价值。成功测量距离的关键是确切地了解你的传感器测量什么以及外部因素如何影响测量结果。这并不意味着你只需要知道传感器的精度,而是你需要知道使用了什么物理原理,以及物理定律对此原理说了什么。
我将介绍一些最常用的传感器以及适用于它们的物理定律。我不会深入解释物理学,因为有更好的资料来源(例如维基物理学书籍),只是足以让你了解你可能遇到的问题以及在哪里寻找解决方案。
这种类型的传感器检测距离最远几厘米的物体。这些传感器非常简单。它们由一个光源组成,通常是一个红外二极管,其信号可以被调制,以及一个光检测器,它可以像一个光敏二极管或晶体管一样简单,带有放大电路,或者是一个更复杂的集成电路,包括滤波器和 TTL 级别输出。
这些传感器通过检测发射光的反射来工作。检测到物体的距离取决于物体的许多特性
- 反射率/颜色:物体反射红外光的程度如何?每个物体都有一个颜色。绿色物体意味着它反射光波长,我们将其解释为绿色。这可能是一个相当大的范围。红外也是一种颜色。与任何其他颜色一样,有些物体反射红外,而另一些物体吸收红外。
- 表面光滑度:非常光滑的表面(如镜子)比粗糙表面反射的光更多。(例如,台球的黑球照片通常会显示一个白色的斑点,这是由 w:镜面反射 引起的)。
- 角度:表面偏离传感器的角度越大,反射到传感器之外的光就越多。
- 光源:其他光源,如灯泡或太阳,也会发出红外光。尤其是太阳,它可能会阻止红外传感器运行。
中距离传感器比短距离传感器稍微复杂一些。这些传感器由一个发出红外光的二极管组成,其信号被调制,接收器有一个透镜将反射光聚焦到一个光敏条带上。将传感器前后移动到物体方向会使反射光束沿着光敏条带移动。条带的电阻取决于光照射条带的位置。
它的范围与短距离传感器有相同的限制因素。
远距离传感器使用激光脉冲从发射器到物体再返回所需的时间。测量此飞行时间有几种方法,但大多数方法都涉及将发射的和接收的光脉冲进行相关。通过比较这两个数据的相位,可以提取非常精确的时间值。这些传感器可以在很宽的范围内运行,通常在几厘米到几公里之间。
它的范围也受到与先前红外传感器相同的方式限制。雾、烟和其他空气中的颗粒也会限制范围。
机器人中使用的摄像头通常是围绕 图像传感器 构建的。这些摄像头对红外光敏感,并且通常在镜头前有一个红外滤镜。廉价的网络摄像头可能不包含这种滤镜,这使得它们对阳光非常敏感。
这些传感器由(至少)两个安装在一定距离的摄像头组成。
这很少使用,因为解决 对应问题 很困难。
另请参阅 机器人:传感器:计算机视觉。
声音本质上是空气中的振动和压强差。这些振动按频率分为三组。第一组被称为次声,频率低于 20 Hz。第二组被称为超声,频率高于 20 kHz,在空气中上限为 2 MHz,在水中上限为 30 MHz。最后一组是通常所说的声音。这组范围在 20 Hz 到 20 kHz 之间,可以听到。虽然只有新生儿才能真正听到高达 20 kHz 的所有频率。你越老,能听到的频率就越少。
大多数传感器使用超声波,通常在 40 kHz 左右。这种信号听不见,但仍然易于使用(产生、检测等)。
如果声源和接收器相对于彼此静止,则接收器将听到与声源发射的相同的频率。但是,如果它们中的一个或两者相对于彼此移动,则接收器将检测到不同的频率。这种频率变化称为 多普勒效应。大多数人从经过的警车或救护车的警笛声中了解这种效应。当它们经过你身边时,你会听到一种声音,当它们远离你时,你会听到另一种稍微不同的声音。
计算接收器听到的频率很容易
其中
- = 接收器听到的频率
- = 声源发出的频率
- = 声速
- = 接收器的速度
- = 声源的速度
声速取决于它传播的介质及其温度。对于空气,在 0°C 时大约为 330m/s。当然,大多数情况下温度会比这更高。计算实际速度相当容易
其中
- = 当前温度下的实际速度。
- = 0°C 时的声速:330m/s。
- = 当前温度,单位为开尔文。
- = 273,15 K(这是 0°C 的开尔文温度)
这些传感器非常简单。理论上是这样。实际上,这些传感器可能很麻烦。在本节中,我将介绍在尝试使它们工作时可能会遇到的问题。
超声波距离传感器由 3 个主要部分组成:发射器、接收器和计时器。为了测量距离,计时器触发发射器,发射器发射一系列脉冲,然后计时器等待接收器检测到脉冲的反射并停止计时器。测得的时间除以 2,再乘以声速,结果是传感器和前方物体之间的距离。发射器以载波频率发送脉冲流。人类能听到的最高频率约为 20 kHz。为了避免不断的声音让人讨厌,选择更高的频率——40 kHz 是一个常见的频率。
接收器在接收到特定频率的信号时会触发。这并不一定就是发射器发送的信号。如果使用多个具有相同载波频率的超声波传感器,它们可以检测到彼此的信号。
声音不是直线传播,而是以三维扩展波的形式传播。当波遇到物体时,部分波会反弹并以相反方向的三维扩展波的形式再次传播。这种波很容易在消失之前多次反弹。因此,您很可能接收到传播轨迹远大于简单地从传感器前方的物体往返的脉冲。虽然可以通过让传感器在开始下一次测量之前等待一段时间来解决这个问题的一部分,但其他情况可能会产生难以纠正的错误测量值。例如,穿过门时可能会失败,因为传感器发射的脉冲从墙壁反射回传感器,从而显示传感器前方存在物体。一种纠正方法是使用另一个传感器,例如 IR 距离传感器,来查看是否真的存在物体。但是,这种解决方案也会带来另一个问题:应该相信哪个传感器? 3 个传感器允许您根据多数结果进行判断,但构建和连接此类系统会变得非常复杂,更不用说它对功耗的影响了。
计算声纳脉冲距离的公式如下:
343 m/s 是声速,我们需要将时间除以 2,因为声音是出去并返回的。
声纳传感器广泛可用,价格相对便宜,从 15 美元到 40 美元不等,具体取决于所需的范围。平均而言,中档声纳传感器的最大范围在 4 到 6 米之间。与红外或激光传感器不同,声纳传感器也有最小感知距离。这是因为距离测量基于声速,在非常短的范围内,声音进出返回的速度比电路能够响应的速度快。此最小距离因传感器而异,但通常在 2 到 5 厘米左右。同样与红外传感器不同,声纳传感器没有完美的“圆锥形”视野。由于声音作为三维压力波传播,因此传感器实际上有一个类似于围绕曲线包裹的 sinc 函数的范围。
声纳传感器在大型区域中非常适合防撞,但它们也有一些局限性。由于声音作为三维压力波传播并产生回声,因此您的机器人可能会看到实际上不在其路径上的东西。例如,在有角度的墙壁附近,声波可能会在返回声纳接收器之前多次反弹。这使得机器人难以知道哪个回声实际上是到最近障碍物的正确距离。
与之类似的是多个声纳传感器在同一区域运行的问题。如果附近声纳传感器的频率过于相似,它们可能会导致错误读数,因为传感器除了频率之外没有其他方法来区分它发出的脉冲和来自其他传感器发出的脉冲。
另一个常见问题是不同材料的吸声率和反射率之间的差异。如果您向一块布覆盖的墙壁(例如隔间)发射声纳脉冲,则该布很可能会吸收大量的声能,并且机器人根本无法看到该墙壁。另一方面,具有很高声反射率的地板可能会被登记为障碍物,而实际上它是一个清晰的平面。
这些传感器用于测量机器人相对于磁北的方位。重要的是要记住,磁北不完全等于地理北。它们相差几度。
地球的磁场非常弱。这意味着这些传感器在其他磁场附近无法正常工作。例如,扬声器会干扰读数。如果您使用这些传感器,最好将它们尽可能远离电机安装。虽然您无法屏蔽它们而不会使它们失效,但注意安装位置可以显着提高可靠性。
- (这些“探测器”如何检测石膏板后面的墙壁中的木材?)
- 传感器维基 http://sensorwiki.org/
- 超声波
- 机器人传感器
- "从 x86 迁移到 PowerPC,第 9 部分:传感器、传感器、传感器!" 建议为所有传感器使用光耦器进行隔离。