...Min cheetah机械狗设计(三)】|腿部电机控制器代码程序详细解析_百度...

发布网友 发布时间:2024-10-23 04:06

我来回答

1个回答

热心网友 时间:2024-10-23 04:55

【导读】上一篇文章重点分析了腿部控制器的核心程序FOC算法,但是没有分析整个控制器的代码流程,会让人比较迷糊,本文是对上一篇文章的一个补充,将对控制器的整个程序进行一个大概的解析,让大家从一个宏观的视角来看电机控制器程序的执行过程,程序解读将从main函数开始。

开源程序代码:

一、电机控制器命令流程框图

电机控制器的功能是执行FOC算法来对电机进行控制:

1、接收指令

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

2、反馈信息

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

3、PC调试机命令下发

6个关节的位置和速度。

二、代码解析1、开头部分

1)这个三相高带宽的电机控制程序是用来控制机器人的

2)程序编写的作者和参与者

3)固件库文件所在的网址

4)程序是用 STM32F446编写的,也可以用其他STM32的MCU编写

5)三项逆变器用的是TI的TI DRV8323芯片

2、设备的模式定义

复位模式,校准编码器模式,电机运行模式,电机参数设置模式,编码器输出模式

3、用户数据以及编码器查询表数据

4、结构体初始化

一些数据需要存储的位置,GPIO初始化,FOC控制器结构体实例化,温度观测器,串口接口,和PC机串口通信

5、CAN通信、SPI通信和DRV832x 芯片配置

CAN通信的设置(引脚,发送和接收),SPI通信配置,DRV832x 芯片配置,AM5147磁编码器配置。

6、一些变量和标志位

7、mian函数入口

8、CAN通信指令解析及状态反馈

9、一些打印调试信息

10、进入转矩模式

11、进入三相线序校准和编码器线性校准程序

这个在上一篇文章已经具体对order_phases(&spi,&gpio,&controller,&prefs)和calibrate(&spi,&gpio,&controller,&prefs);这两个核心函数进行了分析,请参见专栏上一篇文章。

12、中断函数周期运行FOC算法

中断函数,FOC算法就是在这个中断中以40 kHz的频率反复执行

三、结束

下一章将开始机械狗的运动学和动力学部分分析,属于机械狗上层规划的部分,设计大量的数学知识,运动控制算法等,对此感兴趣的请自行恶补基础知识(*^_^*)。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com