其他杂项,技巧和窍门#

“零 “方位角位置和赛前模块测试#

为了确保你的机器人运行正常,你必须检查以确保所有的东西保持一致。这包括确保车轮旋转编码器保持数值正确。有几件东西在机械上可能出错,使车轮错位,编码器可能松动,驱动编码器的齿轮可能损坏,以及其他一些事情。为了防止这些事情影响我们的比赛,我们创造了一种方法来检查我们的方位角。

我们做了一些尝试,制作物理测量工具,以简化检查车轮是否正确对齐的工作。经过几个复杂的程序,我们开发了一个简单的方法来确认车轮是否与框架平行。我们将机器人倾斜在一边,在告诉车轮指向前方后,在每个车轮上放一个水平仪。

我们在测试模式中添加了一个按钮,让所有的车轮相对于机器人朝向零度。我们还添加了一个按钮来缓慢地旋转车轮。这个程序给了我们几个反馈点。我们可以观察车轮相对旋转的速度。我们可以倾听表示机械变化的声音。我们可以观察运动是否平稳。它还允许我们将轮子从正面的位置移开,然后按下按钮,再次面向正面。

赛前测试的另一个部分是在手动下运行模块并把车子抬离地面。这使我们能够检查除了旋转功能之外,驱动马达功能的任何机械变化。

保护好你的重置按钮!#

重置按钮:一种必要的邪恶。它们应该只在你希望它们被按下的时候被按下,对吗?嗯,这不是人们应该经常考虑的问题。相信我们,我们也掉进了这个陷阱。

当我们的2020机器人落地后,我们的司机发现了一个很酷的技巧,使他的前进方向变成了他的后退方向。我们的电子面板在这个机器人的底部,在一个非常、非常、非常紧凑的空间。我们的两个陀螺仪的复位按钮有些开放,很容易被任何东西触及。当我们的司机走过护盾发生器时,复位按钮会被按下,以场为中心就出了问题。每次复位时,他都会给编程组一个漂亮的小笑脸,说 “前面不再是前面了”。我们无法理解为什么陀螺仪不工作,会出现电源循环和复位。最后我们把机器人倒过来,发现一根电缆直接靠在导航板的复位按钮上。

记录你的CAN线连接结构#

尽管CAN总线允许设备以几乎任何顺序连接,但了解网络布局仍然非常重要。为自己省去了调试电子器件时的许多痛苦和折磨! 下面是我们的一些提示,可以有效地做到这一点。

  1. 注意每个设备的类型、ID和名称。

  2. 追踪从RoboRio到PDP(或任何你的CAN总线的 “末端”)的连接。

  3. 记录每个设备在电路中的连接方式,与你追踪它们的顺序相同。

下面是一个示例

杂项-1 杂项-2

通过有条不紊地写下这些信息,在以下方面将变得无限简单和快速:a.为机器人上的这些电子装置编程;b.诊断有问题的装置并更换;c.修复断裂的电线和连接。请做这件简单的事情。我们没有这样做,直到我们被迫这样做。那是一个巨大的错误。在2020年我们第一次比赛的前一天,我们的一个电机控制器挂掉了。我们花了至少10个小时来解决这个问题。在我们确切地知道CAN网络是什么样子的时候,我们才开始走正确的道路。认真地说,这有助于使调试工作大大加快! 不要让你的整个电子板从你的机器人中掉出来阻止你参加下一场比赛。我们没有;至少,在2020年没有。

了解你的电子元件#

设置、设置、设置……电子器件是我们通过编程与之对接的一大堆零零碎碎的东西。我们总是在寻找那个将比以前更好的传感器。也许你找到了一个新的东西,它能做到 “哦耶”(也就是你真正需要的东西)!但现在你必须可靠地控制它。现在你必须可靠地控制它。通常情况下,我们最终只使用了不到10%的一些电子产品的可用功能。这可能是一个电机控制器,一个陀螺仪,一个激光雷达,一个接近传感器,或一个视觉处理器。你必须确定电子产品的能力和限制。它从强制性的电子装置开始:Roborio ,PDP ,和VRM。除了最基本的操作外,它们都有可能有帮助的编程。它们所输出的错误信息可以帮助你减少任何滞后时间。诊断能力可能让你防止断电。

你还应该在机器人上配备各种传感器。在2019年的建造季节,我们发现一个反射线传感器也可以用来检测舱口。该传感器会反射适当的光量,以示边缘在24英寸以内。有了这个传感器的正确角度,我们就可以知道我们是否到达一个舱口。请自由探索其他用途。多年来,我们使用了各种数字传感器来指示不同事物的位置。我们也使用模拟传感器来给我们提供有用的反馈。激光雷达和视觉处理可以给我们提供距离。加速器和陀螺仪可以告诉你是否碰到了什么东西。一个压力传感器可以告诉你气动装置中的空气量是多少。编码器可以告诉你一个位置或一个速度。了解你的电子装置的能力是使性能最大化的唯一途径。

了解电子产品的局限性也是可靠的编程所必须的。这方面的一个简单例子是知道大多数CTRE设备有可清除的错误代码。有时 “粘性故障 “会阻止系统全速工作,因为预期的数据没有足够快地到达。为了获得一个传感器、编码器或子处理器的局限性,测试往往是必要的。你总是需要知道任何反馈设备在哪一点上不再可靠。它可能是一个速度,一个距离,或一个角度。

投资于好的控制器——或者说手柄……#

说真的,Swerve开起来真是太AMAZING辣!但当且仅当你有一个和swerve一样AMAZING的控制器”我们所说的AMAZING是什么意思,”你问?它可以归结为 “不粘连 “的操纵杆。相当最小的死区。想让机器人在以45°行驶时做 “胜利旋转 “吗?你的操纵杆需要有一个完整的运动范围。

杂项-3

这是一个理想的死区的例子。事实上,没有控制器是完美的。但是,AMAZING的控制器是非常接近的。如果你想拥有更自然的控制感觉,那么你应该实现径向死区插值。请看这个网站来了解更多。 http://blog.hypersect.com/interpreting-analog-sticks/

如果你想测试和/或配置你的控制器,你可以在Windows 10中这样做。请查看此链接以了解更多信息:https://www.howtogeek.com/241421/how-to-calibrate-your-gaming-controller-in-windows-10/

有道理吧?为了充分体验swerve的史诗性,你需要有高质量的输入。如果用一个差劲的控制器来驾驶,swerve根本不可能达到它的最佳状态。

严肃地说,实施断电保护!#

断电保护对swerve非常重要,不仅是在自动驾驶中,而且在整个比赛中。如果我们发生断电,我们可能会失去两个陀螺仪。一旦电压进入6.3至6.8伏的范围,我们的陀螺仪将失去动力,因为RoboRio的6伏轨道关闭。在4.5到6.3伏的范围内,除了操纵杆与RoboRio的通信外,其他都会丢失。PigeonIMU可以由Talon供电,因此对断电的电压条件更容易容忍。当由Talon供电时,PigeonIMU不会失去遥测功能,直到电压下降到4.5伏以下,这时RoboRio就会关闭。如果RoboRio关闭,将没有CANbus通信,直到它再次重启。

杂项-4

有两种方法可以最大限度地减少断电的机会。第一种方法(是多用途的)是ramprate。它通过迫使电机控制器输出电压 “上升 “来降低电机瞬时输出的电流,从而避免了断电。ramprate的另一个目的是,通过阻止车轮过快加速,防止制动牵引。防止断电的第二个方法是使用电流限制。我们使用Falcon500和集成的Talon电机控制器。一旦我们找到正确的水平来设置限制,它就能完美地工作。我们将这种方法用于我们的大部分电机,从shooter到我们的攀爬机到我们的驱动系统。在我们的shooter上,电流限制工作得非常好,因为我们可以让它迅速达到速度,而不需要消耗太多的电流并断电。

处理陀螺仪的故障情况#

我们的机器人上有两个陀螺仪。在一个无法使用的情况下,我们仍然能够进行导航。这是个备份。我们将两个偏航读数平均在一起。如果其中一个陀螺仪发生故障,系统将使用另一个陀螺仪的读数。如果两个陀螺仪都坏了,系统将切换到以机器人为中心的模式,直到至少有一个陀螺仪被恢复。

杂项-5

我们确实在程序中加入了陀螺仪复位功能,以考虑到这种可能性,但在比赛中还没有也不应该需要这种功能。这个紧急陀螺仪复位功能是用来将机器人的航向恢复到0度,以便进行 “以场地为中心 “的操作。在比赛中不应该依赖这个功能是有原因的。如果两个陀螺仪都失灵,你很可能会遇到更大的问题。陀螺仪并不总是 “随机 “失效。它背后总是有一个原因。重置陀螺仪并不能解决电子机器人的问题。也可能是代码中的一个错误。依靠传感器复位功能而不是解决真正的问题是很危险的。请不要听我们说错。拥有紧急复位功能是很重要的;但是,它们应该只在真正的紧急情况下使用。

THE END… or is it…? (It might be… who knows…)