[机器人-1]:开源MIT Min cheetah机械狗设计(一):系统方案及硬件解析

目录

一、MIT Min cheetah机械狗系统设计

1.1 指标需求

1.2 系统框图

1)腿部硬件构成:机械狗每条腿 (共四条腿)

2) 数据通信转换板部分 2 STM32 * 2 CAN * (4 * 3):FOC算法

3)UP board 计算机板卡硬件组成

4)机械狗姿态估计反馈:

5)外部连接

6)核心算法实现部分


一、MIT Min cheetah机械狗系统设计

1.1 指标需求

在设计机械狗之前,首先第一步就是要有个输入需求,比如机械狗的尺寸,重量,奔跑速度各种姿态,控制方式等等,不然就无从谈起设计。这些具体的指标,我们默认是已知的。

比如重量的选择,速度的选择,这些都是要经过运动学和动力学的一个预先评估和仿真。

据介绍,MIT Min cheetah机械狗体重 9 公斤,由 12 台电机驱动,奔跑速度可达每秒 2.5 米。
研究人员表示,这样的体型刚刚好,满足研究者对这款机器狗的功能定位。
首先 9 公斤的体重保证体积不至于太“迷你”, 同时,可以避免因体型过大容易损坏的问题,
因此,9 公斤的体重非常合适,能够很好地吸收冲击,完成跳跃和落地等动作。
“人们没有意识到保持平衡是多么困难,”研究人员解释道,仅是为了保持站立,机械狗在每一秒中都要进行超过 30 次决策。
除了平衡、简单的运动能力,机器狗轻松应对摔倒、后空翻的能力都让这款四足机器人更加与众不同。

姿态的规划考虑

int bounding = 1;    // 跳跑
int pronking = 2;    // 四足跳跃
int standing = 4;    // 站立
int trotRunning = 5; // 对角小跑
int pacing = 8;      // 同侧溜步
int trotting = 9;

以上这些前期的指标需求都要提前进行拆解分析。

1.2 系统框图

根据需求指标,开始搭建系统框图如下:

MIT Min cheetah机械狗系统框图

1)腿部硬件构成:机械狗每条腿 (共四条腿)

3个电机控制(每个腿支持X/Y/Z三个方向运动,每个电机控制一个方向的运动)每个电机1颗STM32控制器控制,由于电机是根据腿部特别定制的,因此电机控制算法也需要自己实现,所用到的算法是FOC算法,因此腿部控制共用到了12个电机和12个STM32控制芯片,另外每个电机上又有2个编码器,一个用来给电机FOC控制做电气角度反馈,另一个用来测试关节位置。

2) 数据通信转换板部分 2 STM32 * 2 CAN * (4 * 3)FOC算法

所以12个STM32控制芯片只运行FOC算法,并用CAN总线与数据通信转换板通信, 转换板上有两个STM32负责打包CAN消息并用SPI协议发给UP board 计算机板卡,转换板之所以用两个STM32是因为带宽不够, 每个STM32有两路CAN总线, 每一路负责三个电机(一条腿)的通讯才能达到1000Hz, 若一路负责六个电机(两条腿)控,制频率只能降到约600Hz,响应太慢,对控制非常不利。

在机器人领域,FOC算法也可以应用于电机驱动系统,以实现对机器人关节的精确控制。机器人的关节通常由电机驱动,而FOC算法可以通过精确地控制电机的磁场和转子位置,实现对关节角度和力矩的准确控制

通过FOC算法,机器人可以实现对关节电流的精确控制,从而实现对关节角度和速度的准确控制。FOC算法利用传感器提供的反馈信息,例如编码器或传感器阵列,来确定电机的位置和速度,然后根据所需的控制指令计算并控制电机的电流。

FOC算法在机器人中的应用可以提高机器人的动态性能和精度,使其能够更好地适应各种任务和工作环境。在机器人的姿态控制、运动控制和力/力矩控制等方面,FOC算法都可以发挥重要作用,提高机器人的运动平滑性、稳定性和精确性。

总的来说,FOC算法在机器人中的应用可以实现电机驱动系统的高效、准确和可靠控制,提高机器人的运动和力学性能,为机器人的各种应用场景提供更好的表现和适应能力。

(1)腿部硬件STM32: 执行每个腿部运动的FOC算法。

(2)数据通信STM32:实现主控板与腿部控制单元之间的通信转换。

3)UP board 计算机板卡硬件组成

所有运动学和动力学算法都运行在UP board 计算机板卡中,核心就在于腿部的控制

