FPGA与DSP的仿人假手控制系统设计
扫描二维码
随时随地手机看文章
仿人假手作为肢残患者重获人手功能的主要对象,具有重大的社会需求。理想的假手应具有人手的仿生特征,主要体现在假手构造、控制方式与环境感知3 个方面,但由于其有限的体积和复杂的传感器系统,对控制系统提出了更高的要求。
现有的控制系统有外置式和内置式两种。外置式控制系统多用于研究型假手,如Cyber Hand,Tokyo Hand,Vanderbilt Hand等,这种控制系统主要用于算法、方案的验证,在残疾人应用上推广意义较小。内置式控制系统在研究型假手和商业型假手上均有应用,其中研究型假手控制系统,在环境感知和双向信息交互上投入大量研究,如Smart Hand,DARPA hand; 而商业型假手控制系统虽然也有部分集成有外部传感器,但传感器系统简单,双向信息交互上也有较大欠缺,如i-Limb,BeBionic Hand。
HIT IV 代假手控制系统采用DSP作为主控芯片,集成有位置传感器和力矩传感器,可对肌电信号采样。但控制系统为一个整体,且体积较大,只适用于HIT IV 代假手。DSP 芯片在功能拓展上弱于FPGA,不利于二次开发。
本文采用模块化设计方案,以FPGA 作为核心芯片,运动控制、肌电信号采集、电刺激等模块独立设计,通过通用接口连接。在此基础上,进行多模式的多指抓取实验。
1 仿人假手系统介绍
本文所设计的控制系统以HIT V 代手为控制对象。该手略小于成年人人手,具有5 根手指,每根手指2 个指节,大拇指还另有一个内旋/外展关节,共有11 个活动关节,整个手由6 个直流电机驱动,每根手指安装有力矩传感器、位置传感器、指尖六维力传感器。
控制系统采用模块化设计思想,将整个系统分割成几个模块,通过通用接口建立相互连接,使整个控制系统可以放置在仿人假手内部,实现机电一体化。
2 基于FPGA 的控制系统设计
仿人假手电气控制系统用于实现假手各手指的驱动控制、多种传感器信息的采集以及与上位机( PC 或PCI 控制卡) 之间的通信。该控制系统由10 个模块组成,分别为: 由FPGA 组成的主控芯片模块、USB 接口模块、拇指控制电路模块、食指控制电路模块、中指控制电路模块、无名指控制电路模块、小指控制电路模块、肌电信号采集模块、电池管理系统模块、电刺激反馈模块。模块化设计方法增加了控制系统的灵活性与独立性,便于对模块单独进行调试与修改。电气系统总体功能框图如图1。
图1 电气系统功能框图
2.1 FPGA 主控芯片模块设计
FPGA 主控芯片模块采用Altera 公司Cyclone Ⅲ系FPGA芯片EP3C25F25617 作为控制核心,负责肌电信号和多种传感器信号的处理、与手指电路的通信、USB 通信、CAN通信接口等功能。同时,主控芯片模块还负责大拇指内旋/外展自由度驱动电机的控制。各个功能通过VHDL 语言进行编写,FPGA 中嵌入双NIOS 核构成双核处理器,其中一个NIOS 核用于肌电信号处理,另一个NIOS 核用于通信; 双核通过2M 的EEPROM 进行通信。FPGA 功能框图如图2。
图2 FPGA 功能框图
RS—485 通信通过在NIOS 核内自定义元件AutoSCI 控制RS—485 收发接口芯片MAX3362 实现。MAX3362 收发芯片可通过3.3 V 低压实现高速数据传送。CAN 与LVDS通信采用复用电路设计( 图3) ,通过更换接收发送接口芯片完成功能转换。CAN 通信采用TI 公司的CAN 收发器SN65HVD230QD 作为接口芯片。LVDS 通信采用TI 公司的半双工LVDS 收发接口芯片SN65LVDM176,构成PPSeCo高速串行通信系统与PCI 控制卡通信,通信速率可达25 Mbps,保证控制信息与传感器信息传送的及时性。
图3 CAN 通信/LVDS 通信复用电路
拇指内旋/外展自由度驱动电机由NIOS 核中自定义元件PWM 控制。元件功能通过VHDL 语言编写,PWM 波周期和占空比均可调。电机驱动芯片采用MPC17531A,其内部集成双H 桥,可直接控制直流有刷电机。
2.2 手指运动控制模块设计
五根手指的运动控制模块采用相同的设计方案,增强系统的互换性与通用性。该模块由DSP 作为控制核心,直流有刷电机驱动芯片MPC17531A 作为电机驱动芯片,负责手指电机的驱动,力矩传感器、位置传感器、电机电流传感器信号的采集与处理,以及与触觉传感器系统的通信,最后各项数据通过RS—485 通信接口与主控芯片模块通信。控制模块如图4。
图4 手指运动控制模块功能框图
该模块采用的DSP TMS320F28027 运行速率高,封装小。内部集成的16 通道12 位A/D 转换器可实现对力矩、位置、电机电流信号的采样。串行异步通信接口通过RS—485 收发接口芯片实现与主控芯片模块通信。EPWM 模块可直接控制直流有刷电机驱动芯片MPC17531A。
如图5,关节力矩传感器信号采集系统包括力矩传感器、处理放大电路、滤波电路和A/D 转换电路。力矩传感器基于应变原理,采用仪表放大器INA337 组成半桥电路对力矩信号进行放大后通过RC 滤波电路进入A/D 转换芯片。
图5 力矩传感器信号采集系统
如图6,关节位置传感器信号采集系统包括位置传感器、处理放大电路、滤波电路和A/D 转换电路。位置传感器基于旋转电位器原理,采用集成运放MAX9618 对电位器信号进行放大后通过RC 滤波电路进入A/D 转换芯片。
图6 位置传感器信号采集系统
2.3 肌电信号采集模块设计
肌电信号采集模块用来采集肌电电极的信号以及对信号的滤波和D/A 转换后存储在CPU 中,包括RC 电路组成的滤波电路、D/A 转换电路和电压转换电路。数字信号通过电压转换芯片转换为3.3 V 电压,通过SPI 接口输入到CPU 中央处理器。
2.4 电池管理系统模块设计
电池管理模块包括电池、电流传感器、蜂鸣器电路、LED 显示电路。电流传感器实时监测电池输出电流大小,通过LED 显示电路和蜂鸣器电路显示充电状态和电池电量过低报警。
3 软件实现
在FPGA 控制器程序设计中主要完成各系统参数的初始化与控制算法的实现,具体由如下几部分构成:
1) 与上位机通信部分: 通过3 种方式与上位机通信,获得控制指令,分别为USB 通信、LVDS 通信、CAN 通信,其中LVDS 通信与CAN 通信不能同时使用;
2) 肌电信号采集部分: 通过A/D 转换芯片将肌电电极信号转换为数字量,并经过运算处理得到控制指令;
3) 与手指运动控制模块通信部分: 通过SCI 接口实现与手指运动控制模块的RS—485 通信;
4) 生成驱动电机控制参数部分: 运算处理控制指令,生成电机运动参数( 方向与占空比) 。
控制流程图如图7 所示。
图7 FPGA 控制流程图
DSP 控制程序主要完成DSP 各参数的初始化,控制流程图如图8。
图8 DSP 控制流程图
4 假手抓取实验
基于上述设计,研制出HIT V 假手样机,进行抓取实验( 图9) ,可实现多种动作模式的抓取,分别为: 两指捏取、三指捏取、圆柱抓取、球形抓取、单指指向、胡克抓取、侧边捏取、五指端取。控制过程中,系统工作稳定,满足仿人假手运动控制和传感器信息采集要求。
图9 多指抓取实验
5 结论
本文介绍了结合FPGA 与DSP 的仿人假手控制系统的设计组成与工作流程。该控制系统体积小巧,可完全安装于假手内部。实验证明: 该系统运行可靠、控制灵活,使用效果良好。