基于PSoC的智能吸尘机器人控制系统的设计

2012-12-27 14:09:07 来源:佳工机电网 点击:1021

摘要:  主要研究了基于PSoC片上系统的智能吸尘机器人控制系统的设计,详细论述了控制系统的组成,推导了机器人的运动控制方程,设计了传感器检测电路。该控制系统灵活运用PSoC片上系统内部集成的PWM模块、计数模块和定时模块等来完成机器人的运动控制,通过运用红外传感电路和机械结构相结合的方法来检测外部环境信息。

关键字:  智能吸尘机器,  传感器

$吸尘机器人作为服务机器人领域的一个新产品,结合了机器人和吸尘器技术,能在无人看守情况下轻松地完成室内环境的吸尘等清洁工作,越来越受到人们的欢迎。

目前国外在吸尘机器人研究开发方面已取得一定的成果,并有成品上市。如英国Dyson公司推出的DC06智能吸尘器,控制器由3台小型计算机控制,外部备有70个传感器;澳大利亚FloorBotics公司推出的V4型机器人,配有内置搜索雷达[1]等。国内也已有相关的研究,但与国外有较大差距。控制系统是机器人性能的关键部件之一,它在相当大的程度上决定了机器人的智能程度。为减小尺寸和降低功耗,吸尘机器人控制系统的设计应尽可能采用功耗小和集成化程度高的器件。

文中介绍的智能吸尘机器人控制系统是基于Cypress公司生产的PSoC(Programmable System on Chip)芯片CY8C 26643开发完成的。该芯片内部自带主振荡器,可提供24/48 MHz时钟,使控制系统具有较强的实时控制能力。该芯片具有相当高的集成度,内部集成了丰富的数字和模拟功能模块[2],为控制系统的设计提供了灵活可重构资源,使得其硬软件 设计更加便捷。采用了多路红外传感器来感知外部环境信息,控制系统据此可自动识别室内可能出现的各种遇障情况,与市场上已有控制系统相比,实现了仅采用较少的元器件完成外围电路设计,并实现机器人自主吸尘、自动避障等功能。

2 控制系统硬件设计

图1为吸尘机器人控制系统的组成框图。该机器人为轮式移动机器人,移动机 构由2个后轮和1个前轮组成,两后轮由直流电机驱动,前轮为从动轮。片上系统CY8C 26643内部配置的PWM1、PWM2模块输出脉宽调制信号,经功率放大后驱动电机最终控制吸尘机器人的后轮;计数器1、计数器2模块分别用于计数来自安装在后轮的光电码盘信号,反馈后轮的速度和位移信息;A/D模块SAR6用于实时检测充电电池的电量,保证机器人的正常运作;定时器为配置的各模块提供时基,同时也为系统提供定时中断;接近觉传感器检测机器人的3个轮是否离地;多对红外传感器用于检测机器人外部环境信息,以作为自主清扫、自动避障 的判断依据,由PWM3控制发射管的工作;片上系统通过PWM4发送不同频率的脉宽调制信号,使扬声器发出不同的声音,以告知用户其工作状态,为机器人提供友好的人机交互。

基于PSoC的智能吸尘机器人控制系统的设计

2.1驱动部分

驱动部分作为吸尘机器人的主体,速度的控制精度直接影响到机器人的清扫性能。控制系统采用速度闭环控制,在两后轮上分别安装了光电码盘,CY8C 26643内部的8位计数器模块在一定周期内计数来自码盘的脉冲个数,通过一定的转换比例因子即可获得轮的实际转速和位移,以此作为反馈信息,调整8位PWM模块输出脉冲占空比,使机器人以期望的速度运行,最终实现速度的闭环控制。

PSoC片内不仅有丰富的功能模块,而且为各模块的配置和调用都提供了丰富的API(Applicat ion Programming Interface)函数,调用API函数,在程序中修改模块参数非常方便。

当机器人任务完成或遇其他紧急情况停止工作时,可以关闭PWM等模块,减小控制系统的功耗,节省电源。

2.2传感器部分

