Dummy-Robot硬件设计深度剖析
本文深度解析Dummy-Robot项目的完整硬件架构,涵盖核心控制器REF板设计、步进电机驱动器硬件、Peak示教器无线控制方案以及机械结构3D建模四大核心模块。REF控制器采用STM32F405RGTx作为主控芯片,集成了双路CAN总线、IMU传感器和OLED显示接口;步进电机驱动器基于STM32F103和TB67H450驱动芯片实现闭环控制;Peak示教器通过UDP/TCP/CAN多协议无线通信实现远程操控;机械结构采用6自由度谐波减速器设计,工作半径达420mm,重复定位精度±0.1mm。整个系统体现了工业级机器人的专业水准。
核心控制器REF板设计原理
Dummy-Robot项目的核心控制器REF板是整个机械臂系统的"大脑",采用了STMicroelectronics的STM32F405RGTx高性能微控制器作为主控芯片。该控制器板的设计体现了工业级机器人控制器的专业水准,集成了丰富的接口资源和强大的处理能力。
硬件架构设计
REF控制器板采用模块化设计理念,分为核心板和底板两部分:
核心板主要特性:
- STM32F405RGTx微控制器,基于ARM Cortex-M4内核,主频168MHz
- 1MB Flash存储器,192KB RAM(128KB SRAM + 64KB CCMRAM)
- 硬件浮点运算单元(FPU),支持DSP指令集
- 丰富的通信接口:CAN、USB、UART、I2C、SPI
底板扩展功能:
- 双路CAN总线接口,用于连接6个关节电机和夹爪
- OLED显示屏接口(I2C),用于实时状态显示
- MPU6050六轴IMU传感器接口(I2C),用于姿态感知
- 多路PWM输出,支持舵机控制
- 用户按键和状态指示灯
- 非易失存储器接口,用于参数保存
电源管理系统
REF板的电源设计采用三级稳压架构:
电源管理系统具备过流保护、欠压锁定和软启动功能,确保系统稳定运行。
通信总线架构
REF控制器采用CAN总线作为主要通信方式,构建了高效的分布式控制系统:
| 节点ID | 设备类型 | 功能描述 | 通信速率 |
|---|---|---|---|
| 1-6 | 关节电机 | 6个关节的闭环步进电机 | 1Mbps |
| 7 | 夹爪 | 末端执行器控制 | 1Mbps |
| 0 | 广播 | 同步指令和系统状态 | 1Mbps |
CAN总线协议采用自定义的二进制格式,具备以下特点:
- 8字节数据帧,高效传输
- 指令响应机制,确保可靠性
- 心跳包检测,实时监控节点状态
- 错误重传机制,保证数据完整性
实时控制系统
REF板运行FreeRTOS实时操作系统,任务调度设计如下:
运动控制算法
REF控制器实现了完整的6自由度机械臂运动学算法:
正运动学(Forward Kinematics)
// DH参数表定义
const DHParameters dh_params = {
{theta1, d1, a1, alpha1},
{theta2, d2, a2, alpha2},
// ... 6个关节参数
};
// 正运动学计算
Pose6D calculateForwardKinematics(Joint6D joints) {
Matrix4x4 T = Matrix4x4::Identity();
for (int i = 0; i < 6; i++) {
T = T * dhTransform(dh_params[i], joints[i]);
}
return extractPose(T);
}
逆运动学(Inverse Kinematics) 采用解析法求解,基于Pieper准则,确保三相邻关节轴交于一点或三轴线平行,从而得到封闭解。
固件架构设计
REF控制器的固件采用分层架构:
安全保护机制
REF控制器集成了多重安全保护措施:
- 软件看门狗:防止程序跑飞
- 电流监测:实时监控电机电流,防止过载
- 位置限位:软件限制各关节运动范围
- 紧急停止:硬件急停按钮和软件急停指令
- 温度监测:监控控制器工作温度
开发调试接口
为便于开发和调试,REF板提供了丰富的调试接口:
- SWD调试接口,支持在线调试和编程
- USB虚拟串口,用于调试信息输出
- Bootloader模式,支持固件升级
- 丰富的状态指示灯,便于故障诊断
REF控制器的设计充分考虑了工业机器人的可靠性、实时性和扩展性要求,为Dummy-Robot提供了强大的控制核心。其模块化设计和丰富的接口资源也便于二次开发和功能扩展。
步进电机驱动器硬件架构
Dummy-Robot项目中的步进电机驱动器采用了高度集成化的闭环控制架构,基于STM32F103微控制器和TB67H450驱动芯片构建,实现了精确的力矩、速度和位置三环控制。该驱动器支持CAN总线通信,能够实现多电机同步控制,为机械臂的精确运动提供了可靠的硬件基础。
核心硬件组成架构
步进电机驱动器的硬件架构采用了模块化设计,主要包括以下几个核心模块:
主控单元 - STM32F103CBT6
驱动器采用STM32F103CBT6作为主控芯片,该芯片基于ARM Cortex-M3内核,运行频率72MHz,具备128KB Flash和20KB RAM,为复杂的控制算法提供了充足的计算资源。
关键外设配置:
- 定时器系统:TIM1用于100Hz的系统定时,TIM4用于20kHz的闭环控制中断
- ADC模块:用于电流采样和电压监测
- CAN控制器:实现高速总线通信,支持多节点同步
- GPIO端口:连接驱动芯片控制信号和编码器接口
功率驱动模块 - TB67H450
TB67H450是一款高性能的双H桥驱动芯片,专为步进电机设计,具有以下特性:
| 参数 | 规格 | 说明 |
|---|---|---|
| 工作电压 | 10-44V | 支持宽电压输入 |
| 峰值电流 | 4.5A | 每相最大驱动能力 |
| 导通电阻 | 0.4Ω | 低导通损耗 |
| 保护功能 | 过流、过热、欠压 | 全面的保护机制 |
驱动芯片通过PWM信号控制电机相电流,实现精确的力矩控制:
// TB67H450驱动接口示例
void TB67H450::DacOutputVoltage(uint16_t voltageA, uint16_t voltageB)
{
// 设置A相PWM占空比
TIM1->CCR1 = voltageA;
TIM1->CCR2 = voltageB;
// 根据电流方向设置控制信号
SetInputA(voltageA > 0, voltageA < 0);
SetInputB(voltageB > 0, voltageB < 0);
}
位置反馈系统 - MT6816磁编码器
MT6816是一款高精度磁性角度传感器,提供14位的绝对位置信息,关键特性包括:
- 分辨率:16384 CPR(14位)
- 接口类型:SPI数字输出
- 更新速率:最高1MHz
- 非线性误差:±0.5°
编码器通过SPI接口与主控芯片通信,提供实时的转子位置信息:
// 编码器数据读取示例
int32_t MT6816::GetRawData()
{
uint16_t data = 0;
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_RESET);
HAL_SPI_Receive(&hspi1, (uint8_t*)&data, 2, 10);
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET);
return data & 0x3FFF; // 取14位有效数据
}
闭环控制算法架构
驱动器实现了先进的双闭环控制策略,结合了PID控制和DCE(Dynamic Current Enhancement)算法:
控制模式支持
驱动器支持多种控制模式,满足不同应用场景的需求:
| 控制模式 | 描述 | 应用场景 |
|---|---|---|
| MODE_COMMAND_POSITION | 位置控制模式 | 精确定位 |
| MODE_COMMAND_VELOCITY | 速度控制模式 | 匀速运动 |
| MODE_COMMAND_CURRENT | 力矩控制模式 | 力控应用 |
| MODE_COMMAND_TRAJECTORY | 轨迹跟踪模式 | 复杂路径 |
DCE控制算法实现
DCE(Dynamic Current Enhancement)算法是驱动器的核心控制算法,通过前馈补偿提高系统响应速度:
void Motor::Controller::CalcDceToOutput(int32_t location, int32_t speed)
{
// 位置误差计算
int32_t pError = goalPosition - location;
// 速度前馈补偿
int32_t advancedAngle = CompensateAdvancedAngle(speed);
// DCE控制律
config->dce.pError = pError;
config->dce.vError = goalVelocity - speed;
config->dce.outputKp = config->dce.kp * pError / 1000;
config->dce.outputKd = config->dce.kd * config->dce.vError / 1000;
// 积分项处理
config->dce.integralRound += config->dce.ki * pError / 1000;
config->dce.outputKi = config->dce.integralRound;
// 总输出计算
int32_t output = config->dce.outputKp + config->dce.outputKi + config->dce.outputKd;
output += advancedAngle; // 加入超前角补偿
// 输出限幅
output = constrain(output, -maxCurrent, maxCurrent);
CalcCurrentToOutput(output);
}
CAN总线通信协议
驱动器采用自定义的CAN协议实现与主控制器的通信,协议帧结构如下:
| 字段 | 长度 | 描述 |
|---|---|---|
| 标准ID | 11位 | 节点ID(7位) + 命令码(4位) |
| 数据长度 | 4位 | 固定为8字节 |
| 数据域 | 8字节 | 命令参数和返回数据 |
主要命令功能:
典型通信示例
位置控制命令的数据格式:
// 设置目标位置命令 (0x05)
struct PositionCommand {
float targetPosition; // 目标位置(弧度)
uint8_t needAck; // 是否需要应答
uint8_t reserved[3]; // 保留字段
};
// 位置应答数据格式
struct PositionAck {
float currentPosition; // 当前位置
uint8_t isFinished; // 是否到达目标
uint8_t reserved[3]; // 保留字段
};
电源管理与保护电路
驱动器设计了完善的电源管理和保护系统:
电源架构
保护功能实现
驱动器实现了多重保护机制:
- 过流保护:实时监测相电流,超过阈值立即关断
- 过热保护:温度传感器监测芯片温度
- 欠压保护:电源电压低于18V时进入保护状态
- 堵转检测:通过电流和位置变化率判断堵转状态
// 保护检测实现
void Motor::CheckProtections()
{
// 过流检测
if (abs(focCurrent) > config.motionParams.ratedCurrent * 1.2) {
controller->state = STATE_OVERLOAD;
driver->SetDisable(true);
}
// 堵转检测
if (config.ctrlParams.stallProtectSwitch &&
abs(estVelocity) < 100 &&
abs(focCurrent) > config.motionParams.ratedCurrent * 0.8) {
controller->isStalled = true;
}
}
校准与初始化流程
驱动器上电后自动执行编码器校准流程:
校准算法的核心是确定编码器的电气偏移量:
void EncoderCalibrator::DoCalibration()
{
// 施加校准电流
motor.driver->Output(current, 0);
HAL_Delay(100);
// 采集多圈数据
int32_t sum = 0;
for (int i = 0; i < 1024; i++) {
sum += motor.encoder->GetRawData();
HAL_Delay(1);
}
// 计算平均偏移
int32_t average = sum / 1024;
motor.config.motionParams.encoderHomeOffset = average;
// 保存到EEPROM
boardConfig.encoderHomeOffset = average;
eeprom.put(0, boardConfig);
}
性能参数与规格
驱动器的详细性能规格如下表所示:
| 参数类别 | 具体参数 | 数值 | 单位 |
|---|---|---|---|
| 电气特性 | 工作电压 | 24-48 | V |
| 最大相电流 | 4.5 | A | |
| 待机功耗 | 0.5 | W | |
| 控制性能 | 位置分辨率 | 0.022 | ° |
| 最大转速 | 30 | r/s | |
| 控制带宽 | 2 | kHz | |
| 通信接口 | CAN波特率 | 1 | Mbps |
| 节点数量 | 127 | 个 | |
| 响应时间 | <1 | ms |
该硬件架构为Dummy-Robot机械臂提供了高性能的运动控制基础,支持精确的位置控制、平滑的速度规划和可靠的力矩输出,满足了机械臂关节驱动的各种复杂需求。
Peak示教器无线控制方案
Peak示教器作为Dummy-Robot项目中的无线控制核心,采用了先进的无线通信架构和高效的协议设计,为机械臂提供了灵活、可靠的远程操控能力。该方案基于X-Track项目进行深度定制开发,集成了多种无线通信技术和智能控制算法。
无线通信架构设计
Peak示教器的无线通信系统采用分层架构设计,确保数据传输的可靠性和实时性:
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



