当前位置:文档之家› 说明书—识别搬运机器人

说明书—识别搬运机器人

作品名称:识别搬运机器人指导老师:吴爱梅、刘永平作者:谢春伟、杜存忠、董航、高军林机器人综合了机械学、电子学、计算机科学、自动控制工程、人工智能、仿生学等多个学科的最新研究成果,代表了机电一体化的最高成就,是当今世界科学技术发展最活跃的领域之一。

一、作品组成1.BASIC Stamp微控制器BASIC Stamp微控制器是以PBASIC为编程语言,通过解释器对PBASIC应用程序进行解释执行的微型计算机,具有8路或16路I/O通道,每个I/O通道接脚可以直接连接发光二极管、蜂鸣器、颜色识别传感器等各种传感器。

通过增加一些额外元器件,可以实现不同的功能。

BASIC Stamp由一个5伏特电压调节器、晶振器、Serial EEPROM、及一个PBASIC 解释器组成。

2.伺服马达伺服马达有三根不同色线,分别为:黑、红、白,其中红色的为电源线;黑色为地线;白色的为控制信号线,通过对这信号线输入脉冲序列来控制电机的运动,可以控制电机的运动速度,运动方向。

3.传感器TCS230颜色传感器属于图像传感器,图像传感器可分为互补金属氧化物半导体(CMOS)图像传感器和电荷耦合器件(CCD)图像传感器两类。

CMOS型和CCD型固态图像传感器在光检测方面都利用了硅的光电效应原理,采用感光元件作为影像捕获的基本手段,感光元件的核心都是一个感光二极管(photodiode),该二极管在接受光线照射之后能够产生输出电流,而电流的强度则与光照的强度对应。

每个感光元件对应图像传感器中的一个像点,由于感光元件只能感应光的强度,无法捕获色彩信息,因此必须在感光元件上方覆盖彩色滤光片。

TCS230颜色传感器是由一个颜色检测器组成,包括一个TAOS TCS230 RGB 的传感器芯片,白色的发光二极管,瞄准镜,板卡上的插槽和连接线。

TCS230颜色传感器通过插槽或直接相连来与其他BASIC Stamp模块接口,在其固定的范围内对可见光颜色进行检测。

4.机械手主要有手爪支架,手爪臂,及手爪组成,用来模拟人手用来抓取已识别的物体,然后进行搬运指定区域。

二、创新来源该作品启示于生活当中港口码头对不同颜色的集装箱搬运。

从而联想到机器人根据不同颜色自动分拣的目的,以提高搬运工作效率。

三、实现功能机器人从指定区域启动后,到达设定目的地用机械手对不同色块进行分捡和搬运。

机器人在得到指令后启动,不需再次接触机器人,由机器人自主运行完成任务,每次任务机器人连续运行。

四、调试说明1.将机器人放置于启动区的中心位置,此位置相对比较重要(此位置关系到整体的运动结果)。

保证机器人在第一次行走后能到达正五边行的中间位置。

2.调整传感器的位置,与水平面夹角约为75度。

(可根据实际的情况调整)3.若机器人经测试未能达到指定位置,可进行参数的调整。

五、注意事项1.CMUCAM传感器对周围的环境要求比较严格,故在改变环境的情况下,需要重新设置各种颜色的参数值。

2.调试时,尽量保证周围无相同颜色的物体,以免误检测。

3.在每次运行机器人前,必须对机器人各部件进行详细检查。

例如,电源电压(6-9v),机械手的灵活性等。

4.伺服电动机必须调零。

六、机器人的控制1.机器人控制组成部分机器人主要由单片机控制,通过驱动电路控制直流伺服电动机,从而控制机器人的行走和机械手的动作。

控制流程图1所示:图1 控制流程图2.机器人直流电源和功率放大器该机器人的驱动采用的是直流伺服电动机,直流电源由4节5号电池提供,电压范围为6-9V,所以它省略了整流电路和稳压电路。

功率放大电路,我们采用的是PWM脉宽调制电路,脉宽调制放大电路有较宽的频带,动态特性较好,抗干扰能力强。

功率放大电路如图2所示:图2 功率放大电路3.单关节机器人的建模与控制该机器人的机械手抓物属于单关节的位置控制,其单关节开环控制传递函数框图如图3所示:图3 单关节开环控制传递函数框图单关节的位置控制是利用由电机组成的伺服系统使关节的实际角位移跟踪预期的角位移,把伺服误差作为电机输入信号,产生适当的电压。

即式中,kp是位置反馈增益(v/rad); 是系统误差;n 是转比。

实际上“位置负反馈”把单关节机器人系统从开环系统变为闭环系统。

关节角度的实际值可用光电编码器或电位器测出。

