轮腿平衡步兵总结 - 电机篇


轮腿平衡步兵总结 - 电机篇

两种电机类型

直驱式电机

不带减速器的电机,这种电机优点在于编码器较为准确,不用进行减速比换算,故十分适合作为轮毂电机使用。缺点在于输出扭矩一般较小。

减速电机

带减速器的电机,优点在于能通过减速器来输出大力矩,缺点在于会降低位置估计精度,同时使输出轴转速下降,适合用于关节处需要较大力矩的地方。

轮毂电机

MF9025 电机

此为大多数学校使用的轮毂电机,电机通讯方式包含 CAN 通信以及 RS485 通信两种,我们使用的是 CAN 通信电机,控制方式选择为力控,线圈匝数为 16 匝。

关键参数

  • 额定电压

该参数为供电电压,24V 供电电压非常常见,但要注意不要正负极接反,这可能会弄坏电机。

  • 额定扭矩

该参数表明了力控时能够正常跟随给定扭矩的范围,也就是说,MF9025 电机再 0 - 2.42 N.M 力范围以内,都能进行准确的力矩跟随(经过测试确实是这样),但超过 2.42 N.M 力范围之后,发送的电流换算成力矩之后与实际电机反馈力矩不再相等。

  • 峰值扭矩

表明了电机输出的最大力矩,根据手册中的通信协议

电机发送电流最大值为 32A(注意这里是相电流而非母线电流),而扭矩常数为 0.32 N.m/A,这是否说明如果给电机发送 32A,那么电机输出力矩就是 10.24 N.m 呢?答案是否定的。该扭矩常数进行的换算只在额定扭矩范围以内有效。例如,发送的扭矩(发送的值会通过扭矩常数换算为电流)为 1.5N.m 的话,反馈扭矩也一定是 1.5N.m,但发送的扭矩为 4N.m(经扭矩常数换为电流)的话,反馈扭矩可能是 2.9N.m。发送扭矩为 10N.m 的话,反馈扭矩可能才是 4.5N.m,呈现非线性。故代码中可以按照 10.24N.m 来限制发送扭矩而不是 4.5N.m,将发送扭矩限制在 4.5N.m 可能会出现上不了坡的情况。

  • 额定转速

该参数决定了平衡步兵的移动速度,例如 490rpm _ 6.28 / 60 (转 rad/s) _ 0.11 (轮子半径) = 5.64 m/s,说明了平衡步兵最大移动速度为 5.64m/s,而实际上场的平衡步兵速度最大达到 2.5m/s,故该参数完全符合要求。

上位机关键调整

  • 电机 ID

  • 是否选择多电机模式(多电机模式下,有部分电机可能由于固件不是最新导致通信出问题,此时需要找售后拿最新固件更新)

  • 最大功率,可以限制最大功率输出,一般保持默认即可

  • 最大转速,限制了电机最大转速,可以根据假定平衡步兵最大移动速度设定,防止电机转速过大导致的机器人状态发散。

  • 高低电压保护,因为复活赛时存在 MOS 管坏了,导致电容给轮毂电机供电然后电机一直在保护状态的情况,我们把高低电压保护关了,这实际上不好,很容易损坏电机。

电机核心问题

  1. 通信问题,首先检查 ID 是否正确,如果在多电机模式下还需要检查一下固件是不是最新的(保证上位机多电机模式开启了)。该电机很容易出现通信丢帧情况(故 2023 赛季都是将两个轮毂电机单独放在一路)。

  2. 电机高低电压保护问题,事实上,我们在两种情况下遇到了这种问题,第一种是在没有上超级电容时,机器人在跑动过程中突然电机进入保护状态,这时候需要考虑是否是电源管理出了问题,导致电压稳不住。第二种是在上了超级电容之后,超级电容供电下,若电容电压过低,则会让轮毂电机进入保护状态。若必要,下赛季可以改成单电机控制,若发现电机报错了,可以及时发送特定信息消除电机错误状态,提高容错率。

关节电机

宇树 A1 电机

该电机为带行星减速器的电机,故可以提供较大力矩,通信方式为 RS485 通信,控制方式为力控。

关键参数

  • 最大扭矩

这个是指输出轴上的最大扭矩(电机输出扭矩*减速比),该最大扭矩表明了代码需要限制的最大扭矩(或者稍小一点),该值越大,机器人爆发力越强,可以起跳的高度也越高。

  • 减速比

该参数表中减速比为 9.0,而使用手册中减速比则为 9.1,实际使用时使用 9.1。编程中,需要将需要的输出轴扭矩除以减速比之后再发送(协议要求)。

  • 转矩常数

可以实现从扭矩到电流的转换,注意转换得到的电流值为相电流值而非母线电流值,故不可以直接利用此值作为稳压电流上限的参考。

上位机关键调整

  1. 电机 ID 修改,可以通过拨动机器人的关节来修改 ID,详细见使用手册。

  2. 电机基础功能测试

电机核心问题

  1. 关节电机通信要求的波特率为 4.8MHZ,这是一个很高的波特率,若电路接口不稳定,有可能会导致通信不通的情况(目前板子该 485 接口还是没什么问题的)。电机通信中,需要延时一段时间并通过 GPIO 口切换 RS485 的发收(半双工)。手册中的通信协议中,ModifyBit 应该是不要求的,但实际上应该设置为 0xFF,否则可能会有一定的问题。

  2. 该电机使用的是单圈绝对位置编码器(区别于双编码器),由于减速比为 1:9,故电机转动一周输出轴只转动了 40 度,这意味着,电机编码器位置不能唯一确认输出轴的位置,这就是为什么平衡步兵初始化时一定要先将腿收到上限位再标定初始化位置的原因。

  3. 关节电机因为平衡步兵一直站着需要一直堵转输出扭矩,故很容易一直发热,会导致电机温度过高进入电机保护,若反馈信息 MError 不等于 0,则说明进入了电机保护状态,此时需要将电机重新上电才能消除该状态。同时可以通过 Temp 来查看电机的温度,一般 65 度以上就会出现电机保护的情况。

海泰 HT04 电机

宇树 GO 电机

根据群里大佬们的描述,宇树 GO 电机主要存在以下问题:

  1. 瞬时大功率会导致电机失控,需要断电重启才行,我们使用的宇树 A1 电机因为两边均连接有稳压故可以避免该问题的出现,但听说 GO 电机不能避免(当前赛季还没测过)。主要原因是大功率会对 RS485 通信产生影响,群里大佬提出的建议是使用官方的 485 模块,便可以避免该问题的出现(需测试过才知道)。

文章作者: 闲梦溪
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 闲梦溪 !