移动机器人的智能化主要体现在机器人自动识别障碍物、避开障碍物以及自主清扫地面等方面[3],实时采集环境信息成了吸尘机器人控制系统需完成的重点任务之一。鉴于传感器的性价比,该实验机器人采用了红外传感器。机器人前端装有缓冲装置,结合红外传感器,可检测机器人左前方、右前方、正前方是否遇障,当缓冲器碰撞障碍物时,机械装置挡住接收管而产生检测信号。安装在机器人侧面的传感器可判断侧面是否有障碍物。为防止机器人遇楼梯或高的阶梯而坠落,在机器人底部也装有多对红外传感器,当机器人前端悬空时,传感器发射管发射的红外光因没有地面的反射而使接收管没有信号输入,CPU捕捉到 异常信号采取解救措施。此外,在3个轮的旁边分别装有接近觉传感器,用于检测轮子是否离地。各路传感器检测信息为机器人自动避障提供了必要的环境判定信息。

图2为一路红外传感电路的驱动电路,R1端接CY8C 26643中PWM3模块的输出I/O口。确定好各电阻值,使Q2工作在合适的静态工作点后,采用PWM输出驱动红外发射管,这样即使在电路元器件参数固定的情况下,仍可通过在程序中调整PWM占空比来改变D1的工作电流。接收管的信号则需经多级放大滤波 后再送入CY8C 26643。

基于PSoC的智能吸尘机器人控制系统的设计

3控制系统软件设计

3.1概述

软件是在PSoC开发环境下完成的,主程序源代码主要用C语言编写。这样可以缩短程序开发周期,提高程序的可读性和可移植性,但同时C语言也存在一些不足之处,与汇编语言相比,主要体现在需占用较大的程序存储空间,对一些硬件的控制不如汇编语言方便直接。因此,在控制系统的软件设计中,部分代码用汇编语言编写,主要有键盘扫描、各路传感信号扫描和所有的中断(包括定时中断、计数器溢出中断等)程序,主程序的某些关键部分也嵌入了汇编语言,PSoC开发环境中在C语言程序中嵌入汇编语言非常方便。

直线和圆弧是轮式机器人的两种基本运动模式[4],该机器人的路径主要由基本的渐开螺旋线、圆弧和直线组成。机器人启动后,先按照螺旋线轨迹清扫地面,运行5~6圈后以直线清扫并寻找墙,运行一定时间后继续以螺旋线和直线清扫。在软件中设定了多种避障模式:左转/右转一定角度后继续直线行走、绕障碍物逆时针清扫一圈或沿墙直线清扫,转过的角度大小在程序中设定为10°、30°、90°、120°、150°不等。结合各路传感信息,机器人可识别左前方遇障、右前方遇障、正前方遇障、右侧面为墙、前方遇坑或楼梯口等异状,CPU进行判定后选择相应的避障模式,自动避障。该路径规划与直线随机清扫相比,大大提高了机器人的工作效率。

3.2运动控制

机器人坐标原点取为两后轮中心轴线的中点,其速度v和角速度ω计算公式:

基于PSoC的智能吸尘机器人控制系统的设计

式中ωl、ωr分别为左、右轮的角速度,D为后轮的直径,L为两轮的间距。当ωr=ωl≠0时,机器人直线运动,当ωr≠ωl时,机器人以圆弧运动。

基于PSoC的智能吸尘机器人控制系统的设计

机器人的位姿描述为(x,y,θ),(x,y)为机器人坐标原点在世界坐标系中的坐标,θ为相对于x轴的姿态角,如图3所示。其运动方程为:

基于PSoC的智能吸尘机器人控制系统的设计

式(1)中v和ω为控制变量。在控制周期[Ti-1,Ti]内机器人位姿通过数值 积分法可近似为公式(3),控制周期[Ti-1,Ti]要充分小于机器人运动速度变化的时间范围,以保证定位计算精度。

基于PSoC的智能吸尘机器人控制系统的设计

对于给定的几何路径f(x,y)=0,取其上某一点的曲率半径R(x,y),则该点处 机器人的控制量v和ω的关系为:R(x,y)=v/ω。由此可以得出:对于给定的几何路径,只用其坐标关系f(x,y)=0不足以求出v和ω的值,而只能确定两者的比值。因此在求 机器人的控制变量v和ω时,假定其中的一个为已知数,求取另一个。当机器人正常清扫时,取v为常数,据此求出ω的对应值。

4 结论

笔者从实用的角度出发,设计的吸尘机器人控制系统充分利用了PSo C内部集成的功能模块资源,实现了以较少的器件完成控制系统的外部电路设计,提高了系统的稳定性。经多次试验,结果表明:该控制系统能成功地实现自动避障,自主清扫房间,并能覆盖房间的大部分面积,良好的人机交互使机器人更具人性化。

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告