基于CAN总线的仿人机器人分布式控制系统
扫描二维码
随时随地手机看文章
1引言
随着计算机技术和网络技术的发展,各种新型的控制方式应用于机器人控制。分布式控制系统是在计算机监督控制系统、直接数字控制系统和计算机多级控制系统的基础上发展起来的,是生产过程的一种比较完善的控制与管理系统。与计算机多级控制系统相比,分布式控制系统在结构上更加灵活、布局更为合理和成本更低。分布式控制结构成为机器人控制系统发展的方向。文[2]中作者设计了一种基于CAN总线的分布式的仿人机器人的控制系统。
为此,我们研制了新型的小型仿人机器人控制系统。本实验室研制的小型仿人机器人各关节采用舵机控制,根据要求,本设计需要实现小型仿人机器人腿部的运动控制,达到小型化,低功耗。
2小型仿人娱乐机器人分布式控制系统
2.1总体方案设计
本文研究的小型仿人娱乐机器人运动控制系统由主控制器ARM9,C8051F320单片机与4片CD4017外部计数器构成的控制单元组成,控制结构简单灵活。USB通信方案满足了主从控制和通信速度的需求。关节执行机构采用舵机,控制方法简单实用。总体控制方式简图见图1。
主控制器端,采用ARM9(S3C2410)作为管理控制器负责协调控制,向单片机发送规划好的运动控制数据并扩展语音,视频等。S3C2410主控制器有一个USB host,连接C8051F320单片机。
单片机端,利用C8051F320中的PCA捕捉比较模块产生PWM控制信号。当单片机通过USB总线接收到由ARM管理控制器发来的数据包时,根据设定的对应关系将数据包中16位控制数据转化为PCA比较值,由PCA模块产生相应占空比的PWM控制信号,分别输出给4片CD4017外部计数器。同时PCA模块还定时产生一路复位脉冲,同时发送给4片CD4017,确保CD4017多路PWM输出与单片机接收到多舵机控制数据对应关系正确。C8051F320控制器电路板如图2。
CD4017外部计数器将CP引角输入的PWM转化为多路PWM,分别控制与之相连的各舵机转动,实现各杆件位置的开环控制。CD4017引脚功能及排列如图3。
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线的引脚上的逻辑电平将发生高低转换,并可以选择产生中断。本应用程序中选择了该中断。
CD4017基本功能是对CP端输入脉冲的个数进行十进制计数,并按照输入脉冲的个数顺序将脉冲分配在Y0~Y9这10个输出端,计满10个数后计数器复零,同时CO端输出一个进位脉冲。当CR端有正脉冲输入时,该脉冲的上升沿将触发CD4017复位,此时Y1~Y9输出均变为低电平,只有Y0脚输出变为高电平,故可以利用CR的正脉冲输入中断计数[7]。
本文研究的小型娱乐仿人机器人控制系统方案中,一个CD4017输出7路脉冲,分别发送给7个舵机。
3 实验
控制系统硬件实物连接图如图4。
机器人步行实验完成5步的向前行和5步的后退的行走过程。步行实验过程如图5。
4 结论
根据小型仿人机器人的机构特点和性能要求,构建了以ARM9为主控制器的小型仿人机器人控制系统。设计开发了C8051USB单片机和CD4017外部计数器组成关节控制器,该关节控制器能够实现多舵机的协调控制任务。实践证明,采用该结构之后,整个机器人系统的模块化程度更高,系统的装配和调试更加方便。控制系统实现了小型化、低功耗,而且机器人行走稳定性。