体育场室内清扫机器人控制系统设计_第1页
体育场室内清扫机器人控制系统设计_第2页
体育场室内清扫机器人控制系统设计_第3页
体育场室内清扫机器人控制系统设计_第4页
体育场室内清扫机器人控制系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

体育场室内清扫机器人控制系统设计目录 保定理工学院本科毕业设计随着科技的不断进步,机器人产业得到了迅速发展,越来越多的机器人被应用在军事、工业、服务和医疗领域,发挥着举足轻重的作用[1]。近些年整个社会的老年人口越来越多,呈现的老龄化问题非常明显,伴随着人们的收入水平不断地增加,越来越多的人投入到工作中而没有时间进行家务劳动,所以很多的服务机器人开始出现在我们的生活中。清扫机器人作为家庭环境服务的一种,可以自主的清扫垃圾等脏物,而且清扫时能够避开障碍物。清扫地面的工作看起来简单,但是整个过程相当的耗费时间,清扫机器人具有工作快捷、效率好的优点,可以给人们带来干净的环境,彻底解放人们的双手,也可以减少人力劳动成本,具有很广泛的发展前景。目前设计的机器人主要是对于家庭地板的清扫,在工作空间存在较大的清扫局限性,对于体育场设计的清扫机器人相对较少。因此设计和研发室内体育场清扫机器人有着广阔的市场前景和应用价值。2021年吕树雨,商俊辉,史晨琛等研究人员在《看台座椅区域垃圾清扫机器人》中提出设计专门的适合运动场或者是操场看台的进行垃圾清扫的机器人。由于看台范围整体比较的狭窄,所以对设计的机器人清扫时需要考虑狭窄区域的垃圾处理。"一种新型看台座椅垃圾区域清扫机器人"能够实现阶梯攀爬,狭窄座椅区域清扫和垃圾的集中收集等功能[2]。这种看台清扫机器人使用起来很方便,可以实现短时间内体育场的清洁另外操作方便,体现了真正的智能化。2022年王自凯,刘立群,李爱民,易多轩,徐小韦在《基于单片机控制的清扫机器人的设计》中提出设计的STC89C52单片机的智能清洁机器人,这款机器人以单片机控制为基础,另外通过使用红外避障模块可以更好的躲避障碍物,有效的行驶提升清扫的效率。2022年,温齐,尹禹超,吴龙在《支柱绝缘子清扫机器人的设计与分析》中针对传统爬杆机器人在支柱绝缘子上适应性差、执行清扫作业困难等问题,论文研究了一种专门针对支柱绝缘子清扫工作的特种机器人,该机器人具有同时在支柱绝缘子上轴向运动和旋转运动的性能。主要阐述该机器人各种部件的工作原理及特点,并进行力学性能校验。该机器人采用机械臂弯曲、夹持机构交替爬行实现支柱绝缘子上行走,采用夹持机构上的旋转电机进行旋转运动,采用可伸缩式毛刷清扫支柱绝缘子,实现支柱绝缘子清扫功能。2023年周亮军、陈尔佳、王琪、王飞等研究人员在《一种滚刷盘高压喷水混合式光伏电池板清扫机器人的研究》中研究一种滚刷盘-高压喷水混合式光伏电池板清扫机器人,该设计采用以单电动机为核心的一级传动结构带动二级传动结构的模式,减少电动机的使用,从而大大提高经济效益[3]。独特的行走轮辅助轮垂直安装方式,解决了传统清洁机器人在光伏组件上稳定性差的问题。2022年

DoHuy;

VuLeAnh;

YiLim;

HoongJoelChanCheng;

TranMinh;

VanDucPhan;

VuMinhBui;

WeegerOliver;

MohanRajeshElara等人在《Heatconductioncombinedgrid-basedoptimizationmethodforreconfigurablepavementsweepingrobotpathplanning》中提出一个可重构的路面清扫机器人Panthera,可以通过压缩和扩展来重构宽度。这种自治系统克服了路面清洗行业面临的挑战,如获取紧凑型和狭窄型路面[4]。宽度的可重构性使得机器人能够在扩展状态下最大化清洗面积,在压缩状态下通过紧空间进行导航,而固定形状的机器人无法通过。尽管有其优点,但大多数路径规划(PP)算法都是针对固定形状机器人开发的,对于能够在宽度上进行扩展和压缩的可重构机器人,PP方面的工作很少或没有。为了应对这一挑战,通过绘制传热学分析与PP的相似性,提出了一种新的路面扫描可重构机器人PP方法。热量从热源传递到热沉,只能通过导电材料传递[5]。同样,PP使得机器人在进入可行区域的同时,能够从起始运动到目标。提出的路径规划器采用了一种基于热梯度上升的组合网格优化算法,以平滑度、距离和机器人足迹最优的路径。路径规划器在四个虚拟环境中进行测试,并在真实环境中进行验证。2023年,KimKyungmin;