每条腿有两种控制模式:

  • 摆动腿的轨迹跟踪模式:使用阻抗进行轨迹跟踪
  • 触地腿的力控模式:使用雅可比来将MPC控制器计算出的力映射到关节扭矩,另外还通过WBC进行了动力学前馈补偿。

换句话说也就是:如果腿处于腿在摆动中,则使用“摆动腿控制器”,如果腿处于腿在支撑中,则使用“力控支撑腿控制器”。

4)机械狗姿态估计反馈:

机械狗质心处装有IMU传感器,通过陀螺仪和加速度计感知机械狗位姿。

姿态估计用于估计机械狗的位置、速度和姿态:

  • 其中速度和位置作为反馈输入更好的跟随到机械狗质心轨迹
  • 姿态作为反馈输入用于支撑的平衡控制器。

对机械狗旋转的估计只需对原始数据稍作旋转坐标变换就可得到躯干的姿态与角速度。

对机械狗平动的估计方面,利用扩展卡尔曼滤波器结合IMU和腿部编码器进行二者的融合,得到质心位置速度。

5)外部连接

用户通过遥控器与机械狗本体建立无线连接下发指令控制机械狗,指令包括平动速度和转向率两个高级命令。


6)核心算法实现部分

(1)操作员通过遥控器给机械狗下发平动速度转向率命令

(2)机械狗接收到命令,质心CoM生成参考轨迹并传送给身体和腿部控制器。

(3)控制器根据用户输入命令和机器人状态,如果腿处于腿在摆动中,则使用“摆动腿控制器”,如果腿处于腿在支撑中,则使用“力控支撑腿控制器”

(4)力和位置指令被发送到STM32微控制器,用于将电机指令传递给机器人的每条腿。

(5)如果对机械狗还有更高的要求,比如自主导航,视觉辅助等,则可以给计算机板卡加个工控机运行SLAM或者AI算法。

SLAM是“同步定位与地图构建”(Simultaneous Localization and Mapping)的缩写,是一种在机器人领域中常见的算法。SLAM算法通过机器人自身的感知数据,如激光雷达、摄像头、惯性测量单元(IMU)等,来同时实现定位机器人的位置和构建周围环境的地图

SLAM算法的主要目标是解决机器人在未知环境中进行自主导航时的定位和环境建模问题。它需要通过不断地观测和跟踪环境中的特征点或地标,从而实时计算出机器人的位置和姿态,并在此过程中构建和更新地图。

SLAM算法可以分为前端(前方观测)和后端(地图构建和优化)两个阶段。在前端阶段,算法会根据传感器数据提取环境中的特征点,并进行数据关联和运动估计,从而计算出机器人的位置和姿态。在后端阶段,算法会通过优化算法对地图进行更新、优化和维护,以提高地图的准确性和一致性。

SLAM算法在机器人自主导航、无人驾驶、增强现实等领域中具有广泛的应用。它为机器人提供了实时的定位信息和环境地图,使其能够更好地感知和理解周围环境,并做出相应的决策和行动。

人形机器人——继智能手机和互联网之后下一个时代的风口 (baidu.com)

【干货|开源MIT Min cheetah机械狗设计(一)】|系统方案及硬件解析 - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/270633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】explicit关键字

explicit关键字通常用于声明构造,是为了防止编译器进行隐式类型转换。 当加上explicit关键字后,只能显示的调用构造函数

Android---Kotlin 学习009

继承 在 java 里如果一个类没有被 final 关键字修饰,那么它都是可以被继承的。而在 kotlin 中,类默认都是封闭的,要让某个类开放继承,必须使用 open 关键字修饰它,否则会编译报错。此外在子类中,如果要复写…

09-为Java开疆拓土的ZGC深度剖析

文章目录 引言ZGC出现背景STW带来的问题手机系统(Android) 显示卡顿证券交易系统实时性要求大数据平台(Hadoop集群性能) 垃圾回收器的发展 ZGC介绍ZGC中JVM内存布局和设计为什么这么设计? ZGC支持NUMA(了解即可) ZGC的核心概念指针着色技术&a…

智能优化算法应用:基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工蜂鸟算法4.实验参数设定5.算法结果6.…

Redis源码精读:字符串

文章目录 前言代码位置核心类型SDS结构获取sds字符串的元数据的宏获取字符串长度重新设置sds长度创建字符串感悟最后 前言 Redis中实现了sds(simple dynamic string)这种字符串,它比c语言标准库的char*字符串更加实用 代码位置 src/sdc.h …

Ascon加解密算法分析

参数定义 加密架构图 整个过程是在处理320bits的数据,所以在最开始需要对原始的数据进行一个初始化,获得320bits的数据块, 图里看到的pa和pb都是在做置换(对320bits的数据进行一个置换) 置换(Permutation&…

不可能得到的最短骰子序列

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你一个长度为 n 的整数数组 rolls 和一个整数 k 。你扔一个 k 面的骰子 n 次,…

Vue 封装echarts饼状图(Pie)组件

目的&#xff1a;减少重复代码&#xff0c;便于维护 效果显示&#xff1a; 组件代码 <template><div class"ldw-data-content-box"><div class"ldw-chilren-box"><div class"title"><div>{{ title }}</div>…

【隐私保护】使用Python从文本中删除个人信息:第一部分

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

Flowable-升级为7.0.0.M2-第一节

目录 升级jdk升级springboot到3.1.3升级数据库连接池druid-spring-boot-3-starter到1.2.20升级mybatis-plus到3.5.3.2升级flowable到7.0.0.M2 最近有些读者一直问flowable如何升级到7.0.0.M2&#xff0c;接下来我就一步步的把flowable升级到7.0.0.M2 升级jdk flowable7.x采用的…

《PySpark大数据分析实战》-19.NumPy介绍ndarray介绍

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

微信小程序合集更更更之echarts雷达图!

实现效果 写在最后&#x1f352; 更多相关内容&#xff0c;关注&#x1f365;苏苏的bug&#xff0c;&#x1f361;苏苏的github&#xff0c;&#x1f36a;苏苏的码云~

VMware17Pro虚拟机安装Linux CentOS 7.9(龙蜥)教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装Linux4.1 新建虚拟机4.2 安装操作系统4.2.1 选择 ISO 映像文件4.2.2 开启虚拟机4.2.3 选择语言4.2.4 软件选择4.2.5 禁用KDUMP4.2.6 安装位置配置4.2.7 网络和主机名配置…

OpenAI换血大震动始末:“ChatGPT之父”奥特曼,缘何被“扫地出门”?

近期&#xff0c;AI业界发生了一场“大地震”。作为聊天机器人ChatGPT的开发者&#xff0c;OpenAI无疑是最受关注的人工智能公司之一。就是这家公司的联合创始人、CEO、有“ChatGPT之父”之称的阿尔特曼在“疯狂的5天”里&#xff0c;经历了被闪电免职、加入微软、最终又官复原…

微服务架构<2>

在电商项目中&#xff0c;我们针对一些核心业务&#xff0c;比较复杂的业务需要做一些设计以及优化的过程首先我们针对于订单的模块拆分了2个子模块1.order-curr实时下单业务 2.order-his 做一些历史的订单归档我们的订单业务 >商品添加至购物车 >购物车结算--> 订单…

SpringBoot整合JWT+Spring Security+Redis实现登录拦截(二)权限认证

上篇博文中我们已经实现了登录拦截&#xff0c;接下来我们继续补充代码&#xff0c;实现权限的认证 一、RBAC权限模型 什么事RBAC权限模型&#xff1f; RBAC权限模型&#xff08;Role-Based Access Control&#xff09;即&#xff1a;基于角色的权限访问控制。在RBAC中&#x…

MySQL——进阶篇

二、进阶篇&#x1f6a9; 1. 存储引擎&#x1f346; 1.1 MSQL体系结构 连接层&#xff1a; 连接处理&#xff0c;连接认证&#xff0c;每个客户端的权限 服务层&#xff1a; 绝大部分核心功能&#xff0c;可跨存储引擎 可插拔存储引擎&#xff1a; 需要的时候可以添加或拔掉…

代码随想录算法训练营第二十七天|组合总和等

77 组合 1 描述 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 2 代码 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:path []rst…

新型智慧城市解决方案:PPT全文56页,附下载

关键词&#xff1a;智慧城市解决方案&#xff0c;智慧城市管理技术&#xff0c;智慧城市建设&#xff0c;数字城市建设 一、智慧城市宏观形势 1、政策支持&#xff1a;出台了一系列政策&#xff0c;鼓励和支持智慧城市的发展。这些政策为智慧城市的建设提供了政策保障和资金支…

网络安全法规和模型

基础 ISO信息安全&#xff1a;为数据处理系统建立和采取技术、管理的安全保护&#xff0c;保护计算机硬件、软件、数据不因偶然的或恶意的原因而受到破坏、更改、泄露 信息安全属性&#xff1a; CIA三元组&#xff1a;保密性、完整性、可用性 其他属性&#xff1a;真实性、不…