扫地机器人课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专业方向课程设计报告
组别序号
课题名称扫地机器人设计制作
姓名丁吴
学号*********
指导教师铁军一
目录
第一章绪论 (3)
1.1 课题研究背景 (3)
1.2 国内外研究现状 (3)
1.2.1 扫地机器人的特点 (3)
1.2.2 国外扫地机器人研究现状 (5)
1.2.3 国内扫地机器人研究现状 (6)
第二章扫地机器人的结构系统 (6)
2.1 扫地机器人的硬件结构 (6)
2.1.1 移动机构 (6)
2.1.2 测距与防碰撞传感器 (7)
产品参数 (8)
2.1.3机器人清洁系统设计: (12)
2.1.4总体结构设计: (12)
第三章机器人程序编写: (14)
第四章研究过程遇到的问题,解决的措施 (18)
第五章参考文献 (19)
第一章绪论
1.1 课题研究背景
近年来,随着计算机技术与人工智能科学的飞速发展,服务机器人技术逐渐成为现代机器人研究领域的热点。

一方面随着信息高速发展和生活、工作节奏的加快,人们需要从繁杂的家庭劳动中解脱出来;另一方面人口的老龄化和社会福利制度的完善也为某些服务机器人提供了广泛的市场应用前景。

区别于工业机器人,服务机器人的一个主要特征就是服务机器人是一种适用于具体的方式、环境及任务过程的机器人系统,其活动空间大,具有在非结构环境下的移动性,因此扫地机器人是一种能够自动执行房间清扫的家用服务机器人,集中了机械学、电子技术、传感器技术、计算机技术、控制技术、机器人技术、人工智能技术等多学科。

开始于20世纪80年代的研究,现在已经有多重样机和产品,并且促进了家庭服务机器人行业的发展,也促进了移动机器人技术、图像、语音识别、传感器等技术的发展。

许多发达国家都将其视为机器人研究的新领域给予重视。

有关资料也预测扫地机器人是未来几年需求量最大的服务机器人,特别是日用扫地电器不论在市场上或者是在产品创新上,绝对是所有小家电产品中最活跃的,未来仍有很大的成长空间,因此此课题研究有很大的意义。

1.2 国内外研究现状
1.2.1 扫地机器人的特点
扫地机器人具有如下的特点:(1)扫地机器人自带电源,小巧轻便、操作简单、自主性强、具有很强的实用性。

(2)扫地机器人的工作环境主要为普通家庭环境,也可以用于机场候机大厅、展览馆、图书馆等公共场所。

环境的共同特征为有限的封闭空间、平整的地板以及走动的人员,因此可以归结为复杂多变、结构化的动态环境。

所以环境适应性是对此类机器人的基本要求。

(3)扫地机器人的任务是清扫地面,工作的对象是地面的灰尘、纸屑以及其他一些小尺寸物体,而大尺寸物体不作为扫地机器人的处理对
象。

考虑到安全因素,扫地机器人必须对人及家庭物品等不构成任何危害,同时扫地机器人还必须具备自我保护的能力。

随着近年来计算机技术、人工智能技术、传感技术以及移动机器人技术的迅速发展,扫地机器人控制系统的研究和开发己具备了坚实的基础和良好的发展前景。

扫地机器人的控制与工作环境往往是不确定的或多变的,因此必须兼顾安全可靠性、抗干扰性以及扫地度。

用传感器探测环境,分析信号,以及通过适当的建模方法来理解环境,具有特别重要的意义。

近年来对智能机器人的研究表明,目前发展较快并且对扫地机器人发展影响较大的关键技术是:路径规划技术、传感技术、吸尘清扫技术、电源技术等。

①路径规划技术
扫地机器人的路径规划就是根据机器人所感知到的工作环境信息,按照某种优化指标,在起始点和目标点规划出一条与环境障碍无碰撞的路径,并实现所需清扫区域完全路径覆盖。

按机器人工作环境不同可分为静态结构化环境、动态己知环境和动态不确定环境,按机器人获取环境信息的方式不同可以分为基于模型的路径规划和基于传感器的路径规划。

根据机器人对环境信息知道的程度不同,可以分为两种类型:全局路径规划和局部路径规划。

常用的环境建模的主要方法有:可视图法、自由空间法、栅格法、势场法等。

与其它移动机器人相比较,扫地机器人作业环境和作业任务相对简单,机器人要实现自主路径规划、控制和作业并不困难。

②传感技术
扫地机器人在工作时需要实时地检测自身状态信息和收集外界环境息,以控制自身状态、建立环境地图、自主导航和定位,进行路径规划,感知作业对象的状态,检查扫地效果等。

通常采用的传感器分为内部传感器和外部传感器。

其中内部传感器有:编码器、线加速度计、陀螺仪、磁罗盘等。

其中编码器用于确定当前机器人的位置,线加速度计获取线加速度信息,进而得到线加速度和位置信息:陀螺仪用以得到机器人的姿态角、运动方向和转动时运动方向的改变等绝对航向信息。

外部传感器有:视觉传感器、超声波传感器、红外传感器、接触和接近传感器。

视觉传感器采用CCD 摄像机进行机器人的视觉导航与定位、目标识别和地图构造等;超声波传感器测量机器人工作环境中障碍物的距离信息和地图构造等。

红外线传感器一般采用红外接近开关探测机器人工作环境中的障碍物以避免碰撞。

使用时,往往需要多传感器同时工作并进行数据融合才能获得精确的信息以确定机器人的工作状态。

③吸尘、清扫技术
目前采用的扫地机器人有两类:真空扫地机器人和气流滤尘器。

真空扫地机器人是
由高速旋转的风扇在机体内形成真空从而产生强大的气流,将尘埃和脏物通过吸口吸入机体内的滤尘袋内。

气流滤尘器是一个全封闭系统,既无外部气体吸入,也无机内气体排除,其原理是利用附壁效应形成低压涡流气体,最后将沉渣截留于扫地机器人内的涡流腔内。

④电源技术
目前扫地机器人基本上都采用电池作为能源,电池有一次电池、二次电池和燃料电池。

作为机器人能源的一次电池要求能量密度高、自放电少、可靠性高,一次电池有锰干电池、碱性锰电池、锂电池等。

二次电池又叫蓄电池,有铅酸电池、银锌电池、镍镐电池和镍锌电池等。

铅酸电池是一种比较好的机器人能源,电压高、寿命长、价格低、结构简单可靠、工艺成熟,但能量密度低。

燃料电池体积小、重量轻、寿命长、效率高、无污染,是一种非常好的扫地机器人用电源,但总的来说,目前还处于研究开发阶段。

目前,国内外在清扫机器人的研究领域完成了许多工作,取得了一定的成果。

下面介绍国内外的几种典型的研究产品。

1.2.2 国外扫地机器人研究现状
早在20 世纪80 年代SANYO 公司就正式开始进行自主吸尘机器人的研发工作。

但总的来看,自主吸尘机器人的研究还刚刚起步,在自主能力和工作效率上还有待提高。

下面对一些主要产品和样机在自主能力、路径规划、环境适应性、工作效率等方面进行介绍。

英国Dyson(戴森)公司2001 初推出一种型号为DC06 的智能吸尘器。

据说它装备的感应器比登陆火星的机器人还多,这是世界首次开发研制的全自动“吸尘机器人”。

2002年 3 月日本松下电器公司展示了一种可自动为房屋进行真空吸尘的机器人,它的前后部都带有酷似眼睛的小灯,能发出50 种传感信号(其中包括声波、红外线等)。

这些传感信号可让机器人在撞上墙壁或滑落楼梯之前自动转身。

吸尘机器人每次充电后可运转55 分钟。

工作时,它首先绕房间转一圈,计算出房间的大小,然后在房间内作水平及垂直运动。

其缺点是机器人在宽度超1.2 英寸的障碍物前6 英寸处就停步,无法清扫墙壁边缘处的灰尘。

著名的家电厂商伊莱克斯在英国也推出了他们的机器人吸尘器“三叶虫”。

这款“三叶虫”吸尘器使用超声波探测障碍物,并且可以自行设计出在房间中行走的最佳路线。

它通过超声波躲避桌椅腿和宠物等障碍,超声波系统同时帮助它测量房间的尺寸,而最佳行进路线就是根据这些测量数据通过机器内部的计算机算出的。

使用者必须在房间门口和楼梯尽头贴上磁条作为无形的墙壁阻止机器人的前进。

“三
叶虫”是由可充电电池驱动的,每次充电后可以运行60 分钟。

“三叶虫”分三个挡位运作:正常、快速和点清理,吸尘器充满垃圾时还会发出灯光警告。

“三叶虫”的高度只有13 厘米,可以钻到桌子和床底下清理。

由于“三叶虫”完全自动,使用者可以把它留在家里清理房间,自己出去轻松消遣。

1.2.3 国内扫地机器人研究现状
目前,国内也已开始有关的研究开发工作,特别是在移动机器人的运动规划与控制方面取得了一定的成就,为研究开发扫地机器人奠定了技术基础。

哈尔滨工业大学与香港中文大学合作研制了全方位移动地面清扫机器人,并由海尔公司进行产品化工作。

该机器人具有遥控操作和自主操作两种运动方式,并具有智能电源管理功能,延长了运行时间,提高了对有限的移动动力资源的利用率。

其吸尘机构可实现吸尘腔路的自主转换,提高了吸尘效率。

同时采用万向轮实现任意方向移动,使得机器人可执行对狭窄区域的清扫任务。

浙江大学机械电子研究所与苏州TEK 公司也合作研发了智能自主吸尘机器人。

该机器人首先进行环境学习,利用超声波测距信息与墙保持一定距离行走,在扫地这些角落的同时获得房间的尺寸信息,从而决定清扫时间;之后,利用随机加局部遍历规划的策略产生高效的扫地路径;清扫结束后,自行回到充电座,补充动力。

目前,系统还在进一步的升级中。

其他大学如华南理工大学、上海交通大学、东南大学等都对扫地机器人相关技术进行了研究,但是没有形成产品。

第二章扫地机器人的结构系统
2.1 扫地机器人的硬件结构
2.1.1 移动机构
机器人按移动机构可分为轮式、履带式、步行方式或其他方式机器人。

轮式和履带式机器人适合于条件较好的路面,而步行机器人则适于条件较差的路面。

轮式移动机构运动平稳,自动操纵简单,最适合平地行走,在无人工厂中,常用来搬运零部件或做其他工作,应用最广泛。

本论文中的机器人为扫地机器人,一般用于室内,所以采用轮式结构。

机器人外形为圆形,是具有三个轮子的轮式扫地机器人,扫地机器人的运动系统由两个步进电机、两个驱动轮、一个万向轮组成。

两个步进电机通过齿轮传动带动左
右两边的驱动轮。

由于步进电机是通过改变输入的脉冲频率进行调速,因此输入不同的脉冲频率,可使两个驱动轮获得不同的速度,实现扫地机器人的前进、后退、转弯等功能。

扫地机器人的运动机构采用单片机控制,单片机发出两路脉冲信号送给步进电机驱动器,脉冲信号的频率控制电机的转速,从而控制机器人左、右轮的运动速度、移动距离和旋转角度。

在对扫地机器人位置的计算时,假设下面几个基本条件成立:①扫地机器人运动的路面为光滑的平面。

②左、右车轮在运动过程中,在车轮所在方向作纯滚动,在纵向和横向都无打滑运动。

③扫地机器人驱动机构的相关参数,如给定的脉冲数和左、右驱动轮旋转速度的关系在机器人负载与空载时情况相同。

2.1.2 传感器系统任何机器人都离不开传感器,机器人要具备智能行为必须不断感知外界环境,从而做出相应的决策行为。

机器人上装有防跌落感应装置,碰撞感应开关、红外线障碍传感器,灰尘感应装置等传感器。

2.1.2 测距与防碰撞传感器
测距与防碰撞的感知任务由红外测距传感器与碰撞传感器来完成。

红外传感器分别安装在扫地机器人的正前方和左右两边。

红外传感器方向分辨率高,距离分辨率较低。

在相邻的红外传感器间存在测量盲区,因此,在扫地机器人的前端设计了约180°的碰撞板,在碰撞板左右两侧各装有一个光电开关。

此结构可避免测量盲区带来的误差。

扫地机器人在任何方向上的碰撞,都会引起左右光电开关的响应,从而根据碰撞的方向做出相应的反应。

红外传感器
红外线传感器工作原理如下图所示。

红外接近开关是一种集发射与接收于一体的光电开关传感器。

数字信号的输出伴随传感器后侧指示灯亮的亮灭,检测距离可以根据要求进行调节。

该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、互动媒体、工业自动化流水线等众多场合。

信号类型:数字输出
▪工作电压:5V DC
▪电流:<100mA
▪探测距离:3~80cm
▪探头直径:18 mm
▪探头长度:45 mm
▪电缆长度:45 cm
▪引脚定义:红线- +5V;黄线- 信号;绿线- 地
▪接口类型:杜邦3Pin
测试程序:
const int InfraredSensorPin = 4;//Connect the signal pin to the digital pin 4 const int LedDisp = 13;
void setup()
{
Serial.begin(57600);
Serial.println("Start!");
pinMode(InfraredSensorPin,INPUT);
pinMode(LedDisp,OUTPUT);
digitalWrite(LedDisp,LOW);
}
void loop()
{
if(digitalRead(InfraredSensorPin) == LOW) digitalWrite(LedDisp,HIGH);
else digitalWrite(LedDisp,LOW);
Serial.print("Infrared Switch Status:");
Serial.println(digitalRead(InfraredSensorPin),BIN);
delay(50);
}
动力系统设计
采用了直流减速大电机,该电机的特点为:
1、力矩大
2、噪音小
3、价格便宜
采用了防滑轮,该车轮特点为:
1、抓地性好
2、质量轻
动力系统布局如下图:
本系统采用两轮驱动,万向轮从动的形式,采用三角形布局,具有稳定性、高效
性的特点。

