MIT四足机器人MIT Cheetah的硬件框架

前几天小米的铁蛋,又让四足机器人火了一把。9999一台,这个价钱还挺香的。众所周知,国内的大部分四足机器狗的涌出,都是因为2019年,MIT的猎豹开源,从硬件到软件。国内四足机器人的研发也就上了一个台阶,也包括小米的铁蛋也是基于mit的Cheetah Mini。


最近看了一下mit的机器狗开源的关节,看了一下12个关节到控制器的是如何通信的。
简单的画了个图:
在这里插入图片描述

模块通信

  1. 12个关节驱动器,只运行了FOC的算法,对于命令和信息上报使用了CAN通信
  2. 一条腿(三个关节)为一路CAN,与SPIne进行通信,一个SPIne模块负责两条腿的CAN通信,并使用SPI和电脑信息交换。
  3. IMU用的是串口通信。
  4. 每个STM32还有独立串口通信,用于模块的设置与debug。

模块通信速率:

  1. 每路CAN的通信配置是1M。SPIne用两个STM32是因为带宽不够, 每个STM32有两路CAN, 每一路负责三个电机的通讯才达到1000Hz, 若一路负责两条腿六个电机,就达不到。
  2. SPIne 和电脑SPI通信的时钟为12M,通信频率为1000hz

通信数据:

can格式每帧数据8个byte。
SPIne->关节 指令内容(8字节):

  • 位置指令: 16bit
  • 速度指令: 12bit
  • kp: 12bit
  • kd: 12bit
  • 前馈转矩: 12bit

关节->SPIne 上报内容(5字节):

  • 位置信息: 16bit
  • 速度信息: 12bit
  • 电流(力矩): 12bit

PC->SPIne 指令内容(132字节):
一共是33个数据。6个关节的位置指令、速度指令、kp、kd、前馈转矩、两个flag和一个校验。

SPIne->PC 上报内容(60字节):
一共是15个数据,6个关节的位置和速度,两个flag,和一个校验.

mbedOS

mit狗的硬件的代码量都很小,像SPIne模块,基本只有数据的交互的处理。对于硬件驱动代码等等的,全靠mbedOS。

mbedOS是ARM打造、主打IoT的一整套软件解决方案,是一个针对ARM CortexM系列处理器的嵌入式开源生态。
官网:https://os.mbed.com/mbed-os/

感觉国内使用的很少,网上搜了一下,可能是因为没有中文网站,在线编译服务器在美国,云服务在在国外,推广力度小等原因。不过MbedOS编写的应用程序和arduino 一样简单,使用的是c++的面向对象,去抽象软硬件。

比如在SPIne模块中初始化spi:

void init_spi(void){
    SPISlave *spi = new SPISlave(PA_7, PA_6, PA_5, PA_4);
    spi->format(16, 0);         // 16bit
    spi->frequency(12000000);  // 12M
    spi->reply(0x0);
    cs.fall(&spi_isr);
    printf("done\n\r");
}

网上看见的一个CAN 总线的应用程序:

#include "mbed.h"
 
DigitalOut myled(D8);
CAN can1(PD_0, PD_1,500000);
int main() {
     CANMessage msg;
    while(1) {
   if(can1.read(msg)) {
            printf("Message received:id=%d,type=%d,%d\n", msg.id,msg.type,msg.data[0]);
            myled = !myled;
    }
    }
}

mit开源资料
电机控制器硬件:https://github.com/bgkatz/3phase_integrated
电机控制器软件:https://os.mbed.com/users/benkatz/code/Hobbyking_Cheetah_Compact_DRV8323/
SPIne硬件:https://github.com/bgkatz/SPIne
SPIne软件:https://os.mbed.com/users/benkatz/code/SPIne/

linux控制代码 Cheetah Mini
https://github.com/mit-biomimetics/Cheetah-Software


参考
https://blog.csdn.net/yaojiawan/article/details/82789970
https://zhuanlan.zhihu.com/p/79391139


被抛弃的写随笔公众号改写技术文章了,感兴趣的可以关注公众号:王崇卫

回复“QT波形”,获取源码。
在这里插入图片描述

  • 14
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MIT Cheetah 是麻省理工学院开发的一款四足机器人,它以线性电机驱动、电池供电、高速运动等特点而著名。MIT Cheetah 的源码解析主要涵盖了它的运动控制、感知、规划和执行等多个方面。 在运动控制方面,MIT Cheetah 的源码实现了其高速奔跑的核心功能。它使用模型预测控制(model predictive control, MPC)算法来实现动力学的运动规划和控制,通过不断调整腿部关节的位置和速度,使机器人能够保持平稳的奔跑姿态。同时,通过使用 IMU 和脚底的力传感器,MIT Cheetah 可以实时感知和调整机器人的姿态,以保持稳定的运动。 在感知方面,MIT Cheetah 的源码实现了机器人对周围环境的感知能力。它配备了激光雷达和摄像头等传感器,用于获取周围环境的三维点云数据和图像信息。通过对这些数据进行处理和分析,MIT Cheetah 可以实现目标检测、路径规划和避障等功能。 在规划和执行方面,MIT Cheetah 的源码利用感知数据和运动控制算法,实现了高效的路径规划和执行能力。通过使用运动学规划和动力学约束优化等算法,MIT Cheetah 可以根据当前的环境和任务要求,生成适合的运动轨迹,并通过电机控制器来实施执行。这样,MIT Cheetah 就能够在各种复杂的环境中实现高速奔跑和灵活的移动能力。 总的来说,MIT Cheetah 的源码解析包含了机器人的运动控制、感知、规划和执行等多个方面,通过对这些方面的深入研究和分析,可以更好地了解和应用这款先进的四足机器人

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值