对式进行拉普拉斯变换,得其闭环传递控制函数框图如图4所示:图4闭环传递控制函数框图七、电子元件布置图:八、程序流程图九、程序与调试' {$STAMP BS2}' {$PBASIC 2.5}DOGOSUB arm_on ‘大角度打开机械手GOSUB arm_off ‘关闭机械手GOSUB arm_on1 ‘小角度打开机械手GOSUB arm_off ‘关闭机械手LOOParm_on:FOR i=1 TO 20PULSOUT 13,450PAUSE 20NEXTRETURNarm_off:FOR i=1 TO 20PULSOUT 13,780PAUSE 20NEXTRETURNarm_on1:FOR i=1 TO10PULSOUT 13,450PAUSE 20NEXTRETURN'{$STAMP BS2}' {$PBASIC 2.5}' CMUcam Boe-Bot Demo Program 3' Copyright 2002, Seattle Robotics' Basic Stamp 2' CMUcam jumpered for Baud 9600RcvData V AR Byte(10)step1 V AR WordConfid V AR Bytei V AR Wordblue_count V AR Wordred_count V AR Word' Pause 1 second for CMUcam startup'PAUSE 1000' Send "reset" to sync CMUcam and StampSEROUT 10, 84, ["RS",CR]SERIN 9, 84, [WAIT (":")]PAUSE 1000' Turn on auto adjust for 5 secondsSEROUT 10, 84, ["CR 18 44",CR]SERIN 9, 84, [WAIT (":")]PAUSE 100' Pause 5 seconds for CMUcam to auto adjust to lighting conditions PAUSE 5000' Turn off auto adjustSEROUT 10, 84, ["CR 18 44 19 32",CR]SERIN 9, 84, [WAIT (":")]PAUSE 100' Send command - Set poll mode - only sends one return packet - ' of data after each command - reduces data flowSEROUT 10, 84, ["PM 1",CR]SERIN 9, 84, [WAIT (":")]PAUSE 100' Send command - Set raw data mode - also suppress Ack:/Nak: to - ' further reduce serial dataSEROUT 10, 84, ["RM 3",CR]PAUSE 100'直行至五边形中间位置GOSUB arm_onstep1=200GOSUB FwdGOSUB arm_offMain:DO WHILE(blue_count<3)GOSUB CMUCam_blueIF RCVData(2) < 55 AND Confid>15 THENblue_count=blue_count+1 '记录识别到的颜色个数GOSUB arm_on1step1=80 '向前行走一段距离GOSUB FwdIF blue_count<3 THEN GOSUB arm_off'机械手动作GOSUB backELSEstep1=1GOSUB turn_leftENDIFLOOPGOSUB turn_back_right_180blue_count=0DO WHILE(blue_count<2)GOSUB CMUCam_blueIF RCVData(2) > 41 AND Confid>15 THEN'记录识别到的颜色个数blue_count=blue_count+1GOSUB arm_on '机械手动作step1=80GOSUB Fwd '向前行走一段距离IF blue_count<2 THENGOSUB arm_offGOSUB backENDIFELSEstep1=1GOSUB turn_rightENDIFLOOPstep1=210GOSUB Fwdstep1=17GOSUB turn_rightstep1=100GOSUB FwdGOSUB arm_onstep1=200GOSUB backstep1=17GOSUB turn_rightstep1=130GOSUB Fwdstep1=10GOSUB turn_leftred_count=0DO WHILE(red_count<3)GOSUB CMUCam_redIF RCVData(2) > 40 AND Confid>15 THENred_count=red_count+1 '记录识别到的颜色个数GOSUB arm_on1step1=110GOSUB Fwd '向前行走一段距离GOSUB arm_offELSEstep1=1GOSUB turn_rightENDIFLOOPGOSUB arm_on1step1=100GOSUB backGOSUB turn_rightGOSUB arm_onstep1=100GOSUB Fwdred_count=0DO WHILE(red_count<3)GOSUB CMUCam_redIF RCVData(2) < 55 AND Confid>15 THENred_count=red_count+1 '记录识别到的颜色个数IF red_count<3 THENGOSUB arm_on1IF red_count<3 THENstep1=160ELSEstep1=120ENDIFGOSUB Fwd '向前行走一段距离GOSUB arm_off '机械手动作ELSEGOSUB arm_onstep1=120GOSUB FwdENDIFELSEstep1=1GOSUB turn_leftENDIFLOOPstep1=200GOSUB FwdPAUSE 200red_count=0DO WHILE(red_count<1)GOSUB CMUCam_redIF RCVData(2) < 35 AND Confid>15 THENred_count=red_count+1 '记录识别到的颜色个数step1=1GOSUB turn_left ENDIFLOOPstep1=150GOSUB Fwdstep1=100GOSUB backstep1=21GOSUB turn_leftstep1=255GOSUB FwdPAUSE 50000GOTO MainFwd:FOR i=1 TO step1PULSOUT 14,803PULSOUT 15,650PAUSE 20NEXTRETURNback:FOR i=1 TO step1PULSOUT 14,708PULSOUT 15,850PAUSE 20NEXTRETURNturn_back_left_180:FOR i=1 TO 44PULSOUT 14,708PULSOUT 15,650PAUSE 20NEXTRETURNturn_back_right_180:FOR i=1 TO 44PULSOUT 14,803PULSOUT 15,850PAUSE 20NEXTRETURNturn_right:FOR i= 1 TO step1PULSOUT 14,803PULSOUT 15,850PAUSE 20NEXTRETURNturn_left:FOR i=1 TO step1PULSOUT 14,708PULSOUT 15,650PAUSE 20NEXTRETURNarm_on:FOR i=1 TO 10PULSOUT 13,850PAUSE 20NEXTRETURNarm_off:FOR i=1 TO 50PULSOUT 13,1060PAUSE 20NEXTRETURNarm_on1:FOR i=1 TO 50PULSOUT 13,920PAUSE 20NEXTRETURNCMUCam_blue:SEROUT 10, 84, ["TC 13 20 10 40 50 100",CR] SERIN 9, 84, [STR RcvData\10]Confid = RcvData(9)RETURNCMUCam_red:SEROUT 10, 84, ["TC 30 60 10 50 10 50",CR]SERIN 9, 84, [STR RcvData\10]Confid = RcvData(9)RETURN。

相关主题