基于ADT850的机器人运动控制系统设计方案
最高的驱动速度的条件下,设定最小倍率。由于移动机器人最高速度为0.8m/s,转化为脉冲频率即为64kp/s,故最小倍率应设定为8。
步进电机驱动器的输入信号共有3路,它们是:步进脉冲信号CP、方向电平信号DIR、脱机信号FREE。它们在驱动器内部分别通过270????的限流电阻接入光耦的负输入端,且电路形式完全相同,见图2。OPTO端为3路信号的公共正端(3路光耦的正输入端),3路输入信号在驱动器内部接成共阳方式,所以OPTO端须接外部系统的VCC,如果VCC是+5V则可直接接入;如果VCC是12V则须外部另加限流电阻R=680????,VCC是24V则须外部另加限流电阻R=1.8k????,以保证给驱动器内部光耦提供8~15mA的驱动电流。步进脉冲信号CP用于控制步进电机的位置和速度,也就是说:驱动器每接受一个CP脉冲就驱动步进电机旋转一个步距角,CP脉冲的频率改变则同时使步进电机的转速改变,控制CP脉冲的个数,则可以使步进电机精确定位。这样就可以很方便地达到步进电机调速和定位的目的。方向电平信号DIR用于控制步进电机的旋转方向。此端为高电平时,电机为一个转向;此端为低电平时,电机为另一个转向。电机换向必须在电机停止后再进行,并且换向信号一定要在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个CP脉冲前发出。
1.3软件系统结构
本控制系统的操作系统采用Windows98,程序开发系统采用VisualC++,并且采用模块化及Windows线程的多任务处理机制等程序设计方法,这样不仅便于程序调试与修改,而且还可以实现控制系统的准并行分布式处理[3]。
首先,利用ADT850运动控制卡所提供的开发库函数,将其针对运动控制卡各通道的操作封装为针对机器人各轮的操作函数,这些函数均属于定义为CAdtMotorCtrl类的成员函数。举例如下:
通过以上两个类,基本上屏蔽了运动控制卡及机器人本体有关硬件操作和硬件参数,从而使上层开发更加简单、方便,在无需知道与之相关的硬件知识就能完成机器人运动控制程序的开发。使系统具备良好的可扩展性能。其总体结构如图3所示:
图3移动机器人运动控制系统程序框图
其中位姿状态监测模块用来采集各传感器的输入信号,完成对移动机器人位置姿态的监测,并将这些信号作为控制系统的反馈信号;路径跟踪控制模块实现移动机器路径跟踪控制算法,向驱动系统提供控制信号;传感器云台控制模块控制传感器云台以角速度8(!)/s水平转动及4(!)/s俯仰运动;紧急情况处理模块用于各种紧急情况处理;通信模块完成运动控制系统与上层决策系统之间的通信。
为了保证控制系统的实时性,利用位于Win????dows底层的定时控制API函数,由它来获得较高精度的定时信号,而且,通过线程的优先级安排,可以解决各线程对系统资源争夺问题,将重要的、紧急的任务安排在优先级高的线程中来完成;另外,ADT850运动控制卡能够独立响应和处理一些硬中断事件,可以用来处理紧急事件,如机器人需紧急停止等,从而进一步提高了控制系统的实时性。经实验,此方案完全能够满足本移动机器人实时性要求。
2运动控制算法
移动机器人的运动控制最主要的就是路径跟踪控制,其任务就是控制机器人使其运动轨迹渐近收敛于期望轨迹。由于移动机器人车体的非线体、轮胎与地面的滑动和非完整约束等原因,无法建立一个精确的数学模型[4],因此,本文提出了一种基于状态反馈路径跟踪控制算法。
首先,对二差分轮式移动机器人作运动学分析。设vl,vr分别为机器人左、右轮速,如图所示,
在半径为3m的圆轨迹跟踪过程中,最大超调量约为1.2m,经过50s左右便稳定在期望轨迹上,且最终稳态误差约为0.15m。
4结论
本文介绍了一种基于IPC与ADT850的移动机器人运动控制系统,包括系统的硬件、软件体系结构。采用基于状态反馈的控制算法,对移动机器人进行轨迹跟踪控制,实验证明了本控制系统及控制算法的有效性。本系统采用了Windows系统的模块化及Windows线程的多任务处理机制程序设计方法,使本控制系统具有较好的扩展性和开放性,为进一步研究与实用化创造了较好的条件。
- 基于运动控制芯片AFDX05的开放式五轴五联动数控系统的应用(09-11)
- 运动控制系统基本架构及控制轨迹要点简述(03-07)
- 基于TMS320LF2407A的机器人运动控制系统软件设计(08-18)
- 基于伺服电机和运动控制器的目标仿真实时性设计(05-22)
- 基于32位DSP及电机驱动芯片的悬挂运动控制设计(09-13)
- 基于Motionchip的直流无刷伺服电机运动控制系统设计(04-19)