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

2024-03-04 00:10

本文主要是介绍[机器人-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 是一个为物联网设备和嵌入式系统提供的开源操作系统,具有低功耗、硬件抽象层、安全性、连接性、实时性和设备管理等特性。它简化了物联网设备的开发和部署过程,并提供丰富的开发工具和资源。

这篇关于[机器人-3]:开源MIT Min cheetah机械狗设计(三):嵌入式硬件设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771383

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。