基于ADT850的机器人运动控制系统设计方案

分享到:
222
下一篇 >

主要介绍了一种移动机器人的运动控制系统硬、软件结构。控制系统是由工业PC,ADT850运动控制卡及相关传感器组成;操作系统采用Windows98系统,采用VisualC++6.0开发,并应用模块化及Windows线程的多任务处理机制实现控制程序设计;根据状态反馈控制理论,设计了移动机器人路径跟踪控制算法。实验论证了此控制系统及控制算法的有效性。

引言

移动机器人是能够在未知环境下自主运动的智能机器人,集环境感知、动态决策与规划、运动控制等多项功能于一体,其中运动控制系统的主要功能是实现对上层规划路径的跟踪[1]。

随着科学技术的发展,人类的研究活动领域已由陆地扩展到海底和空间。利用移动机器人进行空间探测和开发,已成为21世纪世界各主要科技发达国家开发空间资源的主要手段之一。研究和发展月球探测移动机器人技术,对包括移动机器人运动控制在内的相关前沿技术的研究将产生巨大的推动作用[2]。

本文提出了一种基于工业计算机(IPC)及ADT850运动控制卡的移动机器人运动控制系统,实现移动机器人的车体与传感器云台运动控制。采用Windows系统的模块化、多线程软件设计方法,使系统具有较好的开放性,易于功能扩展。针对本系统,提出了一种基于状态反馈的移动机器人路径跟踪控制算法,实现平稳、有效的镇定控制。

1运动控制系统的硬件结构

1.1问题的描述

对于移动机器人的运动控制系统,**地进行自定位是一个基本的要求。自定位就是获得机器人自身相对于一个固定坐标系的位置和方向角(统称位姿)。因此,从系统硬件层次来讲,移动机器人就必须要有一定的传感器来获得这些位姿信息,如利用固定在驱动轮轴上的光电编码器,通过测量各电机的运动增量推算出机器人的位置,利用光纤陀螺仪测量机器人在水平面的方向角,利用倾角传感器测量机器人与水平面的倾角。另外,移动机器人运动系统还要接收上层决策系统路径规划信息及向决策系统反馈机器人状态信息等,因此要求系统要有较好的通信能力。

1.2硬件系统结构

运动控制系统由计算机系统、传感器系统、驱动控制系统及电源系统等几个部分组成(如图1)。其中,计算机系统采用通用的工控机(IPC),这样保证了整个系统较好的可扩展性。传感器系统包括编码器、光纤陀螺仪及倾角传感器。编码器用来测量车轮的实际转动量;光纤陀螺仪用来测量机器人车体在水平面的方向偏角;倾角传感器则用来测量机器人车体与水平面倾角。驱动控制系统包括ADT850运动控制卡及步进电机驱动器。电源系统采用二组镍氢12Ah电池组分别对计算机系统与驱动系统独立供电,其中计算机系统采用24V直流源,步进电机采用36V直流源,可以支持系统连续工作2~3小时。

图1移动机器人运动控制系统硬件结构框图

光纤陀螺仪、倾角传感器通过串口向IPC传送移动机器人的姿态信息,编码器采集的移动机器人位置信息,通过ADT850运动控制卡的I/O向IPC传送。IPC获取移动机器人位姿信息后,并作相应融合处理,然后根据上层决策系统提供的路径规划信息,执行相应的控制算法,向运动控制卡发送控制命令。控制命令通过运动控制卡,转换为控制步进电机的脉冲信号。

ADT850运动控制卡是基于PCI总线的高性能四通道伺服/步进控制卡,在本系统中,两个通道分别用于机器人车体左、右轮的驱动控制,另外两个通道分别用于传感器云台的旋转与俯仰运动控制。其脉冲输出方式可用单脉冲(脉冲+方向)或双脉冲(脉冲+脉冲)方式,这里采用前一种方式,*大脉冲频率为4MHz。位置管理采用两个加/减计数器,一个用于内部管理驱动脉冲输出的逻辑位置计数器,一个用于接收编码器输入信号,作为实际位置计数器,计数器位数高达32位。还有到位信号、报警信号、伺服开启信号等外部输入信号接口。提供多种运动控制方式,如定量运动、连续运动、回零运动等。速度控制可用定速和直线或S曲线加减速,可做非对称直线加减速,可用自动或手动减速。每轴有2个32位比较寄存器,用于产生中断或作为软件限位。并且每轴有8个输入信号端,包括2个正负限位信号,3个停止信号,1个伺服报警信号和1个通用输入信号。除限位信号外,其余信号可通过设置成无效来作为通用输入信号。所有数字输入信号均有积分型滤波器,可选8种滤波时间常数,以防止干扰。各轴*高输出速度可以通过设定其倍率参数来决定,因为驱动速度、加/减速度等参数的设定范围只在1~8000之间,若需要设定8000以上的数值的话,就必须提高倍率,但提高倍率后,速度的分辨率会相应地降低。因此,在保证能达到*高的驱动速度的条件下,设定*小倍率。由于移动机器人*高速度为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线程的多任务处理机制程序设计方法,使本控制系统具有较好的扩展性和开放性,为进一步研究与实用化创造了较好的条件。

你可能感兴趣: 业界新闻 图片 机器人 AD 电机驱动器
无觅相关文章插件,快速提升流量