IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> MIT四足机器人MIT Cheetah的硬件框架 -> 正文阅读

[嵌入式]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波形”,获取源码。
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:41:27  更:2021-08-22 13:41:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 18:16:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计