程 石,崔思柱,刘丰豪,肖 倩
(长安大学工程机械学院,陕西 西安710064)
四足机器人理论上良好的环境适应性、较强的承载能力、运动灵活性以及其易于优良的可控性和易加工性使得四足步行机器人在未来必然有着广阔的应用前景。张婷婷等搭建了基于ARM和CPLD的四足机器人嵌入式控制平台,展现了一种新的机器人控制系统架构[1]。苏晓东等搭建了基于ARM、FPGA和DSP的集分层式控制系统和分布式控制系统于一体的复合式控制系统[2]。殷勇华等搭建了基于FPGA的四足机器人分布式控制系统,具有实时数据通信能力、能够进行有效路径规划和实时精确控制关节运动[3]。本文针对实时性差与运行效率不高的缺陷,提出了一种高度并行的复合式控制系统结构。
本研究所设计的四足运输机器人由机身、腿、足三部分组成,共计4条腿,左右对称分布,每条腿3个关节,关节1、2固定在机身底部,关节3位于关节2的正下方,关节1实现机器人的侧摆,关节2和3负责驱动机器人的前进,每个关节1个直流无刷电机、伺服驱动器、16位绝对式编码器、霍尔传感器,整体12个关节,需要12个直流无刷电机才能实现机器人的运动,且电机的控制精度最低要求为0.008°,要求其具有一定的承载能力,能够在地面上稳定行走,同时对周围环境有一定的适应性,故对控制系统的体积和重量要求更高,同时要对机器人的姿态和电机的运动位置与状态进行实时采集并做出调控,并实施感知地面对足端的冲击力然后加以控制,响应速度不超过5ms.
本控制系统硬件结构包括上位机(PC),内嵌NI Linux Real-Time操作系统的sbRIO-9627片上系统(SoC)、分布式的执行器和传感器这三大部分。上位机上主要显示经传感器采集回来的关节位置值和电流值,以及监控电机状态;以包括双核667 MHz的ARM Cortex-A9处理器和Xilinx Zynq-7000的最高时钟频率为40 MHz的FPGA[4]芯片的sbRIO[5]-9627片上系统作为控制核心,ARM主要负责运动控制算法的运行,对经FPGA采集到的传感器信息进行融合,计算出执行器所需的控制指令完成运动规划,利用FPGA实现对传感器数据采集和对执行器PWM控制信号发送的并行化;分布式的执行器和传感器由12个伺服驱动器、直流无刷电机、绝对式编码器、霍尔传感器,4个三维力传感器,1个姿态传感器组成,构成机器人本体的动力驱动系统与采集系统,每条腿足端1个三维力传感器用于采集足端落地时与地面的接触力,绝对式编码器用于记录关节位置信息,姿态传感器为机身控制提供俯仰角、偏转角以及航向角的相关信息。
本控制系统软件框架如图1所示,采用的编程软件平台为Labview,软件系统主要分为PC、多核处理器、FPGA等三层。PC层用于显示电机状态和接收的传感器数据;多核处理器的CPU0运行控制算法得出控制指令并经RT FIFO传给CPU1,同时CPU1接收FPGA采集的传感器数据和向FPGA发送控制指令,将采集到的数据经RT FIFO传到CPU0;FPGA层主要负责数据采集和根据CPU1发送的指令信息产生相应占空比的PWM信号给伺服驱动器,实现对直流无刷电机的实时控制。通过该改变PWM波的占空比(0~100%)来改变电机的位置在±Max(最大位置设定值)之间变化,指令更新周期为2 ms,PWM信号的周期为1ms.
图1 系统软件框图
为了测试本控制系统的性能,在搭建好的硬件平台上进行了单腿控制实验,其中上位机软件中显示的控制大小腿关节脉冲数分别如图2所示,其理论值分别如图3所示。由图2与图3得出,向大小腿电机实时发送的控制指令数据与理论值没有差异,说明本系统的控制架构是合理可行的。整个运动过程中电机的控制精度约为0.005 5°,满足系统运动控制要求。
图2 腿部脉冲个数控制指令值
图3 腿部脉冲个数理论值
本文以NI sbRIO-9627为核心设计了一种集分层式控制系统结构与分布式控制系统结构特点与一体的复合式控制系统结构,搭建了一套相应的控制系统硬件平台。该控制系统充分利用了多核处理器的高速运算处理能力和FPGA丰富的外设资源以及并行能力。通过相应的测试实验验证了该平台工作稳定,对机器人各关节控制准确,能完成四足机器人实时控制的要求。该四足机器人控制系统在实时计算能力、存储容量、集成度、实时性、可扩展性和小型化上具有良好的优势。