基于ARM9的仿人机器人分布式控制系统
扫描二维码
随时随地手机看文章
1 引言
仿人型机器人具有类似于人类基本外貌特征和步行运动功能,还具有视觉、听觉等功能,它可以实现类似人类的行走,灵巧轻便,对行走环境有良好的适应性,既能在平地上行走,又能在非结构的复杂地面上行走,如上下台阶,跨越、绕过障碍物等。另外,仿人型机器人是集材料、机械、电子、能源驱动、计算机感知、传感、控制、虚拟现实与人工智能等多门学科于一体的综合性平台,它的研究能够带动诸多相关学科和技术的交叉发展与进步,并为相关学科的研究提供一个平台。因而,近年来,仿人型机器人的研发受到国内外学者的广泛关注。小型机器人是近年发展起来的仿人机器人的一种,主要的研究集中在日本。小型仿人机器人,结构轻巧,集成度高,运动灵活;未来可在工业、民用、军事等许多方面发挥作用,是机器人技术的发展方向之一。小型机器人的控制不仅要求实时,还要求重量轻,体积小以及低功耗等。
传统的仿人机器人控制系统结构采用集中式控制,如日本仿人机器人HRP-2[1],通常由一台或多台计算机通过多块A/D,D/A模块与下层的驱动器和传感器连接通信。由上位机完成轨迹规划和任务调度,协调下层各控制板对各关节进行控制。这样的控制系统模块繁多,模块之间的连接复杂,依赖性强且相互耦合,降低了系统的开放性和可靠性,增加了功耗,难以完成多轴同步协调运动控制。
随着计算机技术和网络技术的发展,各种新型的控制方式应用于机器人控制。分布式控制系统是在计算机监督控制系统、直接数字控制系统和计算机多级控制系统的基础上发展起来的,是生产过程的一种比较完善的控制与管理系统。与计算机多级控制系统相比,分布式控制系统在结构上更加灵活、布局更为合理和成本更低。分布式控制结构成为机器人控制系统发展的方向。文[2]中作者设计了一种基于CAN总线的分布式的仿人机器人的控制系统。
为此,我们研制了新型的小型仿人机器人控制系统。本实验室研制的小型仿人机器人各关节采用舵机控制,根据要求,本设计需要实现小型仿人机器人腿部的运动控制,达到小型化,低功耗。
2 小型仿人娱乐机器人分布式控制系统
2.1总体方案设计
本文研究的小型仿人娱乐机器人运动控制系统由主控制器ARM9,C8051F320单片机与4片CD4017外部计数器构成的控制单元组成,控制结构简单灵活。USB通信方案满足了主从控制和通信速度的需求。关节执行机构采用舵机,控制方法简单实用。总体控制方式简图。
主控制器端,采用ARM9(S3C2410)作为管理控制器负责协调控制,向单片机发送规划好的运动控制数据并扩展语音,视频等。S3C2410主控制器有一个USB host,连接C8051F320单片机。
单片机端,利用C8051F320中的PCA捕捉比较模块产生PWM控制信号。当单片机通过USB总线接收到由ARM管理控制器发来的数据包时,根据设定的对应关系将数据包中16位控制数据转化为PCA比较值,由PCA模块产生相应占空比的PWM控制信号,分别输出给4片CD4017外部计数器。同时 PCA模块还定时产生一路复位脉冲,同时发送给4片CD4017,确保CD4017多路PWM输出与单片机接收到多舵机控制数据对应关系正确。
CD4017外部计数器将CP引角输入的PWM转化为多路PWM,分别控制与之相连的各舵机转动,实现各杆件位置的开环控制。
2.2 USB通信的实现
在计算机和单片机的控制数据传输领域内,长期以来广泛的使用RS-232,RS-485等通信方式,这些通信方式讯的实时性较差, 故障率较高, 出现故障时, 不容易排查[3]。不能够满足小型仿人机器人的实时性和大批量数据传输的要求。USB总线通信方式作为新一代计算机外设的接口技术,随着USB技术的日益成熟,及独特的优点(对多种设备的广泛适用性,自动配置,容易扩充,易于连接,热插拔,即插即用、高可靠性,低成本,低功耗等),应用前景非常广泛 [4]。
本控制系统中的管理控制器ARM9(S3C2410)集成了一个USB host,采用Linux操作系统;C8051F320器件集成了全速/低速USB功能控制器,用于实现USB接口的外部设备,均支持USB2.0通信协议。单片机端设计了通信固件程序和应用程序,用于接收USB通信内容。
2.3 基于C8051单片机和CD4017外部计数器的关节控制器设计
采用一片单片机与4片CD4017外部计数器的关节控制器设计方案,极大限度的精简了硬件数量,节省了空间,降低了软硬件出错的可能性,也为系统运动功能的扩展提供了足够空间和灵活性(自由度数量设置可在36个以内任意增减)。
基于C8051的设计中有很多方法用于产生PWM波形:软件循环、查询或中断驱动的定时器等。使用可编程计数器阵列PCA产生PWM相对于任何查询机制(基于软件或定时器而言)可以大大降低所需要的CPU带宽,并可以消除在中断驱动的基于定时器的设计中因中断延迟不一致而产生的时序抖动。PCA由一个专用的16位计数器/定时器和5个16位捕捉/比较模块组成。每个捕捉/比较模块有其自己的I/O线。计数器/定时器由一个可编程的时基信号驱动。计数器 /定时器有一个16位的计数器/定时器寄存器、一个用于选择时间基准的方式寄存器和一个包含计数器/定时器运行控制及各模块捕捉/比较标志的控制寄存器。每个捕捉/比较模块有一个用于选择模块工作方式的配置寄存器和一个16位的捕捉/比较寄存器。每个捕捉/ 比较模块的工作方式都可以被独立配置。由于所有的捕捉/比较模块共享一个时间基准,因此它们同步工作[5][6]。本文研究的小型娱乐机器人关节控制器设计中,将PCA配置为独立工作;每个模块的中断服务程序只影响该模块的捕捉/比较寄存器。PCA方式寄存器和配置寄存器设置一次后不再改变,让计数器/定时器寄存器自由运行。
在高速输出方式,每当PCA计数器与模块的16位捕捉/比较寄存器发生匹配时,模块I/O线的引脚上的逻辑电平将发生高低转换,并可以选择产生中断。本应用程序中选择了该中断。
Y9输出均变为低电平,只有Y0脚输出变为高电平,故可以利用CR的正脉冲输入中断计数[7]。~Y9这10个输出端,计满10个数后计数器复零,同时 CO端输出一个进位脉冲。当CR端有正脉冲输入时,该脉冲的上升沿将触发CD4017复位,此时Y1~CD4017基本功能是对CP端输入脉冲的个数进行十进制计数,并按照输入脉冲的个数顺序将脉冲分配在Y0[!--empirenews.page--]
本文研究的小型娱乐仿人机器人控制系统方案中,一个CD4017输出7路脉冲,分别发送给7个舵机。
3 实验
控制系统硬件实物连接图如图4。
机器人步行实验完成5步的向前行和5步的后退的行走过程。步行实验过程如图5。
4 结论
根据小型仿人机器人的机构特点和性能要求,构建了以ARM9为主控制器的小型仿人机器人控制系统。设计开发了C8051USB单片机和CD4017外部计数器组成关节控制器,该关节控制器能够实现多舵机的协调控制任务。实践证明,采用该结构之后,整个机器人系统的模块化程度更高,系统的装配和调试更加方便。控制系统实现了小型化、低功耗,而且机器人行走稳定性。
本文作者的创新点
根据小型仿人机器人的机构特点和性能要求,构建了以ARM9为主控制器的小型仿人机器人控制系统。设计开发了C8051USB单片机和CD4017外部计数器组成关节控制器,该关节控制器能够实现多舵机的协调控制任务。实践证明,采用该结构之后,整个机器人系统的模块化程度更高,系统的装配和调试更加方便。控制系统实现了小型化、低功耗,而且机器人行走稳定性。