16| 5
|
[项目] 【Arduino 动手做】MABEL——波士顿公司启发平衡腿机器人 |
细节 MABEL(电子调平多轴平衡机) 这是 MABEL 终于能够自己保持平衡后的第一个测试视频。MABEL 使用 YABR开源平衡固件作为基础,使用 PID 控制回路根据收到的 MPU-6050 角度数据做出计算决策,以确定如何保持直立。然后, PID 控制器将输出适当的校正值,并将该值解释为步进电机脉冲,使机器人前进或后退,以保持在所需的设定点(直立)。与 YABR 项目不同,我决定使用广泛使用的Arduino CNC Shield,以减少焊接并使基本上所有东西都即插即用。 您可以在 YABR 页面或我的博客上找到一些详细的构建指南, 我在其中解释了我为使新屏蔽兼容而所做的代码更改。 MABEL 与其他平衡机器人完全不同,它的腿可以移动,机器人不需要在固定位置运行。 这就是 Raspberry Pi 和伺服控制器发挥作用的地方。我用 python 编写了一个逆运动学类,它接受(X,Y)坐标并向后计算精确移动到该位置所需的每个机器人关节的角度。简而言之,因为我们知道每个腿部部分的长度是恒定的,所以我们可以使用 X 和 Y 分量作为三角形中的第三条线来绘制一个虚拟三角形,并使用余弦规则计算三角形中的角度。这里,上指大腿枢轴和小腿枢轴之间的距离(92 毫米),下指小腿枢轴到车轮中心的距离(75 毫米),X 和 Y 由用户提供(也以毫米为单位)。 ![]() 代码如下:
|
实际上,这意味着机器人可以在所有可用的轴上平移,这使得 MABEL 可以主动转移她的重心,抬起她的腿越过障碍物并保持身体水平并倾斜到角落,而所有这些在传统的刚性框架自平衡机器人上都是不可能的。 在硬件方面,MABEL 采用齿轮和轴承直接驱动,从而减轻了伺服电机最弱方向的负载,消除了伺服轴的晃动。这以前是个问题,因为我用的是亚马逊的便宜伺服电机,这让项目更容易上手。 如前所述,Arduino CNC 扩展板 + Arduino Uno 堆栈也用于处理实时计算和校正,这些计算和校正需要比树莓派本身的处理速度更快。CNC 扩展板特别有用,因为它允许无焊组装,并具有一个 I2c 分线器,方便 MPU-6050 插入,以及用于步进电机电缆的接头。 我使用的 NEMA 17 步进电机非常常见,在 3D 打印机、CNC 机床以及现在的 MABEL 中都有广泛的应用。步进电机的绝对定位能力意味着机器人可以直接、精确地向前和向后移动,而无需闭环控制,而直流电机则需要闭环控制。这使得编程变得简单,并且易于使用,现有的 YABR 固件能够以 1/4 微步进控制步进电机,从而提高平滑度。我使用的 A4988 驱动器还具有电流斩波功能,可以限制步进电机可用的电流以保护它们。我的电机额定电流为 1.5A,因此我测量了驱动器上 Vref 可变电阻两端的电压并将其设置为 0.96V - 最初设置得较低,但我发现在机器人遇到障碍物后,这个功率不足以让它继续前进。 现在它可以毫无问题地越过小障碍物,但是一旦伺服器主动移动 MABEL 的腿,将重量转移到负载最大的轮子上,保持她的身体水平并实现更先进的地形导航,情况会变得更好。 未来的计划... 同时实现平衡和腿部高度调节(即将推出) 动态转弯 臂(可能,安装孔已经存在) 视频游戏控制器遥控器,方便使用(即将推出) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
MABEL 用腿来加速和刹车! 所以我们又回到了英国,处于封锁状态,这意味着我有更多时间开发 MABEL。这次我把腿派上了用场,你可以在初步测试中看到,通过使用逆运动学脚本(写在上一篇文章中)移动腿,我们可以移动腿。这会改变机器人的重心,让我们可以向前或向后踢动机器人,从而更有效地加速和减速机器人。 目前,机器人腿部的上下移动相当困难,因为这容易导致机器人不稳定。我的解决方案是编写一个脚本来平滑伺服运动,这样可以让机器人在上下移动时更加稳定。 视频中的所有驱动都是通过移动腿部来改变重心 (CoM) 来实现的。这使得机器人比单纯改变电机转速更有效地加速。虽然还需要一些改进,但正在逐步实现: MABEL 开车!! 更新:MABEL 现在可以使用 Wiimote 作为控制器进行无线操控了。(稍后我会在主项目详情中发布代码,供大家一同搭建。)树莓派现在可以通过 USB 串行连接与 Arduino 通信,但由于 MABEL 纤薄的机身无法连接 USB 数据线,我不得不将电线直接焊接到树莓派和 Arduino 的焊点上。未来我想放弃 WiiMote,换用像 PS4 这样的新型控制器。使用操纵杆,我可以控制机器人的速度,从而实现更精确的移动和控制。MABEL 的下一步是使用方便的 PCA9865 伺服控制器和 Adafruit ServoKit Python 库,让伺服器在保持平衡的同时上下移动。MABEL 仍然有点摇晃,但我发现降低 Kd PID 常数有助于减少平衡时的振荡。 ![]() ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed