[机器人-3]:开源MIT Min cheetah机械狗设计(三):嵌入式硬件设计

目录

概述:

1、硬件组成

2、通信速率

3、通信协议

4、mbedOS


概述:

以1条腿进行设计,其它腿也一样:

腿部硬件组成

1、硬件组成

1)UP board计算机板卡(Linux OS)

腿部控制器基于Cortex-A8的处理器执行腿部控制任务,如笛卡尔阻抗的控制或联合PD控制。负责完成较高的腿部频率和高速关节速度摇摆时的滤波、高带宽跟踪相位以及其他位置控制动作。最后,每条腿控制器发送扭矩指令并接收无刷电机上的编码器测量值。可以看出UP board计算机板卡的核心功能就是进行运动学和动力学运算。

2)调试PC机 (Windows或Linux OS):

使用第二代酷睿i7处理器,运行Ubuntu Linux(内核4.1.33)和配置抢占RT补丁。UP board通过以太网与笔记本电脑通信,UP board使用轻量级接收用户命令并记录数据通信和编组(LCM)。LCM将允许其他计算机用于视觉、规划和其他易于与计算机通信的任务未来。

3)数据转换板(mbed OS)

使用的是STM32的F4系列,一个STM32F4通过CAN总线负责两条腿,一个腿由3个STM32控制板通过FOC算法控制腿部三个电机,而且只运行了FOC算法。

FOC(Field-Oriented Control,磁场定向控制)是一种控制方法,用于精确控制电动机的速度和扭矩。它常用于控制电动机中的磁场方向和磁场强度,以实现高效能和精确控制。

在机器人中,FOC算法常用于控制电机以驱动关节和执行器。下面是机器人中应用FOC算法的基本步骤:

  1. 确定电机参数:首先需要获取电机的参数,包括电感、电阻、惯性等。这些参数将用于计算控制算法中的各个参数值。

  2. 电流控制:为了实现FOC算法,我们需要对电机的两相电流进行控制。为此,使用PI(Proportional-Integral,比例积分)控制器来计算电压引导电机电流。通过调整PI控制器的增益值,可以实现对电流的精确控制。

  3. 磁场定向:通过计算电机角度和速度,执行磁场定向控制。磁场定向控制是指将电机中的磁场方向与控制算法中的期望方向相匹配。通过控制电机的磁场方向,可以使电机在特定的速度和扭矩条件下运行。

  4. 速度闭环控制:为了实现更精确的速度控制,可以使用速度闭环控制。这将利用编码器或传感器来提供电机的实际速度反馈,然后与期望速度进行比较并相应地调整控制策略。

  5. 动态响应和调整:FOC算法还可以根据机器人的动态需求进行实时调整。根据控制目标和机器人的操作环境,可以进一步优化控制算法的参数和增益,以实现所需的动态响应。

总的来说,FOC算法是一种在机器人电机控制中常用的精确控制方法。通过控制电机的磁场方向和强度,结合速度闭环控制和动态调整,FOC算法可以实现高效能和精确的机器人动作控制。

数据转换板电路板

4)IMU传感器:

用的是串口通信,每个STM32还有独立串口通信,用于模块的设置与debug。

IMU传感器示意图

5)电机控制器:

硬件层面的信息如下:

24V供电、40A峰值相电流(由于电机热力学限制,实际数值低于40A)、CAN总线通信

接收数据转换板转发来的信息(力矩、位置、速度及位置和速度的增益),并且上传反馈信息(位置、速度以及基于电流环测量的扭矩)最大通信频率:4kHz/驱动器数目 (可通过增加CAN总线数目扩大通信带宽)

电机控制器

MCU最小系统–STM32F446RE

MCU最小系统电路图

三相驱动桥

6)位置传感器(磁编码器)

磁编码器安装位置

编码器电路图

7)STM32和UP board供电系统

24V 5ah电池,右侧的外壳被移除,显示了内置的BMS,输出端子和18650电池

供电板PCB

机器人供电板,产生隔离的5V逻辑电源,给腿和计算机供电,并有直通晶体管,实现电机电源和逻辑电源的通断。电源的底面(右)安装FASTON端子,与内置到电池相匹配。

2、通信速率

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

3、通信协议

can格式每帧数据8个byte。
数据转换板->腿部控制器(STM32) 指令内容(8字节):

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

腿部控制器(STM32)->数据转换板 上报内容(5字节):

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

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

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

4、mbedOS

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

mbedOS是ARM打造、主打IoT的一整套软件解决方案,是一个针对ARM CortexM系列处理器的嵌入式开源生态。

MbedOS编写的应用程序和arduino 一样简单,使用的是c++的面向对象,去抽象软硬件。

mbedOS 是一款开源的操作系统,专为物联网(IoT)设备和嵌入式系统而设计。它由阿姆尔公司(Arm)开发,并提供免费使用。mbedOS 提供了一个全面的软件平台,使开发人员能够轻松构建、测试和部署物联网设备。

