概览
我决定挑战一下,自己动手做一个。尽管这个想法并不新颖,但以前的作品基本上都是闭源的。我想改变这种状况,从头开始逆向工程并制作这一切。我的工作成果是完全开源的,请看下面的视频。
机械设计
立方体的机械设计与最初的 Cubli 基本相同,但也有一些细微的差别。主体结构由八个转角组件和六块面板组成。其中三块面板具有额外的功能,可支持电机和反作用力轮组件。所有部件都是在 Fusion 360 中绘制的。我的学生时代已经结束,因此不得不告别西门子 NX。
大多数结构部件都由不锈钢制成,强度极高。面板由铝制成,以减轻重量。这些部件不需要使用钢材,因为铝材组装结构的刚度将绰绰有余。
电机通过三个沉头螺钉连接到不锈钢桥上。电桥最终连接到其中一个铝面板上。
一个小轮毂安装在电机轴上,并用三个固定螺钉固定。这个轮毂至关重要:如果中心孔与三角形平面不垂直,轮子就无法与电机轴对准,从而导致振动和磨损。
使用三个沉头螺钉将反作用力轮安装到轮毂上。这一步需要反复试验,以纠正轮毂和轮子上的缺陷,这些缺陷可能会导致我前面提到的不对齐问题。我通过在轮毂和飞轮的水平接触面之间放置小纸片来解决这些问题,结果令人满意。毕竟,这些部件并不经常被拆开。
将一个小型径向球轴承插入其中一个面板,并用氰基丙烯酸酯(”超级”)胶水固定。该滚珠轴承将支撑电机轴的一端。轴的另一端也由电机本身的轴承支撑。
最后,将电机轴插入轴承中,用四个螺栓将电桥与面板连接起来。此过程重复两次。
这样就得到了半个立方体。其余的面板不需要任何特殊的组装步骤,可以直接组装。注意到其中一个电机相对于它所连接的电桥的方向不同吗?这样做的目的是:简化稍后的布线工作。
这样就形成了一个坚固但相对轻巧的结构。铝制面板本身相对较弱,但组装在一起后不会移动。
机电设计
关于电机和电机控制器,使用的是 Maxon “EC flat “系列电机。虽然有可能找到更便宜的替代品,但电机及其控制器都是关键部件,我不想吝啬。立方体将通过对电机施加扭矩来实现平衡。许多直流电机的数据表甚至都没有说明扭矩常数(扭矩常数定义了扭矩和电流之间的关系),许多无刷电机控制器(如ESC系列)只提供速度控制,而不提供电流控制。要实现这个项目,这两者都是必不可少的,因此选择高质量的元件是显而易见的。
我选择了一个 60 W 的电机和一个兼容的四象限电机控制器,该控制器可提供高达 6 A 的电流。虽然这远远超出了电机的额定功率,但电机短暂过载是没有问题的。此外,控制器内置 I2t 算法,可在绕组温度过高时限制电机电流。由于平衡时的电流通常很低,因此在正常运行时,立方体不太可能达到这些极限。
电池方面,我选择了6S1P锂聚合物电池。电机的额定电压为 24 V,因此六芯锂电池(标称电压 22.2 V)非常适合这里。电池容量为 1300 mAh(29 Wh),正常情况下足以运行立方体至少一个小时。
主板是定制设计,集成了三个电机控制器、IMU(隐藏式)、ESP32-S3 开发板以及一些辅助元件,如保护电路和稳压器。开发板还将为 RC 伺服电机提供输出,从而为立方体增加机械制动器。机械制动器将使立方体能够自行跳到平衡位置。目前没有完成制动器的设计开发。
组装电路板非常有趣。我首先涂上焊膏,然后放置表面贴装部件。在小型烤箱中回流后,我手工焊接了所有通孔部件。
我还设计了一块安装电池的电路板。它要简单得多:有两个 XT60 连接器和两个开关(并联接线,因为电流高达 18 A),用于打开和关闭立方体。
控制器设计与调试
这两个目标是相互冲突的:如果将车轮速度保持在接近零的 “愿望” 过于强烈,立方体就会倒下。就像前面提到的,如果 “欲望”太弱,车轮可能会失控。因此,诀窍在于找到既能实现良好的平衡性能和干扰抑制,又能保持较低轮速的增益。
控制器中还有一种优雅的机制来处理恒定错误。什么是恒定误差?例如,由于立方体重量分布的不完美,配置的平衡位置和实际平衡位置之间可能存在微小差异。在 PID(比例-积分-导数)控制器中,积分部分处理这类误差。该控制器使用轮子的位置(度数)作为积分!在我看来,这实际上是一种非常直观的积分控制器可视化方式。当我修改立方体的重量分布时(在视频中:在立方体上放一个西红柿),你可以看到反作用力轮的速度先增大后减小:它们正在移动到一个新的位置,以补偿增大的误差!
到目前为止,调试和调整控制器是最大的代码相关工作。和其他有经验的控制工程师一样,我花了几天时间翻转各种信号的符号,才把它们弄对。然后,我必须为控制器找到合适的增益。Bobrow 论文中描述的调整方法对我不起作用,所以我只好用手调整增益。请注意,与 Bobrow 的魔方相比,我的魔方使用了不同的轮子,因此不可能重复使用增益。通过迭代程序,我最终得到了增益,从而实现了视频中显示的稳定性能。
GPL 3.0
仓库 & 下载
可以在Github中获取开源仓库: