版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于arduino的自主移动机器小车开发smartcar负责人:马培培 张宪许导师:许军2013年6月16日目 录1 项目概述11.1 研究内容11.2 开发背景11.3 项目意义22 详细设计32.1 避障小车设计32.2 自平衡小车104 参考资料141 项目概述1.1 研究内容本项目主要是完成可以自由行走、自动避障以及简单通讯功能的智能小车的研究与实现,具体工作包括基础部分和发挥部分:基础部分:(1) 小车系统能完成测速、避开障碍物等功能。发挥部分:(1) 小车能避开障碍物、并以最佳路线绕过障碍物、防滑落、适应复杂工作环境(主要通过学习)等能力;(2) 小车与小车之间构建一个zigbee
2、网络,这个网络用于收集周围的环境信息,并组成车载自组网络,给arm留更多的资源来进行视频传输及对传感器信息的融合处理;1.2 开发背景“robot”一词源自捷克语“robota”,意谓“强迫劳动”。1920年捷克斯洛伐克作家萨佩克写了一个名为洛桑万能机器人公司的剧本,他把在洛桑万能机器人公司生产劳动的那些家伙取名“robot”,汉语音译为“罗伯特”,捷克语意为“奴隶”萨佩克把机器人的地位确定为只管埋头干活、任由人类压榨的奴隶,他们存在的价值只是服务于人类。他们没有思维能力,不能思考,只是类似人的机器,以便使人摆脱劳动。到目前为止,机器人技术的发展过程大致可以分为以下3个阶段:第一代为可编程示教
3、再现型机器人,其特征是机器人能够按照事先教给它们的程序进行重复工作。1959年美国人英格伯格和德沃尔制造的世界上第一台工业机器人就属于示教再现型,即人手把着机械手,把应当完成的任务做一遍,或者人用示教控制盒发出指令,让机器人的机械手臂运动,一步步完成它应当完成的各个动作;第二代机器人(20世纪70年代)是具有一定的感觉功能和自适应能力的离线编程机器人,其特征是可以根据作业对象的状况改变作业内容,即所谓的“知觉判断机器人”;第三代机器人(20世纪80年代中期以后)是智能机器人,这种机器人带有多种传感器,能够将多种传感器得到的信息进行融合,能够有效的适应变化的环境,具有很强的自适应能力、学习能力和
4、自治功能。而对于机器人领域的一个分支移动机器人,它的研究始于60年代末期,斯坦福研究院(sri)的nits nilssen和charles rosen等人, 在1966年至1972年间研制出了名为shake的自主移动机器人。进入20世纪80年代以后,人们的研究方向逐渐转移到了面向实际应用的室内移动机器人的研究,并逐步形成了自主式移动机器人amr(indoor autonomous mobile robot)概念。美国国防高级研究计划局(darpa)专门立项,制定了地面天人作战平台的战略计划。从此在全世界掀开了全面研究室外移动机器人的序幕,如darpa的“战略计算机”计划中的自主地面车辆(alv
5、)计划(19831990),能源部制订的为期10年的机器人和智能系统计划(rips)(19861995),以及后来的空间机器人计划:日本通产省组织的极限环境下作业的机器人计划:欧洲尤里卡中的机器人计划等。初期的研究,主要从学术角度研究室外机器人的体系结构和信息处理,并建立实验系统进行验证。虽然由于80年代对机器人的智能行为期望过高,导致室外机器人的研究未达到预期的效果,但却带动了相关技术的发展,为探讨人类研制智能机器人的途径积累了经验。同时,也推动了其它国家对移动机器人的研究与开发。在国内,从“七五”开始,国的移动机器人研究开始起步,经过多年来的发展,己经取得了一定的成绩。清华大学智能移动机器
6、人于1994年通过鉴定。涉及到五个方面的关键技术:基于地图的全局路径规划技术研究(准结构道路网环境下的全局路径规划、具有障碍物越野环境下的全局路径规划、自然地形环境下的全局路径规划);基于传感器信息的局部路径规划技术研究(基于多种传感器信息的“感知一动作”行为、基于环境势场法的“感知一动作”行为、基于模糊控制的局部路径规划与导航控制);路径规划的仿真技术研究(基于地图的全局路径规划系统的仿真模拟、室外移动机器人规划系统的仿真模拟、室内移动机器人局部路径规划系统的仿真模拟);传感技术、信息融合技术研究(差分全球卫星定位系统、 磁罗盘和光码盘定位系统、超声测距系统、视觉处理技术 信息融合技术);智
7、能移动机器人的设计和实现(智能移动机器人thmr111的体系结构、高效快速的数据传输技术、自动驾驶系统)。香港城市大学智能设计、自动化及制造研究中心的自动导航车和服务机器人。中国科学院沈阳自动化研究所的agv和防爆机器人。中国科学院自动化所自行设计、制造的全方位移动式机器人视觉导航系统。哈尔滨工业大学于1996年研制成功的导游机器人等。1.3 项目意义1994年,美国的一个机器人丹蒂(dante)探索了南极洲的埃力柏斯火山口,这无疑是智能机器人最新技术的示范。该探险行动实际上是由相互协作的两个机器人来执行的。其中一个是善于爬坡的运输机器人,把丹蒂从营地送到火山口边缘,然后丹蒂用攀登绳索下去取样
8、。虽然该项行动遇到故障,但是人们普遍承认该机器人系统是成功的。事实上,这是代表当前智能机器人最高水平的自主式移动机器人(amr)系列中的一个。自主式移动机器人,它要求在野外非结构化环境中自主地执行一系列任务,例如侦察、探险、搬运等等。环境变化的不确定性意味着机器人必须有良好的环境感知、行动规划与决策、灵巧的机动控制等功能。涉及的技术领域包括机器视觉、多传感融合、全局与局部控制、学习与决策,以及机械构造、运动学与动力学控制等。综上所述,开发一款具有无线功能的智能小车是有很大实用意义的。图1为此系统在探险中应用的模型表示:图1.1 智能车在探险中的应用的模型化表示2 详细设计本部分主要简要地介绍智
9、能车系统设计思路及设计过程。2.1 避障小车设计小车采用超声波测量前方距离,arduino 根据超声波模块接受的距离控制小车前进、后退或者左转右转。也就是说它有自己的“思维”方式,只要打开电源在没有人干预的情况下可以独自在房间里闲逛而不会碰到任何东西。材料准备:1、arduino uno板子一个。2、 超声波测距模块一个3、 直流电机 + 轮胎4、 l298n电机驱动模块 一个 电机驱动最好带光耦的,否则可能会对超声波信号产生干扰5、万向轮 + 小车底盘 + 杜邦线 + 螺丝、螺母 + 烙铁 + 螺丝刀 + 剪刀等小车底盘是用来固定电机和电路板的,可以选用pvc板自己动手制作也可以买现成的材料
10、都有了就可以将它们链接起来。接线方式可以从程序的注释中看出来,android程序如下:#definedebug 0 / set to 1 to print to serial monitor, 0 to disable#include servo headservo; / 头部舵机对象/ constantsconst int echopin = 2; /超声波信号输入const int trigpin = 3; /超声波控制信号输出constintleftmotorpin1 = 4; / 直流电机信号输出const int leftmotorpin2 = 5;constintrightmoto
11、rpin1 = 6;constintrightmotorpin2 = 7;constintheadservopin = 9; / 舵机信号输出 只有9或10接口可利用const int sharppin = 11; / 红外输入 constintmaxstart = 800; /run dec time/ variablesint isstart = maxstart; /启动int currdist = 0; / 距离boolean running = false;voidsetup() serial.begin(9600); / 开始串行监测 /信号输入接口 pinmode(echopin
12、, input);pinmode(sharppin, input);/信号输出接口for(int pinindex = 3; pinindex 11; pinindex+) pinmode(pinindex, output); / set pins 3 to 10 as outputs /舵机接口headservo.attach(headservopin);/启动缓冲活动头部headservo.write(70);delay(2000);headservo.write(20);delay(2000);voidloop() if(debug)serial.print(running:);if(r
13、unning)serial.println(true);elseserial.println(false);if(isstart 0) isstart = maxstart;delay(4000);return;isstart-;delay(100);if(debug)serial.print(isstart: );serial.println(isstart);currdist = measuringdistance(); /读取前端距离if(debug)serial.print(current distance: );serial.println(currdist);if(currdist
14、 30) nodanger();elseif(currdist 15)backup();randtrun();else/whichway();randtrun();/测量距离 单位厘米longmeasuringdistance() longduration;/pinmode(trigpin, output);digitalwrite(trigpin, low);delaymicroseconds(2);digitalwrite(trigpin, high);delaymicroseconds(5);digitalwrite(trigpin, low);/pinmode(echopin, inp
15、ut);duration = pulsein(echopin, high);returnduration / 29 / 2;/ 前进voidnodanger() running = true;digitalwrite(leftmotorpin1, low);digitalwrite(leftmotorpin2, high);digitalwrite(rightmotorpin1, low);digitalwrite(rightmotorpin2, high);return;/后退voidbackup() running = true;digitalwrite(leftmotorpin1, hi
16、gh);digitalwrite(leftmotorpin2, low);digitalwrite(rightmotorpin1, high);digitalwrite(rightmotorpin2, low);delay(1000);/选择路线voidwhichway() running = true;totalhalt(); / first stop!headservo.write(20);delay(1000);intldist = measuringdistance(); / check left distance totalhalt(); / 恢复探测头headservo.write
17、(120); / turn the servo right delay(1000);intrdist = measuringdistance(); / check right distance totalhalt(); / 恢复探测头if(ldist 5) body_rturn();elsebody_lturn(); 2.2 自平衡小车arduino自平衡小车,查了些segway技术资料发现自平衡小车的原理也比较简单:利用陀螺仪和加速度模块获得小车角度,arduino对获取的数据进行处理,然后控制电机运转纠正倾斜,从而达到平衡的效果。需要准备的硬件有:1、陀螺仪 选用的是l3g4200d三轴陀
18、螺仪,其实自平衡小车只用到其中的一轴 2、加速度计 用的是adxl345三轴加速度计,自平衡小车也只用到其中两轴3、arduino板子 4、l298n电机驱动模块 一个 需要带光耦5、直流减速电机两个 小车轮胎两个 塑料盒子一个还需要一些杜邦线、 电池、螺丝等辅助的东西组装过程比较简单,在塑料盒合适的位置打孔,然后用螺丝固定住电路板和电机即可:制作之前需要对陀螺仪 + 加速度计 进行测试,看获取的角度数据是否满足要求。网上常用的方法是使用卡尔曼滤波将陀螺仪和加速度计的数据进行融合而得到一个相对稳定正确的角度值。获取到角度以后需要找到小车的平衡点,也就是无外力作用的时候小车能够立在地面上的角度:
19、 角度差 = 小车角度 - 平衡点角度。用小车角度数据结合当前的倾斜目标值,通过pid运算,得出电机pwm脉宽数据,指挥电机运行即可。pid算法相对比较简单,而且arduino有现成的pid libraries : http:/arduino.cc/playground/code/pidlibrarypid:pid(double* input, double* output, double* setpoint,doublekp, double ki, double kd, int controllerdirection)pid:setoutputlimits(0, 255); /default
20、 output limit corresponds to /the arduino pwm limitssampletime = 100; /default controller sample time is 0.1 secondspid:setcontrollerdirection(controllerdirection);pid:settunings(kp, ki, kd);lasttime = millis()-sampletime;inauto = false;myoutput = output;myinput = input;mysetpoint = setpoint;pid lib
21、的参数分别是这样的:input 输入值(这里输入卡尔曼融合获取的角度值)output pid计算的结果,供电机驱动的pwm使用setpoint 期望值(这里输入小车平衡点的角度值)kp、ki、kd 这是kpi的三个重要参数这三个参数的详细说明:比例(p)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(steady-state error)。积分(i)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(system with steady-state error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(pi)控制器,可以使系统在进入稳态后无稳态误差。微分(d)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏教版小学三年级数学上册全册教案
- 光影交错室内氛围营造
- 有用一年级下册数学教案表格
- 高一化学教案:第三单元从微观结构看物质的多样性
- 2024高中地理第1章区域地理环境与人类活动第3节第1课时四大地区学案湘教版必修3
- 2024高中物理第一章静电场综合评估含解析新人教版选修3-1
- 2024高中语文第2单元孟子蚜第3课民为贵练习含解析新人教版选修先秦诸子蚜
- 2024高中语文第六单元文无定格贵在鲜活子路曾皙冉有公西华侍坐训练含解析新人教版选修中国古代诗歌散文欣赏
- 2024高考历史一轮复习第12讲古代中国的农业和手工业学案含解析人民版
- 2024高考地理一轮复习第三部分区域可持续发展-重在综合第四章区域经济发展第32讲区域农业发展学案新人教版
- 冬春季呼吸道传染病防控
- 中介费合同范本(2025年)
- 《kdigo专家共识:补体系统在肾脏疾病的作用》解读
- 生产调度员岗位面试题及答案(经典版)
- 【物 理】2024-2025学年八年级上册物理寒假作业人教版
- 交通运输安全生产管理规范
- 电力行业 电力施工组织设计(施工方案)
- 查对制度 课件
- 2024-2030年中国猪肉市场销售规模及竞争前景预测报告~
- 2024年三人工程合伙协议书
- 2024至2030年中国安全时间戳服务器行业投资前景及策略咨询研究报告
评论
0/150
提交评论