接着如下两篇关于Mini Cheetah的介绍文章:

  • MIT Mini Cheetah 的驱动与结构原理解读以及对尺寸效应的思考
  • MIT Mini Cheetah的关节驱动器为何选用减速比为6的单级内嵌式行星减速器?

本文主要来谈一谈Mini Cheetah的关节驱动器中所采用的单编码器(AMS AS5047P)方案的利弊及其工作原理。写这篇文章,首先是觉得Benj的单编码器方案挺有意思,想把其思路理顺展现给大家;其次是纠正我之前在评论中给别人回复关于该传感器的错误信息 @布只岛拿戈 ;最后要万分感谢 @张文质所提供的实际开发中的宝贵经验与正确信息。

相关背景

通常在机器人关节驱动器中,我们采用双编码器方案,即两个编码器安装在电机端和输出端,1)电机端做电机拖动的FOC(Filed Oriented Control),即提供FOC矢量控制算法的位置信号输入;2)输出端则用来在机器人运行或者开机校准时提供关节的绝对位置信息。

而在带扭矩传感器的关节驱动器中(例如串联弹性驱动器SEA,或者工业机械臂Kuka LWR iiwa的关节驱动器),则会采用三编码器或者双编码器+应变片的多传感器方案。

同时,因为机器人关节输出端单圈式的工作特性+减少电机端FOC校准的次数+避免掉电后重新校准等一系列原因,我们一般会采用单圈式绝对式编码器,而面对诸如电机端的多圈式工况,我们一般会选择在程序端手动计数(圈数)。目前,考虑到驱动器集成的紧凑度(要求编码器厚度薄&中空直径大)以及可控的成本,一般很少看见多圈式绝对编码器(是指通过绝对的机械位置记录圈数的多圈式)的使用。

单编码器使用的利弊&工作原理

c7a4df1d2aeb8f0e2040476bbd54541d.png
Mini Cheetah的单编码器安装位置

从上图中可以看到,整个关节仅使用了一个AS5047P绝对值式编码器,并且其安装在永磁体转子上,即测量电机端的绝对位置。采用这样的单编码器方案,最大的利处在于极大地降低了整体驱动关节的实现成本——减少四足机器人实现所花的银子,这是Benj做Cheetah的mini版本的一大初衷。串联弹性驱动器(SEA)之所以昂贵的原因之一,就是因为其方案需要用到3个编码器,且因为需要保持SEA中弹性体一定的高刚度(4000+Nm/rad的数量级),相应的编码器需要用到较高精度的位数来保持测量到扭矩的分辨率,一般较好的选择是Renishaw的19位磁编,相应的价格也很美丽,在250欧/支左右,而SEA中如果使用了三只Renishaw,相应单关节中编码器的成本就在6000RMB左右。

那么单编码器方案是如何工作的呢?会不会也有相应的缺陷?

首先因为该绝对值编码器在电机端的缘故,电机拖动FOC所需要的位置信息

相应得到解决;接着Benj在底层代码中,写了一段相应的电机端圈数
手动计数的函数,理论上关节输出端的绝对位置
将由
得到,这里相应的减速比为6;最后,其驱动器的力控是通过电流环实现,和编码器无关。而这样的单编码器方案也会带来一定的缺陷,诸如在mini cheetah的应用中,机器人在每次开机校准寻找关节输出零点时,必须保持特定的姿态(这里具体是紧贴地面下蹲),让关节端处于较小的角度(在减速比6的情况下,即是在0-60°内)。也仅此,电机端编码器测量的0°才是关节输出端真正的0°,否则,则可能对应的是60°/120°/180°/240°/300°。

最后,工业机器人即工业机械臂上为什么一般不会采用单编码器的方案呢?最主要的原因是工业机械臂一般均为高减速比的方案,这里假设G=120,那么在做关节输出端的0点校准时,其相对应的有效物理校准范围是0-3°——如此的小偏角是很有操作难度的,况且大多数的工业应用是不允许在每次开机时,为了这个校准去改变机械臂的姿态的。故此,一般工业机器人会在关节输出端安装第二个角度编码器,当然,如果说能够保持较长时间编码器不掉电的工况,也是可以用单编码器的方案来降低成本的,毕竟关节0点的校准仅需要在初始安装做那么一次而已。(这边关于工业界的方案,期待各路高手的补充)

这篇文章是一篇小短文,大致梳理了下Benj使用的单编码器方案的利弊与原理,如若有不妥与补充之处,欢迎评论区留言交流。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