前几天小米的铁蛋,又让四足机器人火了一把。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);         // 16bitspi->frequency(12000000);  // 12Mspi->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波形”,获取源码。

MIT四足机器人MIT Cheetah的硬件框架相关推荐

  1. 【转载】MIT四足机器人Cheetah 3控制方案笔记

    转载:知乎 Wenboxing https://zhuanlan.zhihu.com/p/190028074 这里写自定义目录标题 MIT四足机器人Cheetah 3控制方案理解笔记(1)--摆动腿控 ...

  2. MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制

    在"MIT四足机器人Cheetah 3控制方案理解笔记(1)"中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器.此外, ...

  3. MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制、单刚体模型平衡控制器

    之前一段时间在阅读MIT四足机器人Cheetah 3以及Mini Cheetah控制方案的相关论文,在此处做一些笔记.Cheetah 3与Mini Cheetah的控制方案大同小异,此处先以Cheet ...

  4. 【四足机器人】从零开始搭建四足机器人mini cheetah仿真环境(零)准备工作

    文章目录 一.准备工作 1.pybullet 2.mini cheetah 的模型 3.urdf文件解析 一.准备工作 1.pybullet 我们的仿真环境基于pybullet,因此需要先安装好pyb ...

  5. 2021-09-29破解小米“铁蛋”,只需9999元,你也可以做一个四足机器人!

    https://www.eet-china.com/news/202109291008.html 2021-09-29破解小米"铁蛋",只需9999元,你也可以做一个四足机器人! ...

  6. 第一篇----行走控制的研究现状:双足机器人四足机器人

    最近打算入门双足机器人.四足机器人,通过在网上搜索,整理一份比较全面的介绍目前发展状况的资料. 需要关注的几个学术大牛人物 Marc Raibert 网站为:MIT Leg Laboratory, 网 ...

  7. 小米CyberDog四足机器人的AI运动系统的实现

    2021年8月10日,雷军进行继宣布造车之后的第二次演讲. 在现场的展示中,小米发布了首款四足行走机器人--铁蛋,英文名CyberDog.这只"人类高质量宠物"可以行走.站立.小碎 ...

  8. 基于STM32与PCA9685制作四足机器人(代码开源)

            前言:本文为手把手教学基于STM32的四足机器人项目--JDY-31蓝牙控制,特别地,本次项目采用的是STM32作为MCU.四足机器人的支架为3D打印件,SG90舵机驱动机器人实现姿态 ...

  9. 并联四足机器人项目开源教程(六)--- Cheetah开源项目的代码框架移植

    这个是本人在大三期间做的项目 ---- 基于MIT的Cheetah方案设计的十二自由度并联四足机器人,这个项目获得过两个国家级奖项和一个省级奖项.接下来我会将这个机器人的控制部分所有代码进行开源,并配 ...

最新文章

  1. Oracle修改监听IP地址
  2. Hadoop MapReduce手机上网流量统计代码示例及运行结果演示
  3. 两种驱动系统运行的方式--分时的方式
  4. nginx做透明代理
  5. Struts2知识点总结
  6. Idea创建一个springboot多模块项目
  7. php加载lrc,javascript - 【求助】php如何获取虾米网的LRC地址?
  8. python beautifulsoup库_Python BeautifulSoup库使用
  9. Paraview 5.9.0升级为Paraview 5.10.0之后报错
  10. 20行Python代码爬取LOL全英雄皮肤图片
  11. 怎样抠图怎么把背景换成白色?几个步骤教你轻松掌握
  12. 手机端H5页面时间插件
  13. 计算机管理任务类别103,win7系统如何查看电脑的历史开关机时间|win7系统怎么查询电脑开机后运行多长时间...
  14. 总结学过的技术,实现加密注册,登录及过期不能访问,微信朋友圈功能,文章比较长,但是比较详细。
  15. python实现scp功能_如何在Python中进行scp?
  16. 详解SSD可靠性影响因素、原理和解决方法
  17. docker设置开启机自启动
  18. Matlab中meshgrid的用法简介
  19. 如何把word文件压缩到最小
  20. 一种基于柔性压力传感器的机械手驱动系统

热门文章

  1. Hadoop之hdfs操作
  2. macos 10.15 软件损坏/无法验证开发者
  3. 宏观经济及贵金属年报:经济温和复苏,金银宽幅震荡-20210104.PDF
  4. Matlab/Simulink 自动代码生成 基于模型设计学习教程(1)---- 环境配置
  5. 遍历文件夹(含子文件夹)方法
  6. Foo = Foo||Bar ,这行代码是什么意思?为什么要这样写?
  7. CF868F 分治优化dp
  8. 学习pathon工具安装
  9. 风寒感冒 风热感冒区别
  10. DHTMLX Gantt 甘特图 使用