这个赛季我们做的是哨兵机器人。作为电控负责人,从赛季初的方案设计到赛季末的赛场调试, 整个过程下来,积累了不少经验和教训。这篇文章算是对这个赛季的一个回顾。
底盘控制
哨兵底盘用的是麦轮方案,四轮独立驱动。底盘的控制看起来简单,实际上坑不少。 最开始我们用的是位置式 PID,效果不太理想,电机响应慢,转弯的时候有明显的延迟。 后来换成了增量式 PID,配合前馈控制,响应速度好了很多。
底盘还有一个容易被忽略的问题是轮子的磨损。麦轮的胶条磨了一段时间之后, 每个轮子的摩擦系数会不一样,导致走直线的时候会偏。这个只能靠定期更换胶条来解决, 没有什么软件上的捷径。
云台调试
云台是哨兵最关键的部分之一。我们的云台用的是 6020 电机,yaw 和 pitch 两个轴。 调 PID 的过程比较痛苦,尤其是 pitch 轴,因为重力的影响,上电和断电的状态完全不一样。
最终我们用了串级 PID 的方案:外环控制角度,内环控制角速度。内环的响应频率要足够高, 否则云台会抖。另外,pitch 轴加了一个重力补偿的前馈项,解决了掉电下垂的问题。
发射机构
发射机构的难点在于拨弹轮的控制。拨弹速度要和射击频率匹配,太快会卡弹,太慢会掉节奏。 我们试了好几种方案,最后用的是定频发射 + 拨弹轮电流环控制。电流环的好处是可以检测到卡弹, 一旦电流异常就反转退弹,避免堵死。
通信与可靠性
哨兵是全自动机器人,没有操作手,所以通信的可靠性特别重要。 我们用的是 CAN 总线做内部通信,裁判系统做外部通信。 赛季中遇到过一次 CAN 总线丢包的问题,排查了很久才发现是线束接触不良。
这个问题给我最大的教训是:电控系统里,硬件的问题往往比软件更隐蔽。 代码写得再好,线没接牢也是白搭。所以后来我们加了很多硬件检查的流程, 比如每次装机之前都要逐个测试每根线的通断。
一些反思
这个赛季最大的收获不是技术上的,而是工程思维上的。 RoboMaster 比赛要求的不是某个模块做到极致,而是整个系统的可靠性。 一个能稳定运行的哨兵,比一个单项性能很强但经常出故障的哨兵,对比赛的贡献更大。
下个赛季,我希望能在系统测试和文档记录上做得更好。 代码可以慢慢写,但好的工程习惯要从一开始就养成。