100 lines
2.6 KiB
Markdown
100 lines
2.6 KiB
Markdown
# Balance Chassis Module 移植完成
|
||
|
||
## 概述
|
||
|
||
已将 `ctrl_chassis` 任务中的底盘控制代码成功移植到 `balance_chassis` 模块中,实现了模块化的底盘控制系统。
|
||
|
||
## 主要功能
|
||
|
||
### 1. 电机支持
|
||
- **关节电机**: 4个LZ电机,用于关节控制
|
||
- **轮子电机**: 2个LK电机,用于轮子控制
|
||
|
||
### 2. CAN通信协议
|
||
|
||
#### 控制命令ID(接收)
|
||
- `ID 121`: 使能4个关节电机
|
||
- `ID 122`: 关节电机运控模式控制(8字节力矩数据)
|
||
- `ID 128`: 左轮电机控制命令(直接转发格式)
|
||
- `ID 129`: 右轮电机控制命令(直接转发格式)
|
||
|
||
#### 反馈数据ID(发送)
|
||
- `ID 124-127`: 关节电机反馈数据
|
||
- 转矩电流(2字节) + 位置(3字节) + 速度(3字节)
|
||
- `ID 130-131`: 轮子电机反馈数据
|
||
- 角度(2字节) + 速度(2字节) + 力矩电流(2字节) + 编码器(2字节)
|
||
|
||
### 3. 控制逻辑
|
||
|
||
#### 关节电机控制
|
||
- 如果收到控制命令,执行相应的运控模式控制
|
||
- 如果没有控制命令,电机进入松弛模式(relax)
|
||
|
||
#### 轮子电机控制
|
||
- 支持CAN命令直接转发到电机
|
||
- 如果没有控制命令,电机进入松弛模式(relax)
|
||
- 始终保持通信连接
|
||
|
||
### 4. 模块接口
|
||
|
||
```c
|
||
// 底盘初始化
|
||
int8_t Chassis_Init(Chassis_t *chassis, Chassis_Param_t *param);
|
||
|
||
// 更新底盘数据
|
||
int8_t Chassis_Update(Chassis_t *chassis);
|
||
|
||
// 使能底盘
|
||
int8_t Chassis_Enable(Chassis_t *chassis);
|
||
|
||
// 底盘松弛
|
||
int8_t Chassis_Relax(Chassis_t *chassis);
|
||
|
||
// 底盘控制处理(包括CAN通信)
|
||
int8_t Chassis_Ctrl(Chassis_t *chassis);
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
### 1. 配置电机参数
|
||
|
||
在 `config.c` 中已配置:
|
||
- 4个关节电机(LZ电机)
|
||
- 2个轮子电机(LK电机)
|
||
|
||
### 2. 任务集成
|
||
|
||
`ctrl_chassis` 任务已简化为:
|
||
```c
|
||
// 初始化底盘
|
||
Chassis_Init(&chassis, &chassis_param);
|
||
Chassis_Enable(&chassis);
|
||
|
||
// 主循环
|
||
while(1) {
|
||
Chassis_Update(&chassis); // 更新数据
|
||
Chassis_Ctrl(&chassis); // 处理控制和通信
|
||
}
|
||
```
|
||
|
||
## 特性优势
|
||
|
||
1. **模块化设计**: 底盘功能封装在独立模块中
|
||
2. **统一接口**: 提供清晰的API接口
|
||
3. **CAN转发**: 支持轮子电机命令直接转发
|
||
4. **通信保持**: 确保电机通信不断
|
||
5. **故障安全**: 无控制命令时自动松弛
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
User/
|
||
├── module/
|
||
│ ├── balance_chassis.h # 底盘模块头文件
|
||
│ ├── balance_chassis.c # 底盘模块实现
|
||
│ └── config.c # 电机参数配置(已更新)
|
||
└── task/
|
||
└── ctrl_chassis.c # 底盘控制任务(已简化)
|
||
```
|
||
|
||
移植完成,所有功能已验证可用! |