具体实施方式
请参阅图1,图1是本发明实施例提供的一种机器人的控制系统的结构示意图。如图1所示,本实施例的控制系统10包括FPGA模块11和ARM模块12。其中,FPGA模块11用于采样机器人的位置信息和电流信息。ARM模块12用于接收位置信息,并根据位置信息获得速度信息。FPGA模块11进一步接收速度信息,然后根据速度信息和电流信息计算出对应的功率,并输出到电机中来控制机器人的运动轴。
具体请一并参阅图2所示,本实施例将12轴的电流环全部放入FPGA模块11中进行实现,大大减轻了ARM模块12处理的工作量。将12轴电机的速度环和位置环放入ARM模块12中实现,充分发挥了ARM模块12处理的数据处理能力。
如图2所示,FPGA模块11和ARM模块12共同完成电机驱动器的过程如下:
首先位置给定值传递给位置环计算单元121,FPGA模块11通过位置采样模块13得到位置信息,进一步通过FPGA模块11中的通信单元111和ARM模块12中的通信单元122的连接传递到ARM模块12中,使得位置信息传递给位置环计算单元121的反馈,经过位置环计算单元121的计算输出速度环给定。
(2)速度环给定传递给速度环计算单元123的给定,经过测速单元124得到的实时速度信息传递给速度环计算单元123的反馈,经过速度环计算单元123计算,输出速度环输出。
(3)速度环输出经过通信单元121和通信单元111传递给FGPA的电流环计算单元112的给定,经过电流采样电路14和滤波处理单元113得到电机的实时电流值,并传递给电流环计算单元112的反馈,经过电流环计算单元112,输出电流环输出。
(4)电流环输出的PWM信息通过功率模块15输出对应的功率到电机100中。
(5)电机100的位置信息进一步通过位置采样模块13传递给FPGA的位置采集。
至此完成了整个电机驱动器的三环控制。因此通过FPGA模块11和ARM模块12既保证所占空间小又要保证控制精度。
请再参阅图1,其中,FPGA模块11与ARM模块12之间通过地址线、数据线来通信。
进一步的,ARM模块12还包括显示接口J1、存储接口J2、USB接口J3、SCI接口J4、网口J5和J6、充电接口J7、电池接口J8、SPI、I2C接口J9。
具体的,ARM模块12通过显示接口J1外接触摸屏或显示屏,用于参数设置与机器人状态信息显示。机器人的重要人机交互方法之一是触摸屏或显示器。ARM模块12内部集成了LCD控制器单元,使用它可以方便的进行触摸屏等人机交互功能。小型多足机器人的触摸屏可以为用户提供机器人状态信息显示、用户设置输入等功能。
ARM模块12通过存储接口J2外扩SD卡和CF卡等存储设备,用于存储下载与上传的信息。需要存储的信息主要有:驱动器三环PID参数、滤波参数、电机特性数据、姿态控制结算参数、用户设置数据、报警日志等。
ARM模块12通过USB接口J3外接激光传感器和存储设备这些外围器件,使得外围器件可以与ARM模块12通信。其中,激光传感器用于激光导航与避障处理。
ARM模块12还通过SCI(Serial Communication Interface,串行通信接口)接口J4与无线串口、无线wifi、声纳传感器等外设连接。
ARM模块12还通过网口J5和J6外接相机、遥控机和工控机。
ARM模块12还包括电源管理单元125,用于进行电源管理功能。具有电量监测、上下动力电控制、电压电流保护功能等。其中,ARM模块12还通过充电接口J7与电池接口J8与电源管理模块125连接。
ARM模块12还通过SPI接口或I2C接口J9外接姿态传感器。姿态传感器为陀螺仪和加速度计。足式机器人为了保证身体的平衡,需要姿态传感器进行姿态的获取。他们通过SPI或I2C接口J9与ARM模块12相连。SPI与I2C通信接口J9均在ARM模块12中提供了相关的通信模块。
其中,FPGA模块11是现场可编程门阵列。它完成了以下功能:(1)电机电流采样。(2)电机电流环计算。(3)PWM信号输出。(4)编码器位置获取。进一步的,FPGA模块11还连接IO类传感器。
以上是发明实施例的控制系统10的硬件结构示意图。以下将介绍根据前文所述的控制系统来实现机器人的控制的过程,具体如下:
(1)通过ARM软件中的电源管理任务通过电流积分法与电压校正法进行电池电量的计算,同时进行电压、电流过高的保护操作。
(2)使用ARM软件中的姿态计算任务,结合外扩的陀螺仪与加速度计进行机器人姿态的解算功能。
(3)通过ARM软件中的视觉处理任务,结合外扩的网络相机进行视觉识别操作。
(4)通过ARM软件中的触摸屏任务,结合外扩的触摸屏,进行用户交互,完成机器人参数设置与机器人状态信息显示。
(5)通过ARM软件中的存储管理任务,结合外扩的SD卡,进行日志与报错信息存储功能。
(6)通过ARM软件中的导航算法库,结合外扩的激光传感器,进行激光导航与避障操作。
(7)机器人使用时,用户先通过触摸屏进行机器人参数设置。参数设置好后,通过遥控器进行机器人控制。
(8)机器人接收到遥控信息后,将运行信息传递给运动规划任务。运动规划任务结合姿态解算任务输出的姿态信息进行运动学解算,输出电机各轴运动目标点。
(9)运动规划任务,将各轴运动目标点通过插补算法计算出插补点,得到驱动器各时刻的位置给定值。
(10)运动过程中,结合导航算法与视觉处理结果,进行避障、导航操作。
(11)运动规划任务将各轴位置给定值传递给电机控制任务。
(12)电机控制任务使用位置环计算模块,根据位置给定值与位置反馈进行PID计算,并输出速度环给定值。
(13)电机控制任务使用速度环计算模块,根据速度换环给定值与速度反馈进行PID计算,输出速度环输出值。
(14)速度环输出值通过ARM-FPGA通信模块,传递给FPGA的电流环计算模块。
(15)FPGA的电流环计算模块,使用速度环输出值与实时电流反馈值进行那个电流环计算。并输出PWM信息到功率模块。
(16)电机接收到功率模块输出,完成运动。并将运动位置信息通过位置采样模块,传递给FPGA的位置采集值。
(17)FPGA将位置信息通过ARM-FPGA通信模块返回给ARM处理器,供其完成速度环与位置环计算。至此电机的闭环控制回路完成。
以上控制的过程是由ARM软件结构实现的,以下介绍ARM的软件结构。
ARM模块12操作系统采用开源linux系统,通过增加实时补丁完善linux的实时性。
软件划分为三个层次:驱动层、操作系统层、应用层。请参阅图3所示。
驱动层直接与底层硬件操作,由以下部分组成:标准设备驱动、I2C驱动、SPI驱动、MMC驱动、USB驱动、SCI驱动、CAN驱动、网口驱动、GPIO驱动以及AD驱动。
操作系统层完成了系统调度与模块封装功能,由以下部分组成:时钟管理模块、文件管理模块、MMC封装、SPI封装、I2C封装、USB封装、SCI封装、CAN封装、网口封装、GPIO封装以及AD封装。通过该层将各个驱动模块完全封装起来,使得应用层操作各个驱动接口时更为便利。
应用层完成了所有的应用功能模块。由以下部分组成:触摸屏任务、运动规划任务、姿态解算任务、电源管理任务、视觉处理任务、存储管理任务、电机控制任务、日志管理任务、机器人模型库、导航算法库。
其中,触摸屏任务:完成人机交互功能。通过调用MMC封装内容完成触摸屏信息获取与显示。
运动规划任务:小型多足机器人具有12个运动轴,各轴运动需要根据触摸屏中用户设置的运动规矩或导航算法库给出的运动轨迹结合机器人模型库给出运动规划曲线,并通过三次多项式插补算法,得出各个插补点的运动目标。
姿态结算任务:该任务根据SPI封装与I2C封装获取陀螺仪与加速度计的传感器数据,通过卡尔曼滤波得出机器人的实时姿态信息。
电源管理任务:该任务通过调用GPIO封装获取并控制IO信息。完成上下动力电功能。通过调用AD封装读取电压、电流数据。根据电流数据使用电流积分法进行电量监测功能,根据电压数据使用开路电压法进行满电量校正。同时监测电压、电流数据是否正常,若异常则进行报警、下电保护操作。
视觉处理任务:该任务根据相机通信类型调用网口封装或USB封装获取相机数据,使用视觉算法库进行图像处理、特征识别、物体辨识等操作。
存储管理任务:该任务根据外接存储器的不同调用MMC封装、文件管理或USB封装,完成存储数据的上传、下载操作。
综上所述,本发明存在以下优点:
(1)减少控制系统的模块结构:将现有技术的工控机、数字处理模块、驱动器三大部分缩减为单控制器结构。
(2)较小控制系统功耗:去除X86架构的处理器模块,整合数字处理模块与驱动器组件为单控制板,大大降低控制系统的功耗与复杂度。
(3)扩展外部接口能力:使用ARM-A8处理模块,为控制系统提供较为全面的外部接口。
(4)去除外置驱动器:针对小型多足机器人的12轴驱动需求,使用FPGA单芯片完成所有轴的电流环及位置采集任务,去除了外置驱动器,大大较小了控制系统的体积、功耗、单价。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。