阅读416 返回首页    go 阿里云 go 技术社区[云栖]


《仿人机器人原理与实战》一1.5 反射弧“小魔怪”

本节书摘来异步社区《仿人机器人原理与实战》一书中的第1章 ,第1.5节,作者布莱恩·伯杰伦(Bryan Bergeron) 托马斯B. 塔尔博特(Thomas B. Talbot) 王伟 魏洪兴 刘斐 译, 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 反射弧“小魔怪”

如上所述,这里给出的是最简单的机器人电路。你也许注意到例子里并没有用中断或者复杂的算法。毫无疑问,将大量代码减少到几行是有可能的,且能够实现位翻转操作,希望你能做到。但是,对我们的目的来说,用简单的整数运算就能达到目的了。
然而在实践中,即使简单的机器人也会被贴上“多学科综合”和“问题重生”的标签。因此,机器人偶尔也会有小故障。假设一个舵机在不规律地运行,有时会产生流畅的反射,有时只是跳动几秒钟。代码可能是完美的,布线也是无可挑剔的。以上这些条件对于一个机器人的完全正常工作是必要的,但却不是充分条件。
在编程中0和1都是相当标准的,但是每一个物理装置都是独一无二的,甚至是一个瞬时接触开关。此外,即使是最简单的操作方法在操作的前几毫秒内也会出现混沌。拿瞬时按钮S1来说。当按钮处于按下状态时,电触点相互之间猛烈撞击之后快速反弹,在前几毫秒内形成约100多次电弧。如果微控制器采样频率足够高,它就会记录下相互矛盾的数据,例如第一次读数为开,接下来的两次或三次读数为闭。
可以用硬件方法或软件方法防止开关反跳,从而减少读数抖动。在硬件方面,按照电阻–电容(RC)滤波器的形式增加电阻和电容,可以节省处理器时间,但需要电路板空间和额外的器件花销。在软件方面,只需要开关稳定下来,我们可以编写一个单独的延迟(delay)声明来实现。然而,当一个反射弧涉及多个传感器时,仅仅等待微控制器完全关闭并不是最好的方法。
当机器人工作异常时,另一个需要检查的是电源供应。来自舵机的故障会影响微控制器的供电吗?如果你不确定,可以考虑在Arduino的电源接点上安装旁路电容器或者给舵机和微处理器单独供电。
最重要的是要知道一些简单的零件并不是完美的,更不用说复杂的传感器。当你调试仿人机器人或其他机器人的电路和软件时,要研究和理解零件的运行原理,特别是在打开和关闭时,算法往往容易出错。

最后更新:2017-06-21 10:02:16

  上一篇:go  想和太阳肩并肩?扒一扒那些上天入海的阿里小二
  下一篇:go  《仿人机器人原理与实战》一1.4 反射弧实验进阶