基于FPGA六足机器人控制系统研究

(整期优先)网络出版时间:2018-12-22
/ 2

基于FPGA六足机器人控制系统研究

张赵1邱宇2史雨桐3沈建洲4

(1.南京工程学院材料工程学院南京211167;2.南京工程学院通信工程学院南京211167;

3.南京工程学院能源与动力工程学院南京211167;4.南京工程学院工业中心南京211167)

摘要:文中基于仿生学原理,设计了一种以六足昆虫为原型的六足机器人控制系统,该系统可控制机器人实现多种仿生动作。系统采用主从设计结构,以FPGA开源平台为主机控制核心,以STM32F103为从机控制核心,通过LDX-218数字舵机来驱动运动关节,在系统软件的控制下实现了蜘蛛和普通螃蟹两种行走模式,具有完成多种仿生运动动作以及自主超声波避障,红外桌面防跌等功能。为了满足六足机器人运动控制器实时性的要求,在分析机器人运动控制器体系结构特点的基础上,提出一种基于ARM+DSP+FPGA的机器人运动控制器。硬件电路采用模块化设计。实验结果表明,该六足仿生机器人运动平稳,适应能力强,具有很高的实用价值。

关键词:FPGA;CRC;脉冲量;六足机器人;仿生

0引言

在自动控制领域,各种嵌入式处理器起着十分重要的作用,尤其是在高速数字控制系统中,作为算法实现的硬件基础和实时性保证,微处理器正同高性能模拟器件一样成为影响系统性能的关键因素之一。目前FPGA技术的高速发展,已具备了在一片FPGA芯片中嵌入整个或大部分数字系统的条件,本文紧跟这一趋势,对基于FPGA的六足机器人微控制器进行了研究和设计工作,并取得了初步的成果。

1控制系统总体设计方案

1.1总体设计方案

根据六足机器人控制系统的设计要求,选用FPGAZYNQ系列芯片作为主机的主控芯片,选用STM32F103RBT6作为从机舵机控制板的控制芯片,选用ArduinoLeonardo作为二次开发平台,添加PS2手柄遥控模块、超声波模块、红外避障模块和OLED显示屏模块,共同完成六足机器人控制系统的搭建。本论文的重点是CRC校验纠错算法、30路PWM脉冲产生、增量式数字PID、反馈脉冲量采集、基于Amari-Hopfield模型的CPG算法实现方法。结合本文研究的六足机器人平台,分层次阐述了各个模块的设计思路,在QuartusII9.1sp2这个IDE环境下中根据设计方案搭建出具体的RTL结构图,最后在Modesim中仿真验证模块设计的可行性,并对设计方案进行优化,最终构建一个较为完整的片上自动控制器。数字PID模块采用的是增量式PID算法,采用并行3级流水线进行了实现。对于CPG算法模块的构建,本文先着手研究了Matsuka有关文献中模型的微分方程组,同时利用Amari-Hopfield理论将微分方程组进行分解,并离散化,然后在FPGA里面将相应的算法逻辑用自定义的计算部件进行实现。所有的自定义算法部件均使用原理图输入与verilog语言描述相结合的方式来实现,总体设计采用自顶向下,逐步细化的方式进行,而硬件的详细设计则采用自底向上,先模块后整体的方法进行。本论文在同一个FPGA器件中实现嵌入式存储器、通讯模块、电机控制模块、反馈检测模块、通用外设和复杂控制算法,使以往在一块或多块PCB板上的电路现在可在一片芯片中实现;使以往通过软件实现的算法现在可通过硬件加速。它在提升系统性能的同时降低了成本,缩短了开发周期。

1.2主要部件的设计

1.2.1驱动元件

为满足六足机器人驱动系统的控制要求,考虑到机器人的经济性,易操作性及学习的广泛应用性等,本设计采用舵机驱动控制方案。

舵机是由变速齿轮组、小型直流电机、可调电位器和控制电路组成的一套自动控制系统,舵机通过电源线及信号线与外界连接,在使用过程中可通过对信号线发送指定信号来指定舵机输出轴的旋转角度和速度,常作为机器人和航模的驱动部件。因本设计需要不断控制机器人各关节运行固定的角度来模拟六足机器人的仿生动作,因此选用LDX-218数字舵机作为该设计的驱动元件。它作为机器人专用的伺服电机,不但扭力大,精度高,且采用舵机插拔线控制,便于插拔和舵机延长线的选型及更换,适合多自由度机器人的搭建。舵机实物如图2所示。

控制方式:舵机输出轴的角度根据时基脉冲来控制,在0.5~2.5ms的脉冲控制下,舵机转动相应的角度。以180°的舵机为例(本设计选用180°舵机),所对应的控制关系见表1所列。

1.2.2腿部设计

文中设计的六足机器人的腿部关节采用昆虫式三自由度关节腿机构,每个腿部关节均由舵机驱动,关节与关节之间的连接构件采用简单、轻便且坚韧的玻纤代替,在降低机器人重量的同时增加了六足机器人的灵活度。通过舵机控制板驱动相应关节的舵机运动使六足机器人完成腿部运动,确保六足机器人能够在复杂路况上完成相应的仿生动作。系统从结构上保证了该六足机器人可有效模拟六脚昆虫的行走方式,并可在多种复杂环境状况下完成指定动作。

2关键硬件电路设计

2.1主机--ArduinoLeonardo控制板

考虑到Arduino开源和易于二次开发的特点,选用将ATmega32u4作为主控芯片的ArduinoLeonardo作为主机控制板。

该控制板可直接使用ATmega32u4的USB通信功能,在调试时通过USB连接电脑和Leonardo进行程序编写;在运行六足机器人时采用外接电源供电方式控制六足机器人的运动。主从机采用串口通信,将舵机控制板的RX接Arduino的TX,舵机控制板的TX接Arduino的RX,并将两个板子共地(舵机控制板的GND连接Arduino的GND)。

2.2从机舵机控制板

2.2.1电源及USB电路

舵机控制板采用USB供电方式,以FT232RL作为接口转换芯片。采用USB供电模式的优点在于仅需一根USB线就可使用该舵机控制板,包括下载、供电、调试等。所设计的从机电源及USB外围电路如图3所示。

2.2.2从机主控电路

鉴于六足机器人的自由度较多,且每个关节均需采用舵机驱动,故应对多个舵机进行控制。本设计采用STM32F103RBT6作为舵机控制板的控制芯片。

STM32F103RBT6丰富的Flash资源和SRAM,以及串口、USB、IO引脚等已完全满足其作为舵机控制板来存储动作信息并接收主机指令,完成指定动作的需求,且价格较低,是从机舵机控制板主芯片的较好选择。

3结语

本设计给出了一种六足仿生机器人的控制系统设计方案,搭建完成了六足仿生机器人样机。该机器人可以很好地模仿并拓展六足昆虫的运动方式,较轮式或履带式机器人而言适应性更强。在此基础上通过增加部分传感器或设备,拓展机器人的其他实用功能。本设计内容可为今后进一步研究六足机器人的应用工作提供参考与借鉴。

参考文献

[1]牛永超.基于CPG的六足机器人协调运动控制方法的研究[D].2008.

[2]黄再辉.基于CPG的六足机器人运动控制研究[D].2016.

[3]刘鹏飞.六足机器人控制系统研究与设计[D].哈尔滨理工大学,2012.

[4]伍立春,王茂森,黄顺斌.基于STM32的六足机器人控制系统设计[J].机械制造与自动化,2014(5):150-153.