为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

机器人 设计

2011-07-08 15页 doc 153KB 48阅读

用户头像

is_099741

暂无简介

举报
机器人 设计实 习 报 告 自动寻迹机器人设计 摘要:  目 录 TOC \o \h \z 前言 2 (一)、机器人的大脑 2 (二)、机器人的眼睛耳朵 2 (三)、机器人的腿——驱动器与驱动轮 3 (四)、机器人的手臂——机械传动专制 4 (五)、机器人的心脏——电池 4 一、arm简介 5 (一)、arm主要功能列举如下: 5 二、控制系统电路图 7 三、微型伺服马达原理与控制 8 (一)、微型伺服马达内部结构 8 (二)、微行伺服马达的工作原理 8 (三)、伺服马达的控制 9 (四)、选用的伺服马达 9 四、光电传...
机器人 设计
实 习 报 告 自动寻迹机器人 摘要:  目 录 TOC \o \h \z 前言 2 (一)、机器人的大脑 2 (二)、机器人的眼睛耳朵 2 (三)、机器人的腿——驱动器与驱动轮 3 (四)、机器人的手臂——机械传动专制 4 (五)、机器人的心脏——电池 4 一、arm简介 5 (一)、arm主要功能列举如下: 5 二、控制系统电路图 7 三、微型伺服马达原理与控制 8 (一)、微型伺服马达内部结构 8 (二)、微行伺服马达的工作原理 8 (三)、伺服马达的控制 9 (四)、选用的伺服马达 9 四、光电传感器 11 五、控制程序 12 六、 18 前言   机器人发展史 1920年 捷克斯洛伐克作家卡雷尔·恰佩克在他的科幻小说《罗萨姆的机器人万能公司》中,根据Robota(捷克文,原意为“劳役、苦工”)和Robotnik(波兰文,原意为“工人”),创造出“机器人”这个词。  1998年 丹麦乐高公司推出机器人(Mind-storms)套件,让机器人制造变得跟搭积木一样,相对简单又能任意拼装,使机器人开始走入个人世界。    1999年 日本索尼公司推出犬型机器人爱宝(AIBO),当即销售一空,从此娱乐机器人成为目前机器人迈进普通家庭的途径之一。    2002年 丹麦iRobot公司推出了吸尘器机器人Roomba,它能避开障碍,自动设计行进路线,还能在电量不足时,自动驶向充电座。Roomba是目前世界上销量最大、最商业化的家用机器人。    2006年 6月,微软公司推出Microsoft Robotics Studio,机器人模块化、平台统一化的趋势越来越明显,比尔·盖茨预言,家用机器人很快将席卷全球。 机器人分类 操作型机器人:能自动控制,可重复编程,多功能,有几个自由度,可固定或运动,用于相关自动化系统中。    程控型机器人:按预先要求的顺序及条件,依次控制机器人的机械动作。    示教再现型机器人:通过引导或其它方式,先教会机器人动作,输入工作程序,机器人则自动重复进行作业。    数控型机器人:不必使机器人动作,通过数值、语言等对机器人进行示教,机器人根据示教后的信息进行作业。    感觉控制型机器人:利用传感器获取的信息控制机器人的动作。    适应控制型机器人:机器人能适应环境的变化,控制其自身的行动。    学习控制型机器人:机器人能“体会”工作的经验,具有一定的学习功能,并将所“学”的经验用于工作中。    智能机器人:以人工智能决定其行动的人。  下面我介绍一下机器人的基本组成部分: (一)、机器人的大脑 它可以有很多叫法,可以叫做:可编程控制器、微控制器,微处理器,处理器或者计算器等,不过这都不要紧,通常微处理器是指一块芯片,而其它的是一整套控制器,包括微处理器和一些别的元件。任何一个机器人大脑就必须要有这块芯片,不然就称不上机器人了。在选择微控制器的时候,主要要考虑:处理器的速度,要实现的功能,ROM和RAM的大小,I/O端口类型和数量,编程语言以及功耗等。 其主要类型有:单片机、PLC、工控机、PC机等。 单有这些硬件是不够的,机器人的大脑还无法运行。只有在程序的控制下,它才能按我们的要求去工作。可以说程序就是机器人的灵魂了。而程序是由编程语言所编写的。 编程语言是一个控制器能够接受的语言类型,一般有C语言,汇编语言或者basic语言等,这些通常能被高级一点的控制器直接执行,因为在高级控制器里面内置了编译器能够直接把一些高级语言翻译成机器码。微处理器将执行这些机器码,并对机器人进行控制。 (二)、机器人的眼睛耳朵 传感器,是机器人的感觉器官,是机器人和现实世界之间的纽带,使机器人 能感知周围的环境情况。其主要有:光电传感器、红外传感器、力传感器、超声波传感器、位置和姿态传感器等等。下面我将就几种常用传感器进行介绍: 1、光电传感器:光电传感器的原理是光电效应。其主要用途是颜色识别(机 器人就可以沿着地上的线条行进了)和光电编码等。 2、红外传感器:红外传感器是用来测量距离和感知周围情况的。因为发射出去的红外信号在一定距离内遇到物体就会反射回来。通过发送红外线信号,并接收反射回来的信号,机器人就可以感知前方或身体周围的情况,做出相应的调整(如:倒退或绕行等)。 3、力传感器:力传感器是用来检测碰撞或者接触信号的,比如机械手的应用,当你放一个东西到机械手的时候,机械手自动抓住它,它就需要力传感器检测东西抓的紧不紧。典型的力传感器是微动开关和压敏传感器。微动开关其实就是一个小开关,通过调节开关上的杠杆长短,能够调节触动开关的力的大小。用来做碰撞检测这是最好不过了。但是这种传感器必须事先确定好力的阀值,也就是说只能实现硬件控制(开还控制)。而压敏传感器是能根据受力大小,自动调节输出电压或者电流,从而可以实现软件控制(闭环控制)。 4、超声波传感器:超声波传感器是从蝙蝠那里学来的,通过把发射出的信号与接收到的信号进行对比,就可以测定周围是否有障碍物,及障碍物的距离,也属于距离探测传感器,能提供交远的探测范围,而且还能提供在一个范围内的探测而不是一条线的探测。 5、位置和姿态传感器:机器人在移动或者动作的时候必须时时刻刻知道自己的姿态动作,否则就会产生控制中的一个开环问题,没有反馈,无法获知运动是否正确。 位置传感器和姿态传感器就是用来解决这个问题的。常用的有光电编码器,由于机器人的执行机构一般是电机驱动,通过计算电机转的圈数,可以得出电机带动部件的大致位置,编码器就是这样一种传感器,它一般和电机轴或者转动部件直接连接,电机或者转动部件转了多少圈或者角度能够通过编码器读出,控制软件再根据读出数据进行位置估计计算。还有一种是陀螺仪,这是利用陀螺原理制作的传感器,主要可以测得移动机器人的移动加速度,转过的角度等信息。 (三)、机器人的腿——驱动器与驱动轮 驱动器就是驱动机器人的动的部件。最常用的是电机了。当然还有液压,气动等别的驱动方式。一个机器人最主要的控制量就是控制机器人的移动,无论是自身的移动还是手臂等关节的移动,所以机器人驱动器中最根本和本质的问题就是控制电机,控制电机转的圈数,就可以控制机器人移动的距离和方向,机械手臂的弯曲的程度或者移动的距离等。所以,第一个要解决的问题就是如何让电机能根据自己的意图转动。一般来说,有专门的控制卡和控制芯片来进行控制的。有了这些控制卡和芯片,我们所要做的就是把微控制器和这些连接起来,然后就可以用程序来控制电机了。第二个问题是控制电机的速度,在机器人上的实际现就是机器人或者手臂的实际运动速度了,机器人走的快慢全靠电机的转速,这样,我们就要求控制卡对电机有速度控制。电机目前常用的有两种,步进电机和直流电机。下面我将就这两种电机进行介绍: 1、直流电机:这是最最普通的电机了。直流电机最大的问题是你没法精确控制电机转的圈数,也就前面所说的位置控制。你必须加上一个编码盘,来进行反馈,来获得实际转的圈数。但是直流电机的速度控制相对就比较简单,用一种叫PWM(脉宽调速)的调速方法可以很轻松的调节电机速度。现在也有很多控制芯片带调速功能的。选购时要考虑的参数是电机的输出力矩,电机的功率,电机的最高转速。 2、步进电机:看名字就知道了,它是一步一步前进的。也就是说,它可以一个角度一个角度旋转,不象直流电机,你可以很轻松的调节步进电机的转角位置,如果你发一个转10圈的指令,步进电机就不会转11圈,但是如果是直流电机,由于惯性作用,它可能转11圈半。步进电机的调速是通过控制电机的频率来获得的。一般控制信号频率越高,电机转的越快,频率越低,转的越慢。选购时要考虑的参数是电机的输出力矩,电机的功率,每个脉冲电机的最小转角。 还有就是关于输出的动力,要说明一下:一般情况下,电机都没法直接带动轮子或者手臂,因为速度过高力矩不够大,所以我们需要加上一个减速箱来增加电机的输出力矩,但是代价是电机速度的减小,比如一个1:250的齿轮箱,会让你电机的输出力矩增大250倍,但是速度只有原来的1/250了。首先计算出机器人所需要的速度与力矩大小,然后根据速度与力矩去选择电机与减速器。 (四)、机器人的手臂——机械传动专制 机械传动专制就是,由电机驱动的一些杆件和机构(如:凸轮机构、螺杆机构等),用以实现机械手臂的上升、下降、伸缩、弯曲等动作。通常运用的机构有四杆机构、凸轮机构、螺杆机构、摇臂等。 (五)、机器人的心脏——电池 电池为机器人的控制系统与驱动系统提供能源供应。主要有:电瓶及可充电电池、电池。 前面介绍了机器人的一些基本知识,但这是远远不够的。机器人学科,是在多学科基础上发展起来的综合性技术。机器人技术涉及机械、电子、计算机、语言学和人工智能等许多学科。现在机器人已经应用在人类社会生活的各个领域,发挥着越来越重要的影响。 我设计了一个六足爬虫机器人,用日立(HITACHI)的录像机遥控器来对它进行控制。基本原理是:遥控器发出红外学号,机器人通过红外接收器接收倒红外信号后,对信号进行解码,并以存储的代码进行比较,确定指令的含义,后可以实现前进、后退、左转、右转及发声等功能。控制系统我使用的是AT89S51单片机,编程语言使用的是汇编语言,动力系统使用的是微型伺服马达,能源系统使用的是9V电池。下面我将就具体设计进行介绍。 一、arm简介 (一)、arm主要功能列举如下: 主要特性 ​ 16/32位ARM7TDMI-S核; ​ 16/32/64kB片内SRAM; ​ 128/256kB片内Flash程序存储器; ​ 128位宽度接口/加速器可实现高达60 MHz工作频率; ​ Embedded ICE可实现断点和观察点; ​ 嵌入式跟踪宏单元(ETM)支持对执行代码进行无干扰的高速实时跟踪; ​ 10位A/D转换器,转换时间低至2.44μs; ​ CAN接口,带有先进的验收滤波器; ​ 多个串行接口,包括2个16C550工业UART、高速I2C接口(400 kHz)和2个SPI接口。 􀁺 通过片内Boot-loader 软件实现在系统编程(ISP)和在应用编程(IAP);Flash 编程时间:1ms 可编程512 字节,单扇区擦除和整片擦除只需400ms。 􀁺 向量中断控制器,可配置优先级和向量地址。 􀁺当前台任务使用片内RealMonitor 软件调试时,中断服务程序可继续执行。 􀁺 嵌入式跟踪宏单元对指令的执行实现了非插入的高速实时跟踪 􀁺 两个32 位定时器(7 路捕获/比较通道)、PWM 单元(6 路输出)、实时时钟和看门狗定时器。 􀁺 小型的LQFP48 封装(7×7mm2)有多达32 个可承受5V 的通用I/O 口 􀁺 通过可编程的片内锁相环可实现最大为60MHz 的 CPU 操作频率,设置时间为100us。 􀁺 片内晶振的操作频率范围:1MHz~30MHz 􀁺 两个低功耗模式:空闲和掉电 􀁺 通过外部中断将处理器从掉电模式中唤醒 􀁺 外设功能可单独使能/禁止,实现功耗最优化 􀁺 双电源 -CPU 操作电压范围:1.65V~1.95V(1.8V±8.3%) -I/O 电源电压范围:3.0V~3.6V(3.3V±10%),I/O 可承受5V 电压 􀁺 通过片内Boot-loader 软件实现在系统编程(ISP)和在应用编程(IAP);Flash 编程时间:1ms 可编程512 字节,单扇区擦除和整片擦除只需400ms。 二、控制系统电路图 控制系统电路图 三、微型伺服马达原理与控制 (一)、微型伺服马达内部结构 一个微型伺服马达内部包括了一个小型直流马达;一组变速齿轮组;一个反馈可调电位器;及一块电子控制板。其中,高速转动的直流马达提供了原始动力,带动变速(减速)齿轮组,使之产生高扭力的输出,齿轮组的变速比愈大,伺服马达的输出扭力也愈大,也就是说越能承受更大的重量,但转动的速度也愈低。 (二)、微行伺服马达的工作原理 一个微型伺服马达是一个典型闭环反馈系统,其原理可由下图表示: 减速齿轮组由马达驱动,其终端(输出端)带动一个线性的比例电位器作位置检测,该电位器把转角坐标转换为一比例电压反馈给控制线路板,控制线路板将其与输入的控制脉冲信号比较,产生纠正脉冲,并驱动马达正向或反向地转动,使齿轮组的输出位置与期望值相符,令纠正脉冲趋于为0,从而达到使伺服马达精确定位的目的。 (三)、伺服马达的控制 标准的微型伺服马达有三条控制线,分别为:电源、地及控制。电源线与地线用于提供内部的直流马达及控制线路所需的能源,电压通常介于4V—6V之间,该电源应尽可能与处理系统的电源隔离(因为伺服马达会产生噪音)。甚至小伺服马达在重负载时也会拉低放大器的电压,所以整个系统的电源供应的比例必须合理。 (四)、选用的伺服马达 我选用的伺服马达为TowPro的,型号为SG303。其主要技术参数如下: ​ 转速:0.23秒/60度。 ​ 力矩:3.2kg·cm。 ​ 尺寸:40.4mm×19.8mm×36mm。 ​ 重量:37.2g。 ​ 5V电源供电。 ​ 控制周期脉冲宽度为20ms。送出不同的正脉冲宽度是,就可以得到不同的控制效果。控制正脉冲宽度如下:正脉冲宽度为0.3ms时,伺服马达反转。 ​ 正脉冲宽度为2.5ms时,伺服马达正转。 ​ 正脉冲宽度为1.4ms时,伺服马达回到中点。 四、光电传感器 输出电流 DC:<200mA AC:<200mA 继电器输出,触点电流1A 3A 消耗电流 5mA-30mA 响应时间 DC:<2.5ms AC:<30ms 开关频率 <300Hz 绝缘电阻 >200MΩ 外壳体材料 金属/塑料ABS 工作环境照度 太阳光10000LX以下 白炽灯300LX以下 工作环境温度 -20℃~+55℃ 检测物体 透明或不透明 不透明体 指向角   3℃~20℃ 3℃~10℃ 接线方式 2m PVC电缆 插头 五、控制程序 ; 沿黑线走c代码 线的颜色比地面深。         机器人将沿着线的左边前进(例如:检测不到线时向右转,检测到线时左转)         输出端口A和C分别控制左、右驱动轮。         输出端口B控制手臂。         输入端口1通过缓冲装置与触动传感器连接。缓冲器被触动时关闭(从状态0到状态1)          输入端口2是连接光电传感器,检测端朝下,以读取黑线的光值。 下面即为该机器人的程序码: int floor,line; task Main() { Initialize(); Calibrate(); Go_Straight(); while(true) { Check_Bumper(); Follow_Line(); } } .   void Initialize() { SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_2,SENSOR_LIGHT); } void告诉 NQC你正在记述一个子程序,其后为你对它的命名;SetSensor语句用于在1端口设置触动传感器,在2端口设置光电传感器。 void Calibrate() { WaitBumperPress(); floor=SENSOR_2; WaitBumperPress(); line=SENSOR_2; WaitBumperPress(); } void Wait_Bumper_Press() { PlaySound(SOUND_DOUBLE_BEEP); while (SENSOR_1==0); // wait for bumper press while (SENSOR_1==1); // wait for bumper release } Check_Bumper程序负责测试机器人是否碰到障碍及如何反应: void Check_Bumper() { if (SENSOR_1==1) { Stop(); Remove_Obstacle(); Go_Straight(); } } 检查缓冲器是否找到机器人障碍物,叫做Remove_Obstacle子程序,清除路径然后继续运行。Follow_Line程序是使你的机器人接近线的边缘——也就是左边缘。如果光电传感器长时间读到的场地数值,它向右边线的方向转弯。如果相反,它长时间读到线的光值,它会远离线。(看第4章这个方法的讨论) void Follow_Line() { #define SENSITIVITY 5 if (SENSOR_2<=floor+SENSITIVITY) // reading too "floor" Turn_Right(); else if (SENSOR_2>=line-SENSITIVITY) // reading too "line" Turn_Left(); else Go_Straight(); void Go_Straight() { OnFwd(OUT_A+OUT_C); } void Stop() { Off(OUT_A+OUT_C); } void Turn_Left() { Off(OUT_A); OnFwd(OUT_C); } void Turn_Right() { Off(OUT_C); OnFwd(OUT_A); } 我通过这次实习收获了佷多,不仅在能力上得到了提高,拓展了知识面,锻练自己的能力 参考:C Programming Language(2nd Edition) 单片机典型模块设计实例导航 嵌入式.系統c程式設計 步进电机程序控制
/
本文档为【机器人 设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索