2.1.3机器人清洁系统设计:
本款扫地机器人采用机器人周边拖把式清扫系统,适用于光滑的瓷砖、地板地面,具有高效性的特点。

2.1.4总体结构设计:
第三章机器人程序编写:
const int hongwai1 = 2;
const int hongwai2 = 4;
const int hongwai3 = 7;
const int hongwai4 = 8;
const int hongwai5 = 12;
void setup(void)
{
int i;
for(i=6;i<=9;i++)
pinMode(i,OUTPUT);
pinMode(hongwai1,INPUT);
pinMode(hongwai2,INPUT);
pinMode(hongwai3,INPUT);
pinMode(hongwai4,INPUT);
pinMode(hongwai5,INPUT); Serial.begin(19200);
}
int E1=3;
int E2=5;
int M1=6;
int M2=9;
void stop(void)
{
digitalWrite(E1,LOW); digitalWrite(E2,LOW);
}
void advance(char a,char b)
{
analogWrite(E1,a); digitalWrite(M1,HIGH); analogWrite(E2,b); digitalWrite(M2,HIGH);
}
void back_off(char a,char b)
{
analogWrite(E1,a); digitalWrite(M1,LOW); analogWrite(E2,b); digitalWrite(M2,LOW);
}
void turn_L(char a,char b)
{
analogWrite(E1,a);
digitalWrite(M1,LOW);
analogWrite(E2,b);
digitalWrite(M2,HIGH);
}
void turn_R(char a,char b)
{
analogWrite(E1,a);
digitalWrite(M1,HIGH);
analogWrite(E2,b);
digitalWrite(M2,LOW);
}
void loop()
{
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{ advance(160,150);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{back_off(150,150);delay(500);turn_L(150,150);delay(800);advance(150,150);delay(50 0);turn_L(150,150);delay(800);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{turn_R(150,150);delay(300);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{turn_L(150,150);delay(300);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{back_off(150,150);delay(500);turn_L(150,150);delay(800);advance(150,150);delay(500);tur n_L(150,150) ;delay(800);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==1)
{turn_R(150,150); delay(300);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==0)
{turn_L(150,150);delay(300);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{turn_L(150,150);delay(300);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==1)
{turn_R(150,150);delay(300);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==1)
{ back_off(150,150);delay(500);turn_R(150,150);delay(200);}
if(digitalRead(hongwai1) ==1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==0)
{back_off(150,150); delay(500);turn_L(150,150);delay(200);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==0)
{back_off(150,150);delay(500);turn_R(150,150);delay(1000);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==0)
{back_off(150,150);delay(500);turn_L(150,150);delay(1000);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==1)
{ turn_L(150,150);delay(500);back_off(150,150);delay(500);turn_R(150,150);delay(100 0);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==1)
{turn_L(150,150);delay(200);back_off(150,150);delay(500);turn_R(150,150);delay(100 0);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==0&&digitalRead(hongwai5) ==1)
{turn_L(150,150);delay(200);back_off(150,150);delay(500);turn_R(150,150);delay(100 0);}
if(digitalRead(hongwai1) == 1&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==1&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==0)
{turn_R(150,150);delay(200);back_off(150,150);delay(500);turn_L(150,150);delay(100 0);}
if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 1&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==0)
{turn_R(150,150);delay(200);back_off(150,150);delay(500);turn_L(150,150);delay(1000);} if(digitalRead(hongwai1) == 0&&digitalRead(hongwai2) == 0&&digitalRead(hongwai3) ==0&&digitalRead(hongwai4) ==1&&digitalRead(hongwai5) ==0)
{turn_R(150,150);delay(200);back_off(150,150);delay(500);turn_L(150,150);delay(100 0);}
}
第四章研究过程遇到的问题,解决的措施
遇到的困难:理论知识准备不足,缺乏设计经验,时间紧迫;
解决的措施:查阅相关文献和虚心向老师请教,在学习实践中解决遇到的问题,抓紧进度。

第五章参考文献
[1] 李瑞峰,孙笛生等.移动式作业型智能服务机器人的研制.机器人技术与应用。

[2] 胡跃明,丁维中,吴祈生,吸尘机器人的研究现状与展望,计算机测控与控制
[3] 徐阳。

面向未来的新型机器人技术。

机器人技术与应用。

2002,1:2~4
[4] 郭戈,胡征峰,移动机器人导航与定位技术。

微计算机信息,2003,19(8):10~11
[5] 王军,苏建波。

多传感器集成与融合概述。

2001,23(2):183~186
[6] 朱世强,刘瑜。

自主吸尘机器人研究现状。

2004,(6):569~574。

相关文档
最新文档