mbedOS 具有以下特点和功能:

  1. 低功耗:mbedOS 设计用于低功耗设备,在处理器和外设之间实现了有效的电源管理,以延长电池寿命

  2. 硬件抽象层:mbedOS 提供了硬件抽象层(HAL),使开发人员能够轻松访问和控制硬件资源,无需关心底层细节。

  3. 安全性:mbedOS 提供了强大的安全功能,包括加密、认证和安全连接,以保护物联网设备和数据的安全性

  4. 连接性:mbedOS 支持各种网络连接,包括Wi-Fi、蓝牙、以太网和移动网络,使物联网设备能够与云服务和其他设备进行通信。

  5. 实时性:mbedOS 提供了实时性能,能够处理实时任务和事件,适用于对时间敏感的应用。

  6. 设备管理:mbedOS 提供了设备管理功能,使开发人员能够远程管理和监控物联网设备,包括固件升级和故障排除

  7. 开发工具:mbedOS 配套提供了丰富的开发工具,包括集成开发环境(IDE)、调试器和仿真器,以简化开发流程

总的来说,mbedOS 是一个为物联网设备和嵌入式系统提供的开源操作系统,具有低功耗、硬件抽象层、安全性、连接性、实时性和设备管理等特性。它简化了物联网设备的开发和部署过程,并提供丰富的开发工具和资源。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测 目录 多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多…

傻瓜式教学Docker 使用docker compose部署 php nginx mysql

首先你可以准备这个三个服务,也可以在docker compose 文件中 直接拉去指定镜像,这里演示的是镜像服务已经在本地安装好了,提供如下: PHP # 设置基础镜像 FROM php:8.2-fpm# install dependencies RUN apt-get update && apt-get install -y \vim \libzip-dev \libpng…

Rebel + LlamaIndex 构建基于知识图谱的查询引擎

目录 一、Rebel解析非结构化数据 模型介绍 三元组 核心代码 二、LlamaIndex 构建知识图谱 三、整体处理流程 四、运行效果 五、完整代码 六、知识拓展 一、Rebel解析非结构化数据 模型介绍 Rebel模型是为端到端语言生成(REBEL)关系提取而设计的。它利用基于 BART 模…

JS常用事件大全

事件 事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行。 注意:事件名称大小写敏感。若是事件监听方式,则在事件名的前面取消on。 1. 鼠标事件 给btn按钮添加点击事件,点击弹出 你好! 2. 键盘事件…

接口测试 — 11.logging日志模块处理流程

1、概括理解 了解了四大组件的基本定义之后,我们通过图示的方式来理解下信息的传递过程: 也就是获取的日志信息,进入到Logger日志器中,传递给处理器确定要输出到哪里,然后进行过滤器筛选,通过后再按照定义…

利用STM32和可控硅控制220V加热电路

利用STM32和可控硅控制220V加热电路 Chapter1 利用STM32和可控硅控制220V加热电路一、错误原理图二、正确原理图 Chapter2 可控硅驱动芯片MOC3081/3061Chapter3 一个MOC3061的可控硅触发电路的分析Chapter4 可控硅的两种触发方式:移相触发和过零触发1、过零触发2、移…

将遗留系统分解为微服务:第 2 部分

在当今不断发展的技术环境中,从整体架构向微服务的转变对于许多企业来说都是一项战略举措。这在报销计算系统领域尤其重要。正如我在上一篇文章第 1 部分应用 Strangler 模式将遗留系统分解为微服务-CSDN博客中提到的,让我们探讨如何有效管理这种转变。 …

华为设备VRP系统管理

为了满足企业业务对网络的需求,网络设备中的系统文件需要不断进行升级。另外,网络设备中的配置文件也需要时常进行备份,以防设备故障或其他灾害给业务带来损害。在升级和备份系统文件或配置文件时,经常会使用FTP和TFTP来传输文件。…

vue3项目 - 目录调整

省流 删除默认文件,修改代码 ---> 调整目录结构 ---> 添加全局样式和图片,安装预处理器 具体步骤: 1. 删除初始化的默认文件,修改剩余代码 清空 assets、components、stores、views文件夹里的文件,仅留核心文件…

四. 基于环视Camera的BEV感知算法-PETR

目录 前言0. 简述1. 算法动机&开创性思路2. 主体结构3. 损失函数4. 性能对比5. PETRv2总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》,链接。记录下个人学习笔记,仅供自己参考 本次课程我们来学习下课程第四章——基…

2023年12月24日学习总结

今日to do list: 做kaggle上面的流量预测项目☠️ 学习时不刷手机🤡 okkkkkkkkkkkkkk 开始👍🍎 0、我在干什么? 我在预测一个名字叫做elborn基站的下行链路流量,用过去29天的数据预测未来10天的数据 1、…

python调用DALL·E绘画

实现用gpt的api和他对话后,我们试着调用DALLE的api进行绘画 参考文档 OpenAI API 运行代码 from openai import OpenAIclient OpenAI()user_prompt input("请输入您想生成的图片描述: ")response client.images.generate(model"dall-e-3"…