# 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      # 底盘控制任务（已简化）
```

移植完成，所有功能已验证可用！