本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

国外大牛教你设计力量与可爱并存的动态四足机器人
发布时间:2020-07-31
分享到:
国外大牛教你设计力量与可爱并存的动态四足机器人
发布时间:2020-07-31
分享到:

描述
mjbots quad是一个小型的动态四足动物,就像MIT mini-Cheetah一样,但是根据Apache 2.0许可完全开源。它能够进行跳跃和奔跑等动态运动。

这是一个Raspberry Pi(4b或3b +)帽子,提供4个CAN-FD端口(最高5Mbps),一个低速CAN端口,一个IMU,一个从总线电压为Raspberry Pi供电的DC / DC转换器和一个端口连接nrf24l01模块。我还编写了一个全新的独立客户端库,该库是单个C ++ 11标头和没有依赖性的源文件。尽管可以在github中公开记录 SPI寄存器映射以编写自己的客户端库,但它可以让您以高性能的方式访问pi3hat的所有功能。我使用Quad A1在现场测试了此版本的开发板和库:

经过一些优化后,我能够获得一个完整的命令和查询所有12个伺服器,并读取到740us的IMU的完整周期:

 

如果您在树莓派的一个核心上执行此操作,那么剩下的3个核心就可以进行控制工作,并可以实现1kHz的更新速率。如前所述,使用pi3hat时,现在可以在mjbots.com上获得有关Quad A1的所有定制板和伺服器(现在价格大大降低的控制器和伺服器):

1、moteus控制器:79美元
2、mjbots电源分配器:$ 79
3、pi3hat:129美元
4、qdd100 beta:429美元

Quad A1标称能够进行激进的动态运动,但是到目前为止,唯一可以利用该步态的步态是尖锐的:准直并不是一种非常有效的移动方式,所以我想开始努力改善步态和跑步步态。我现在正在采取措施,所以这只是一个开始。首先,我要解决的问题是使平地低速行走更好。我浏览了我的旧录像,并发现了许多无法正常运行的情况:在所有这些情况下,发生的情况是在飞行阶段(地面上只有2条腿),身体最终翻倒了很远,导致其中一条飞行腿比预期的要早得多地着地。这会导致各种问题,因为腿部不在软件预期的位置,现在,由于早期的脚将身体向后推,身体的角向滚动速率更大。我认为,第一步应该至少可以在飞行阶段保持平衡。我最初的实验只是在一维中,并带有python脚本和matplotlib渲染:


关键思想是双重的。首先,要保持平衡点两侧的时间积分不变,其次,如果在飞行阶段没有加速度,这是微不足道的,因为这意味着中心经过的距离和时间支撑腿两侧的质量总和是相同的(无论如何,我的加速公式实际上不能在飞行阶段稳定地使机器人加速)。上面1D中的示例显示了两条腿都在地面上时发生的加速度,并且选择了飞行腿的正时,以便在当前速度下,两侧将花费相等的时间。我添加了一个可能足够好的启发式方法来处理加速导致速度反转的情况,在这种情况下,这会导致腿部切换顺序反转:


那时,我将算法扩展到2维,其中考虑了旋转速率和线性平移速率,并在机器人上实现了该算法。这只是将每对腿视为一条单独的“虚拟腿”,并计算质心到达两条姿态腿之间绘制的支撑线所需的时间,以决定何时抬起这些虚拟腿。在平坦的地面上效果非常好。现在无需付小费即可执行范围更广的演练:

 

还有很多工作要做,主要是为了更快地处理更广泛的地形。

 

外文原文:点击进入

声明:本文由Hackaday授权电路城翻译,系电路城的原创内容,转载请注明出处!

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论