理念1:比赛没有玄学,机器人也不会紧张,真正导致出bug的往往是因为测试环境和实际应用环境不一致
举例1:机器人刚开电的时候刷RFID卡距离正常,但每次底盘上电后RFID刷卡距离急剧缩短,看似很诡异,一旦找到复现规律,就方便定位问题,最终发现是因为底盘上电时,电机启动电流较大,而且在RFID安装的位置有电机的电源线和中心板,干扰了RFID模块的运行
总结1:测试一定要尽可能模拟真实环境
举例2:英雄机器人启动失败,有时启动出现取弹机构的控制电机疯转抬起机构,在没有改代码的情况下出现概率从1%逐渐上升到50%(大概2周的时间越来越高),嵌软组小伙伴debug发现启动时偶尔那一路can回出现奇怪的数据导致电机接收到错误数据抬起,后查明是因为板子的一个电容虚焊导致can芯片初始供电不稳定,一旦供电稳定则成功启动通讯正常,如不稳定can就会输出奇怪的数据,重新焊了一遍与can芯片相关的元件后恢复正常启动
总结2:看似玄学的问题,都是有原因的 |