SeoChangkook;

KimHwaSoo;

SeoTaeWon等人在《Verticalerrorcontrolforthefaçade-cleaningrobotequippedonagondola》中提出随着许多高层建筑的兴建,对其立面的清洁和管理需求自然增加[6]。为了应对这种需求,人们开发了各种各样的立面清洁机器人来保护工人免受危险。为了使外立面清洁机器人在建筑物上可靠运行,不仅需要克服窗框等障碍物,还需要对建筑物外墙进行有效清洁。在现有的立面清洁机器人中,吊篮式立面清洁机器人具有越障性好、结构简单、清洁能力强、安装方便等优点[7]。然而,人们经常观察到,由于安装在吊篮上的清洗装置的运动受到限制,以及风引起的吊篮摆动等干扰,障碍物周围的区域仍然没有被清理。在这项研究中,提出了一种z轴机械手(ZAM),用于安装在吊船上的立面清洁机器人,以尽量减少障碍物周围的不清洁区域。为此,激光传感器和光传感器巧妙地结合起来,以检测障碍物。此外,采用控制方法来确保所提出的机械臂在风等扰动下具有良好的清洁性能[8]。本研究将完成体育场室内清扫机器人整体的构造,该整体通过STM32为基础、配合使用超声波传感器、驱动电机、摄像头模块、无线模块组成。利用摄像头单元采集数据,传感器会生成信号发送给单片机,手机单元可以通过蓝牙通信的方式连接至单片机,手机可以显示相关单片机的信息,而且手机还能进行参数控制进而控制整个机器人的运动。所设计的系统具体完成如下几项功能:1.可以通过相关的按钮实现清扫机器人的前后左右不同方向的移动,而且移动过程中也可以进行清扫,另外也可以进行机器人的速度控制;2.运行过程中能够有效避障,实现自我保护;3.整个硬件系统的设计体积小,重量较轻,便于操纵控制;4.可实现清扫过程中的长距离控制;5.显示机器人的相应状态,同时可以完成远距离的无线控制。论文的章节安排主要有以下几个内容,具体分为6个板块:(1)第1章,绪论,讲述清扫机器人设计的必要性以及阅读相关的一些文章来描述清扫机器人的现在研究和将来趋势,同时讲述本研究的目的性及功能。(2)第2章,讲述整个机器人的设计,然后进行不同应用单元的型号筛选对比。(3)第3章,系统硬件部分的设计,讲述针对总的功能实现,不同的硬件单元的电路。(4)第4章,系统软件设计,该部分重点讲述针对具体功能代码编写的流程图,以及整个程序设计的总框架。(5)第5章,针对完成的机器人作品进行电路部分和功能部分的实验,具体分析相关的试验过程。(6)第6章,结论,讲述现有的清洁机器人的研究,并且针对未来的技术发展提出机器人的进一步发展。本研究将完成体育场室内清扫机器人整体的研究,该整体通过STM32为基础、配合使用超声波传感器、驱动电机、摄像头模块、无线模块组成。利用摄像头单元采集数据,传感器会生成信号发送给单片机,手机单元可以通过蓝牙通信的方式连接至单片机,手机可以显示相关单片机的信息,而且手机还能进行参数控制进而控制整个机器人的运动。方案一:80C51单片机是MCS-51系列单片机中的一款型单片机,即51系列[9]。它设计应用到CMOS工艺本身运行速度快,但是消耗功率很低。但是51单片机的地址空间仅仅有64kB,外部设备接口仅有三个定时器和一个串口,相应的能够连的其它的外设量较少,所以对全部系统设计就会受到比较大的限制。方案二:STM32是32位的单片机,STM32系列主要是依赖主流的Cortex内核,具有极高的功能性;具有强大的软件支持和丰富的软件包;芯片型号种类多,覆盖面广。跟51系列单片机相比,优点,速度更快(时钟可以到72M),RAM和ROM的空间更大而且外设更多。通过两个比较,根据清洁机器人的功能,本次使用第二个方案。清扫机器人这个选用STM32F407系列芯片。它是ST(意法半导体)研究的ARMCortex™-M4为内核的高性能微控制器,其采用了90纳米的NVM工艺和ART(自适应实时存储器加速器,STM32F407通信接口多达15个,定时器多达17个,可以利用支持CompactFlash、SRAM、PSRAM、NOR和NAND存储器的灵活静态存储器控制器轻松扩展存储容量[10]。图2.1STM32最小系统图图3.1电源模块实物图片图3.2电源模块电路图图3.3摄像头模块实物图图3.4摄像头模块电路图图3.5BT04引脚图图3.6蜂鸣器警报电路图3.7SG90舵机图片图3.8超声波模块原理图图3.9继电器原理图图4.1摄像头模块程序流程图图4.2蓝牙模块流程图图4.3调速系统流程图图4.4显示子程序流程图图4.5超声波模块流程图图4.6继电器模块流程图图5.1实物展示图5.2配对页面图5.3配对页面图5.4循迹模式图5.5机器人追随小球运动1.可以通过相关的按钮实现清扫机器人的前后左右不同方向的移动,而且移动过程中也可以进行清扫,另外也可以进行机器人的速度控制;2.运行过程中能够有效避障,实现自我保护;3.整个硬件系统的设计体积小,重量较轻,便于操纵控制;4.可实现清扫过程中的长距离控制;5.显示机器人的相应状态,同时可以完成远距离的无线控制。[1]王自凯,刘立群,李爱民等.基于单片机控制的清扫机器人的设计[J].物联网技术,2022,12(08).

[2]史秀男.基于单片机设计的清扫机器人[J].通讯世界.2015(16).[3]姚兴田,马永林,徐丹等.基于单片机的楼道清洁机器人控制系统设计[J].制造业自动化.2014(04).

[4]王祥,罗亚,丁红发.清扫机器人避障系统区块链私钥分片存储方法[J].机械设计与制造,2022(11).

[5]王辉,罗庆,王鹏等.楼梯清扫策略及技术应用研究[J].甘菊科技,2021(18).

[6]潘瞳,孙文磊,李红.光伏组件智能清扫机器人设计[J].太阳能学报.2021,42(07).

[7]贺承宇.清扫机器人的路径规划与避障算法研究[D].哈尔滨理工大学,2021.

[8]刘斌,赵大荃,邓伟俊.水面漂浮物自动清扫机器人[J],电工技术.2021(02).

[9]HolovatyyAndriy.DevelopmentofIoTWeatherMonitoringSystemBasedonArduinoandESP8266Wi-FiModule[J].IOPConferenceSeries:MaterialsScienceandEngineering,2021,10.[10]BishtRavindraSingh,PathakPushparajMani,PanigrahiSorajKumar.High-altitudewall-hangingcleaningrobot[J].MechanismandMachineTheory,2022,168.[11]NguyenChi-Cong,NguyenVan-Tinh,TaoNgoc-Linh,NguyenThanh-Trung,NguyenNgoc-Kien,BuiNgoc-Tam.DesignandFabricationofSiloCleaningRobotUsingVacuumPrinciple[J].JournalofPhysics:ConferenceSeries,2021,19.[12]时光升,董慧芳,杨佳宾等.一种高层建筑楼梯清扫机器人的结构设计[J].科技风,2022(36).[13]于入洋,王江涛,何人可等.\o"基于用户行为的扫地机器人APP体验优化方法研究"基于用户行为的扫地机器人APP体验优化方法研究[J].\o"包装工程"包装工程,\o"2022(02)"2022(02).[14]王星宇;孙京诰.\o"自清洁扫拖烘扫地机器人的设计与实现"自清洁扫拖烘扫地机器人的设计与实现[J].\o"现代信息科技"现代信息科技,\o"2021(17)"2021(17).[15]马可,何人可,马超民.\o"基于语音交互的家用智能扫地机器人体验设计研究"基于语音交互的家用智能扫地机器人体验设计研究[J].\o"包装工程"包装工程,\o"2020(18)"2020(18).[16]曹凯凌;谭玉婷.\o"基于STM32单片机的寝室扫地机器人"基于STM32单片机的寝室扫地机器人[J].\o"电子制作"电子制作,\o"2018(09)"2018(09).[17]刘隆盛;刘小虎.\o"基于3D打印的小型家用扫地机器人设计"基于3D打印的小型家用扫地机器人设计[J].\o"新余学院学报"新余学院学报,\o"2019(03)"2019(03).[18]卢一文.\o"基于单片机的扫地机器人的设计与实现"基于单片机的扫地机器人的设计与实现[J].\o"数字技术与应用"数字技术与应用,\o"2019(02)"2019(02).[19]Gonzalez,David;Perez,Joshue;Milanes,Vicente;Nashashibi,Fawzi.\o"AReviewofMotionPlanningTechniquesforAutomatedVehicles"AReviewofMotionPlanningTechniquesforAutomatedVehicles[J].IEEEtransactionsonintelligenttransportationsystems,2016(4).[20]AndreaCensi;AntonioFranchi;LucaMarchionni;GiuseppeOriolo.\o"SimultaneousCalibrationofOdometryandSensorParametersforMobileRobots."SimultaneousCalibrationofOdometryandSensorParametersforMobileRobots.[J].IEEETrans.Robotics,2013(2).调速代码:classPID:_kp=_ki=_kd=_integrator=_imax=0_last_error=_last_derivative=_last_t=0_RC=1/(2*pi*20)def__init__(self,p=0,i=0,d=0,imax=0):self._kp=float(p)self._ki=float(i)self._kd=float(d)self._imax=abs(imax)self._last_derivative=float('nan')defget_pid(self,error,scaler):tnow=millis()dt=tnow-self._last_toutput=0ifself._last_t==0ordt>1000:dt=0self.reset_I()self._last_t=tnowdelta_time=float(dt)/float(1000)output+=error*self._kpifabs(self._kd)>0anddt>0:ifisnan(self._last_derivative):derivative=0self._last_derivative=0else:derivative=(error-self._last_error)/delta_timederivative=self._last_derivative+\((delta_time/(self._RC+delta_time))*\(derivative-self._last_derivative))self._last_error=errorself._last_derivative=derivativeoutput+=self._kd*derivativeoutput*=scalerifabs(self._ki)>0anddt>0:self._integrator+=(error*self._ki)*scaler*delta_timeifself._integrator<-self._imax:self._integrator=-self._imaxelifself._integrator>self._imax:self._integrator=self._imaxoutput+=self._integratorreturnoutputdefreset_I(self):self._integrator=0self._last_derivative=float('nan')完整代码:importsensor,image,timefrompidimportPIDfrompybimportUART,Pin,Timer,Servoimportpyb,ustructfrompybimportPinfrommachineimportSPI#定义小车状态数据结构classCARSTATE(object):enSTOP=0enRUN=1enBACK=2enLEFT=3enRIGHT=4enRELEASE=5enCATCH=6enMANUAL=7enTRACING=8enFLITING=9enAVOIDING=10#参数初始化uart1=UART(1,9600)#PA9,PA10#globalbluetooth_stutas,usr_key_event,key_event,G_FLAGbluetooth_stutas=0key_event=0usr_key_event=0G_FLAG=0spi=pyb.SPI(2,pyb.SPI.SLAVE,polarity=0,phase=0)pin=pyb.Pin("B11",pyb.Pin.IN,pull=pyb.Pin.PULL_UP)clock=time.clock()last_time=time.ticks()key=Pin('A0',Pin.IN,Pin.PULL_UP)usrkey=Pin('D8',Pin.IN,Pin.PULL_UP)#小车状态全局变量#globalg_carstate,g_cardir,power,ball_sg_carstate=CARSTATE.enMANUALg_cardir=CARSTATE.enSTOPpower=800ball_s=0#舵机控制参数pan_servo=Servo(1)#左右控制tilt_servo=Servo(2)#上下控制pan_angle=0#上下运动控制,设置一个初始角度titl_angle=0#左右舵运动控制,初始角度THRESHOLD=(53,99,-13,46,29,57)#黄色乒乓球##red_threshold=(55,27,22,51,-2,27)#red_threshold=(61,23,21,67,-7,41)##红色pan_pid=PID(p=0.2,i=0,imax=90)#脱机运行或者禁用图像传输,使用这个PIDtilt_pid=PID(p=0.15,i=0,imax=90)#脱机运行或者禁用图像传输,使用这个PIDdis_pid=PID(p=0.6,i=0.01)len_pid=PID(p=0.2,i=0.01)###############################小车PWM控制########################################如果上电时出现电机异常运转,是因为PB4引脚默认为JTAG功能,更新到最新日期的固件可解决这个问题pwmA1=Pin('B0')#TIM3_CH3pwmA2=Pin('B1')#TIM3_CH4pwmB1=Pin('B4')#TIM3_CH1pwmB2=Pin('B5')#TIM3_CH2#定义定时器3,频率为1000Hz,即1ms一次定时器中断tim=Timer(3,freq=1000)#初始化PWM,通过调节PWM控制左右轮速度,初试占空比为0(车静止)Left1=tim.channel(4,Timer.PWM,pin=pwmA1,pulse_width_percent=0)Left2=tim.channel(3,Timer.PWM,pin=pwmA2,pulse_width_percent=0)Ritht1=tim.channel(1,Timer.PWM,pin=pwmB1,pulse_width_percent=0)Ritht2=tim.channel(2,Timer.PWM,pin=pwmB2,pulse_width_percent=0)defrun(left_speed,right_speed):#print("left_speed",left_speed)#print("right_speed",right_speed)ifleft_speed<-100:left_speed=-100elifleft_speed>100:left_speed=100ifright_speed<-100:right_speed=-100elifright_speed>100:right_speed=100ifleft_speed>0:Left1.pulse_width_percent(abs(left_speed))Left2.pulse_width_percent(abs(0))else:Left1.pulse_width_percent(abs(0))Left2.pulse_width_percent(abs(left_speed))ifright_speed>0:Ritht1.pulse_width_percent(abs(right_speed))Ritht2.pulse_width_percent(abs(0))else:Ritht1.pulse_width_percent(abs(0))Ritht2.pulse_width_percent(abs(right_speed))#定义机械爪舵机运动角度#输入:舵机运动到目标角度#输出:无defservo_control_angle(servo,servo_angle):ifservo_angle<=0:servo_angle=0ifservo_angle>=180:servo_angle=180percent=(servo_angle+45)/18servo.pulse_width_percent(percent)#功能:目标距离计算#输入:目标宽度或直径,单位:像素值,real_Lm,目标实际长度或直径,一般取长+宽/2#输出:距离mm#note:不同的镜头焦距和摄像头芯片对应的距离参数不同,具体可配合超声波测距模块进行距离参数标定defobj_distance(obj_Lm):distance=16000/obj_Lm#obj_Lm为目标长度,分子为距离系数,不同的摄像头需要测定一下系数#print(distance)returndistance#功能:寻找最大的色块,计算方式为像素面积排序#输入:色块链表blobs,中心坐标X(blob[0]),中心坐标y(blob[1]),(像素宽)blob[2],(像素高)blob[3],#输出:最大色块max_blobdeffind_max(blobs):max_size=0forblobinblobs:ifblob[2]*blob[3]>max_size:max_blob=blobmax_size=blob[2]*blob[3]returnmax_blobdefwifi_key_detect():globalkey_eventkey_state=0if(key_state==0):if(key.value()==0):key_state=key_state+1elif(key_state<2):key_state=key_state+1elif(key_state==2):key_state=key_state+1key_event=1else:if(key.value()==1):key_state=0returnkey_eventdefusr_key_detect():globalusr_key_eventusrkey_state=0if(usrkey_state==0):if(usrkey.value()==0):usrkey_state=usrkey_state+1elif(usrkey_state<2):usrkey_state=usrkey_state+1elif(key_state==2):usrkey_state=usrkey_state+1usr_key_event=1else:if(usrkey.value()==1):usrkey_state=0returnusr_key_eventdefbluetooth_deal():globalbluetooth_stutas,G_FLAG,g_cardir,g_carstateifuart1.any():rec=uart1.read(1)ifrec!=None:rec=bytes(rec)print(rec)ifrec==b'\r'and(bluetooth_stutas==0):bluetooth_stutas=1ifrec==b'\n'and(bluetooth_stutas==1):bluetooth_stutas=2ifbluetooth_stutas==2:ifrec==b'\x00':#停车g_cardir=CARSTATE.enSTOPifrec==b'\x01':#前进g_cardir=CARSTATE.enRUNifrec==b'\x02':#后退g_cardir=CARSTATE.enBACKifrec==b'\x03':#左转g_cardir=CARSTATE.enLEFTifrec==b'\x04':#右转g_cardir=CARSTATE.enRIGHTifrec==b'\x05':#循迹g_carstate=CARSTATE.enTRACINGifrec==b'\x06':#跟随g_carstate=CARSTATE.enFLITINGG_FLAG=2ifrec==b'\x07':#避障g_carstate=CARSTATE.enAVOIDINGG_FLAG=1ifrec==b'\x08':#关灯g_cardir=CARSTATE.enRELEASEifrec==b'\x09':#开灯g_cardir=CARSTATE.enCATCHBST_fLeftMotorOut=0BST_fRightMotorOut=0g_power=500if(g_carstate==CARSTATE.enMANUAL):#手动控制小车if(g_cardir==CARSTATE.enSTOP):BST_fLeftMotorOut =0BST_fRightMotorOut=0elif(g_cardir==CARSTATE.enRUN):BST_fLeftMotorOut=g_powerBST_fRightMotorOut=g_powerelif(g_cardir==CARSTATE.enBACK):BST_fLeftMotorOut=-g_power/2BST_fRightMotorOut=-g_power/2elif(g_cardir==CARSTATE.enLEFT):BST_fLeftMotorOut=-g_power/2BST_fRightMotorOut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论