机器人制作开源方案 | 清洁机器人

作者:胡志宇、白永康、颉志国、刘昭迅、王维浩

单位:北京石油化工学院

指导老师:陈亚、王殿军

1. 设计方案论证

1.1 清洁机器人方案选择

      目前,市场上清洁机器人比比皆是,各大品牌之间的竞争也相当激烈,每个厂商都想制作出更吸引人眼球、功能齐全、覆盖率广且价格实惠的机器人。随着科学技术的不断更进,能够自主吸尘和拖地的机器人已经出现,在全国机械及机器人设计大赛上也纷纷涌出很多兴趣爱好者们对清洁机器人研发及制作的作品。值得一提的是,这些大学生们所设计的作品,不仅有着高水平的创新意义,在技术方面也不亚于生产领域的工程师们,相信不少产品投放市场的机会指日可待。本次课题“清洁机器人设计”范围广泛,本着多个方案择优选择的原则对本次课题进行方案的选择。

      方案一:吸尘+净化空气

      当今市场的吸尘机器人技术和功能都相当成熟,要想在现有的基础上实现创新的价值,要么增加或改变功能,要么对该领域所存在的技术缺陷进行改善。对于后者来说,实现起来相当困难,不仅是因为自己的相关技术知识有限,更是对高科技的一种敬畏。于是,初步的设想是在原有吸尘器的基础上添加净化空气的装置,在机器人实现扫地功能的同时对室内空气质量也做了改善。

      方案二:外观似昆虫(有触角和尾巴),用触角吸尘,用尾巴拖地

      搜寻资料时,发现一款清洁机器人带有两个长长的触角,后边还有一个长尾巴,形状像极了昆虫。对于它的介绍很少,用两个长长的触角吸尘,后边的尾巴上携带了一个长方形的毛刷,用来拖地。于是,想仿照这个样子,做出一个雷同的可以吸尘和拖地的清洁机器人。

      方案三:吸尘+拖地(带水箱)

      此方案也是吸尘和拖地并用功能,带有水箱装置,可以自动给拖布供水。为了达到更好的拖地效果,需要增大拖布与地面之间的摩擦力,此方案将吸尘口设置在驱动轮和拖布之间,利用真空吸尘产生的负压使拖布对地面的摩擦力增大,拖地效果更好。

      综上所述,对于三种方案,肯定都存在着不足之处,但都是朝着创新方向进行设计。针对家庭清洁机器人来说,相比较之下,方案三更贴近主题,更能替辛勤的人们减轻家务负担。

1.2 清洁机器人方案分析

      由于本项目的范围定位在地面清洁,对于以上三种方案进行各方面的对比与性能分析。

     方案一:吸尘是地面清洁机器人所必备的功能,安装净化装置测量空气指数,来达到净化空气的目的,它在某种意义上实现了清洁机器人的创新,但是,从地面清洁的程度来说,它简化了清洁的力度,降低了清洁效果。一个全新的清洁机器人设计,只有吸尘是不够的,所以此方案不是很完善。

      方案二:在技术方面不知如何创新时,初步的设想是选择从外观方面入手,做一个外观漂亮,功能有吸尘,有拖地的机器人。如下图所示:两个长长的触角,一对眼睛用来探测障碍物,后面像个尾巴连着拖地刷。这种方案的优点是能够很好的清洁角落,可以吸尘和拖地。缺点是触角也能影响它的清洁域,此方案结构看似简单,实际做起来很难。若想实现吸尘、拖地功能,程序会很复杂。这是一个理想化的清洁机器人,不易于实现。

带触角清洁机器人

      方案三:考虑到本项目着重突出地面清洁,能将地面清洁的越干净越好。所以设想能够吸尘和拖地,拖地更需要智能化。市场上的清洁机器人有带水箱的,由于拖布与地面的摩擦力小,但是拖地效果都一般。为了解决此方案的问题,将吸尘口布置在驱动轮与拖布之间,利用吸尘产生的真空负压增大拖布与地面的摩擦力,从而增强了拖地效果。

      水箱模块最初的设想为开放式塑料水箱,水箱需要密封,应该增加箱盖,水箱需要加水,箱盖是可开启式的。水箱需要向拖布注水,增加导管和阀门,阀门自动开启关闭,应该用电磁阀或电机驱动开闭。这种传统的思维最终结果是导致水箱结构非常复杂,难以加工且成本很高。体积较大的水箱也增加了清洁机器人的高度。

      用注射器代替水箱的方案。注射器容量大,自带密封胶圈,加水也容易,不出水时不会渗漏。但是其原本长度就比较长,当活塞拉出后长度会更长,难以安装在清洁机器人上,最终这一方案也被舍弃。

1.3 清洁机器人方案确定

      根据以上对三种方案的分析,最终选择第三种方案。由两个驱动轮组成移动机构,便于机器人更灵活的行走;机体前端和两侧安装三个红外传感器,控制机器人对障碍物、楼梯或者墙壁的检测,防止碰撞;清扫机构的旋转刷安装在驱动轮前方,由旋转刷清扫灰尘,进入吸尘口吸入垃圾箱;拖布设计在吸尘口的下端部位,且自带水箱给拖布供水,水箱设计为可以按压的微型水箱,利用四杆机构原理按压出水。此设计将吸尘口放置在驱动轮和拖布之间,利用真空吸尘产生的负压使拖布对地面的摩擦力增大,拖地效果更好。

      本次设计的清洁机器人能够实现以下几种功能:

      清扫功能:在行走过程中,由旋转刷将灰尘扫起,后置的吸尘器吸走灰尘,将灰尘放于垃圾盒中。

      拖地功能:由水箱持续往拖布上供水,依靠清洁布与地面的摩擦达到彻底清洁灰尘的效果。

      红外避障功能:在一定范围内,如果没有障碍物,发射出去的红外线,因为传播距离越远而逐渐减弱,最后消失。如果有障碍物,红外线遇到障碍物,被反射到达传感器接收头。

2. 清洁机器人机械结构

      本项目根据“探索者”机器人模块化平台,对清洁机器人进行机械结构的设计和搭建提出如下要求:

      ① 基于“探索者”套件制作,不允许损坏套件设备。具体包括不允许对零件进行胶粘、焊接、铆接、切割、打磨、钻孔、折弯等加工,只允许使用套件提供的螺丝螺母作为紧固件和受力部件,并且不允许使用螺丝胶。

      ② 能够实现扫地、吸尘、拖地功能。

      ③ 为拖布设计合适的润湿机构,能够储水且不能出现渗漏。设计一种控制机构将水均匀地润湿拖布,并且易于控制出水量。

      ④ 通过分析传统清洁机器人结构,针对拖地不干净的现象,提出解决方案并验证理论可行性。

2.1 清洁机器人移动机构

2.1.1 移动机构的设计

      地面移动机器人可采用的移动机构主要有三种形式:车轮式移动机构,履带式移动机构和腿足步行机构。清洁机器人工作环境是室内,采用轮式移动机构非常适合室内地面环境的特点,而且轮式移动机构和其它移动机构相比较,在平坦地面上移动快速灵活,控制相对简单容易。两个驱动轮是由电机驱动,可以整周旋转。

2.1.2 移动机构的电机选型

      初步估计机器人的总重量m=1kg,取g=9.8N/kg

则分配到每个轮子上的载荷为:

由电子称测出机器人吸尘时的重力约为340g,即0.34kg。机器人拖地时拖布对地面的压力为F1:

清洁机器人在优质路面上行走,取

滚动摩擦阻力:

滑动摩擦阻力:

取轮子直径为:D=65mm   d=32.5mm

则轮子在行走过程中所受的阻力矩(扭矩)为(取滑动摩擦阻力):

初步预算清洁机器人的行驶速度V=100mm/s

则车轮每转360°清洁机器人行驶的距离为:

由此可得车轮转360°的时间为:

那么车轮的转速为2s/r,即2s/360°=0.33s/60°

经过计算驱动轮的电机选择圆周舵机,它的参数如下表所示:

选此型号舵机合适。圆周舵机如下图所示:

圆周舵机

2.2 清洁机器人清扫机构

2.2.1 清扫刷的设计

      本项目所制作的清洁机器人带有清扫机构,传统机器人通常采用水平旋转刷清洁地面。考虑到制作成本、工具方面的限制,本文采用圆柱刷代替圆刷。圆柱刷使用金属主轴,刚性好,不易变形。两端采用尼龙架支承,高度可调,并且可以大大缩短制作时间。这种刷子清扫的力度大,效果佳。

      该机构利用电机直接驱动旋转刷的钢丝,在机器人运动的过程中,使旋转刷将垃圾灰尘扫入机器人机体下面,由吸尘系统收集。利用附壁效应形成低压涡流气体,将灰尘截留在吸尘盒中。

2.2.2 清扫机构的电机选型

      刷子的旋转速度只要达到3r/s就可以实现清扫目的,并把垃圾扫到吸尘口处。采用电机直接驱动旋转刷工作,选用直流电机(仅A3003)。直流电机的参数如表2即可满足要求。

电机如下图所示:

直流电机

2.3 清洁机器人的吸尘机构

2.3.1 吸尘盒的设计

      吸尘盒不但要求能够吸入灰尘,而且在断电后不能使灰尘漏出。本文采用薄壁聚乙烯方盒作为吸尘盒,内部使用挡板分隔灰尘,保证断电后不造成二次污染。如下图所示,它的优点是造价便宜,盒子透明,容易看出吸进的灰尘量。缺点是吸尘盒固定于机架,灰尘不易取出,必须通过拆卸吸尘盒来去除。

吸尘盒

2.3.2 吸尘电机的选型

      吸尘器的工作原理,是利用电动机的高速旋转带动叶轮旋转,形成真空空吸,将地面上的灰尘和杂质吸进垃圾储存箱。基本要求是转速高,工作电压低,转矩一般大小就行,噪音小,尺寸小,便于安装,适应长时间工作。叶轮采用7叶叶轮,与传统的轴流风机叶轮相比,奇数片叶轮可以有效减少共振,每只叶轮均经过动平衡处理,震动更小,吸力和转速也因此得到提升。叶轮材质为高强度铝合金,可以承受极高的转速而不发生解体。叶轮如下图所示:

综上选择SP-MD370电机,测试电压为8V,负载转速为19300rpm,最大功率为64W。符合要求,电机如下图所示:

2.4 清洁机器人的拖地机构

2.4.1 水箱的设计

      利用现有的工业成品来制作。虽然购买成品比使用原材料自己搭建更昂贵,但实际上由于工业生产的批量化,很多产品买一个新的比自己做更便宜,而且可以节省时间。这里采用微型喷水瓶作为水箱的替代部件,如下图所示:

微型水箱

      微型喷水瓶使用活塞原理,当活塞被按下时,气压将内部的液体喷出,喷雾均匀,体积小,易操作,不喷水时活塞和气压共同密封内部液体,不会渗漏。

2.4.2 水箱喷水设计

      为了实现软件控制喷水器,需要制作一套四杆机构按压喷水器。采用电机作为喷水器的控制部件,通过水箱自动喷水给拖布供水进行拖地。

      四杆机构设计:

      首先对微型水箱进行分析,从水箱的按压口开始计算,到挤压出水的距离为6mm。所以,需要设计四杆机构装置来完成喷水过程。

      根据微型水箱的高度定义,四杆机构的机架长度为40mm;曲柄的长度为12mm;另一曲柄的长度也为12mm;连杆的长度为40mm;机构的最长杆与最短杆的长度之和为40+12=52mm,其余两杆的长度之和为40+12=52mm,根据四杆机构的基本性质,最短杆和最长杆之和等于其余两杆之和,且是平行四边形为双曲柄机构。

四杆机构原理图

       此机构的旋转角度为60°就可以达到挤压水箱的有效行程,当b、d两杆旋转60°时,b、e、f为等边三角形,f为此机构的有效行程,长度为12mm,而按压的杆到水箱的挤压端的距离为4-6mm,所以此机构的有效行程完全可以达到挤压出水的目的。水箱装置实体建模如下图所示:

水箱结构

2.4.3 增大拖布对地面摩擦力的设计

      由于室内地面并不是理想的平面,车身难免会产生颠簸。而如果将拖布刚性固定在车身下部则会造成拖布前后边缘受力不均,只有一边紧贴地面,大部分面积压力不足,难以充分发挥其清洁作用。本文采用活动式压力板固定拖布,左右各一组。这种结构可以保证拖布前后左右时刻紧贴地面,发挥最佳清洁效果。

      此设计将吸尘口放置在驱动轮和拖布之间,利用真空吸尘产生的负压使拖布对地面的摩擦力增大,拖地效果更好。利用电子称来分别测出风机在旋转和静止时的重力,由此对比可得出对地面摩擦力的增大。参照图如下所示:

2.4.4 拖地机构的电机选型

      由以上介绍可知,此电机需要转动角度为±60°。在“探索者”模块化平台中,有两种标准舵机的转动角度为±90°,可供选型。

      微型水箱下压出水的力,用电子称测出重量转化而成,约为4kg=40N,由四杆机构的曲柄长度12mm可知,扭力为40×1.2=48N.cm=4.8kg.cm。标准舵机的扭力为2.4kg.cm<4.8kg.cm。不能达到要求。

      因此,拖地机构选用“探索者”大标准伺服电机驱动四杆机构挤压水箱给拖布供水,它的参数如表3所示。扭力12.2kg.cm>4.8kg.cm,符合要求。

2.5 机构三维建模

      本设计应用目前比较广泛且好用的Solidworks软件对清洁机器人的模型进行建模。对于Solidworks软件,它有很强大的功能,比如:曲面的结构,异型向导孔的生成,标准件的导出,工程图的生成,还有模拟仿真等等。它可以通过草图完成大部分设计,建模是也相对简单,对于模型的修改也较方便,只要进草图修改尺寸,模型就会随着尺寸的改变而改变,装配体也会随着单个模型的改变跟着改变。清洁机器人的三维建模图形如下所示:

清洁机器人装配体

3. 清洁机器人控制系统设计

     本项目的控制系统平台采用STC系列单片机,它拥有15个输出口,256个字节内存。STC系列单片机自带复位,不需要外部复位电路,兼容5V电源,可以通过USB或移动电源供电,不需要外部供电模块。只需四根线,两个电容,一个12MHz晶振即可工作。

3.1 控制系统硬件设计

     清洁机器人硬件结构主要由以下几部分组成:控制器(单片机)、电机驱动器、环境监测装置与电源模块等,这几个模块在单片机的控制下,相互协调工作,保证了清洁机器人各种功能的实现,模块间关系具体如下图所示:

清洁机器人硬件系统结构框图

   各模块主要组成与功能叙述如下:

      ① 控制器(单片机):主要由单片机STC12C4052AD组成,它的主要功能是完成主控程序与其他各模块的接口,是程序运行的载体并实现对整个机器人的控制。

      ② 电机驱动器:主要由驱动电机驱动器、旋转刷电机驱动器、水箱喷水电机驱动器和吸尘电机驱动器组成,其中驱动电机驱动左右行走轮从而带动清洁机器人运动,旋转刷电机和吸尘电机负责清扫吸尘工作,水箱喷水驱动电机负责拖地工作。

      ③ 环境检测装置:由传感器组成,表示机器人对外界环境的判断。

3.1.1 移动装置

      行驶模块由2个圆周舵机组成,圆周舵机采用PWM信号驱动。通过高电平时长表示输出信号。这种方式可以保证输出信号不受电压波动的干扰。在程序中,只要设置单片机I/O口的电平状态与对应的延时时间即可使用单片机控制舵机。

      如下图所示,当高电平时长为1.5ms时,标准舵机处于中立位置,圆周舵机停止转动,当高电平时长为1ms时,标准舵机正转45度,圆周舵机正转。当高电平时长为2ms时,标准舵机反转45度,圆周舵机反转。

驱动信号时序图

      然而,普通单片机I/O口的输出电流强度并不高,即使作为控制信号,也很难被舵机识别。传统方法是使用三极管对信号进行放大,但在面包板上这将会大大增加连线复杂程度。推挽输出是用两个晶体管或者场效应管构成的推挽电路,这个电路的特点就是输出电阻小,能够驱动大的负载,从而能够使得单片机管脚直接输出舵机驱动信号,无需使用三极管进行放大。如下图所示:

推挽输出对比图

      单片机同一时间只能运行一个程序,利用分时驱动方式同时驱动两个舵机并调节转速,即先给左轮发出信号,再给右轮发出信号,同一时间只驱动一只舵机。由于舵机齿轮具有惯性且信号周期只有20ms,这种驱动方式并不影响正常行驶,是完全可行的。

3.1.2 清洁装置

      清洁部分分为清扫、吸尘和拖地。清扫和吸尘时使用的是直流电机驱动,拖地时给拖布供水的喷水系统使用的是大标准舵机驱动。

      直流电机通过接直流电工作,如果需要调速,可以利用单片机产生高频PWM信号,改变占空比进行调速。该单片机支持2路PWM输出,只需要外接2个三极管即可。喷水系统使用的是大标准舵机。大标准舵机可以调节角度。由于喷水器需要反复按压,因此可以用一个简单的循环程序进行驱动,程序每执行一次,舵机正转60°再反转60°,完成一次按压。

3.1.3 环境检测装置

      清洁机器人在工作时,需要对外界环境进行检测,当遇到墙壁或障碍物时,能够及时避开并进入正常工作状态[17,18],因此本课题选用“探索者”模块化平台中的近红外线传感器。近红外接收端前方5cm以内有障碍物时触发,可用于避障、跟随等。近红外传感器可以发射并接收反射的红外信号,有效检测范围在20cm以内。工作电压:4.7~5.5V,工作电流:1.2mA,频率38KHZ。

      ① 固定孔,便于用螺丝将模块固定于机器人上。

      ② 四芯输入线接口,连接四芯输入线。

      ③ 近红外信号发射头,用于发射红外信号。

      ④ 近红外信号接收头,用于接收反射的红外信号。

近红外传感器

      清洁机器人需要三个近红外传感器,三个红外传感器分别分布在旋转刷的前方,用来检测前方的障碍物;左右驱动轮旁边各一个,用来检测左右两侧的障碍物,分布图如下图所示,在安装近红外传感器时,不能遮挡发射和接收头,以免传感器检测发生偏差。红外线传感器自身有四个接口,其中两个为电源接口,另外两个接口是识别有无障碍的情况。经过测试,连接电源后,当遇到障碍物时输出低电平的那个接口,便是能够检测到障碍物的接口。

3.1.4清洁机器人总电路图

3.2 控制系统程序设计

      清扫机器人作为一种家庭服务机器人,关键的问题在于机器人本身是否实用,也就是说是否能有效清扫房间,清洁机器人在工作时,不是杂乱无章的行走,它需要有计划有规律的进行清洁。因此,需要从机器人的实用性强、可靠性高,成本低等角度,设计一种机器人路径规划算法。

3.2.1 路径规划概述

      路径规划技术是智能机器人领域中的核心问题之一,移动机器人的路径规划就是要给定机器人及其工作环境信息,按照某种优化指标,在起始点和目标点之间规划出一条与环境障碍物无碰撞的路径。对移动机器人的路径规划系统主要要求是:

      ① 在环境地图中寻找移动路径,保证机器人沿该路径移动时不与外界发生碰撞。

      ② 能够处理用传感器感知的环境模型环境中的不确定因素和路径规划执行中出现的误差。

      ③ 通过使机器人避开外界物体而使其对机器人传感器感知范围的影响降到最小。

      ④ 能够按照需要找到最优路径。

3.2.2 路径规划的几种方式

      对于使用单片机控制的清洁机器人来说,很多算法需要占用较大的内存空间,这些要求都过于苛刻。对应清洁机器人自身与工作环境的特点,有四种比较实用的路径规划算法:内螺旋式、往复式、椭圆式、随机式等,如下所示:

内螺旋算法

      内螺旋算法,是让移动机器人沿着墙边移动,然后进行内收缩式的清扫。在移动过程中,可以不断根据与墙边的距离调整所走的方向,这样对于在移动中自身坐标不是很确定的机器人来说,可以辅助周边的事物对其当前的位置进行调整。

往复式算法

      往复式算法或称犁田式算法,可以说是让机器人按“弓”字形方式行走。机器人选择房间的一角,开始来回往返的“犁田式”清扫。往复式清扫有两个基本行为组成,直线行走和转弯。往复式清扫在矩形无障碍物的房间内能很好的工作,通过往复式覆盖,清洁机器人基本能覆盖整个房间,当出现障碍物时,障碍物的另一侧将无法覆盖,就必须有进一步的行为来弥补。

椭圆式覆盖算法

      椭圆式覆盖,机器人由某一点开始沿着椭圆渐开线式轨迹由内向外逐渐扩大。遇到障碍物后,进行避障处理,然后重新选择一点开始椭圆式行走。由于是曲线运动,控制上较难,只能进行初步原理性的探索,进行开环控制。

随机式覆盖算法

      随机式覆盖,就是机器人在工作范围内随机选择方向运动,这就是最简便的一种方法,机器人一直前行,遇到障碍物后就随机改变一个方向继续前行,随机式运动的缺点是覆盖率太低。传统扫地机器人采用避障式算法,通过遇到障碍后随机改变路线实现对室内面积的覆盖。这种方法控制原理简单,但覆盖率差,消耗时间长;少数清洁机器人会采用激光雷达扫描室内障碍物的距离,并使用栅格法自动生成地图,在理论上如果地图分辨率越高,即网格数越多,清洁覆盖率越趋近于100%。然而由于激光雷达传感器十分昂贵,这种清洁机器人的性价比和销售量远不如普通清洁机器人。实际使用中,由于机器人的外形尺寸是固定的,平均尺寸为25cm×30cm即使栅格精度达到1cm每格,由于外形不能缩小,所以仍然难以清洁彻底。

3.2.3 往复式路径规划算法

      由于单片机内部只有256字节RAM空间,无法存储庞大的数组组成栅格并随时对地图中的栅格进行修改,难以进行栅格法路径规划,因此也无法实现以上介绍的内螺旋式路径规划算法。即使通过优化程序勉强存储较小的栅格,由于栅格尺寸大,分辨率差,实际清洁效率反而不如传统方法。因此适用于单片机的路径规划方法既要比传统的避障式算法效率更高,又要能够在单片机中顺利运行。本课题使用往复式路径规划算法。

      由于充电点的位置通常位于房间的角落,这给往复式路径规划算法带来了很大的便利,不但可以使坐标系相对固定,还可以校准起始方向,保证路径的直线度。这种算法的优势在于只需要执行固定的循环程序,就可以对复杂的区域循环清扫。行间距很小,分辨率高。即使房间不是标准的矩形也可以顺利清扫。循环清扫在第一次碰到障碍时需要向右掉头,第二次碰到障碍时需要向左掉头。正是这种特性可以使机器人对地面逐行清扫。

      可是如何执行固定的程序使掉头方向则成了编程的主要难点。另外,由于单片机同一时间只能执行一条程序,不能同时做两件事。如何一边给舵机发送驱动信号让机器人前进,一边检测传感器状态也成了问题。由于控制方式为开环控制,如何确保机器人转动角度刚好为90°也是问题。由于实现这一功能的方法不唯一。本文使用了比较简单的一种,即程序嵌套。也就是将一次右转和一次左转作为一个大循环。当右转结束后,程序循环并未结束,而是进入下一个判断循环,边行驶边检测障碍,当第二次检测到障碍后,机器人向左掉头,才完成一次大循环。

      为了实现边行驶边判断传感器状态,本文采用分时处理的方法实现该功能。分时处理可以让舵机驱动程序与传感器判断程序交替执行。由于舵机驱动程序周期为20毫秒,判断指令耗时小于2微秒,交替执行造成的轻微时间误差完全可以被忽略,不会对行驶造成影响。

往复式路径规划的程序流程图如下所示:

往复式路径规划程序流程图

      为了实现一边行驶一边检测,使用while循环而非if判断进行检测,这样才能不断循环检测。在每一个循环中,舵机信号占用40ms,判断语句占用时间小于2ms。虽然先前进再判断会对控制信号有影响,但由于影响非常小,可以忽略不计。当信号消失后,再发出固定的脉冲个数使机器人转动到90度。例如用Keil编译软件编译的如下程序:

While (DT == 0) {RIGHT (1);   //一边右转 一边判断左红外if(IR1 == 1){   //无障碍灭灯RIGHT (15);      //灭灯后第二次右转 调整数据使之为90度PENSHUI ();PENSHUI ();DT = 1;}}

3.3 本章小结

      在本章中,主要有控制系统硬件设计和程序设计两个部分,硬件设计主要是电机驱动、环境检测等装置设计,程序部分则是对清洁机器人路径规划的研究,利用Keil编译软件编程来实现路径规划的算法,如下图所示:

清洁机器人控制系统搭建

更多详情请见:【S046】清洁机器人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB快速实战与基本原理

MongoDB 介绍 什么是 MongoDB MongoDB 是一个文档数据库&#xff08;以 JSON 为数据模型&#xff09;&#xff0c;由 C 语言编写&#xff0c;旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。文档来自于“JSON Document”&#xff0c;并非我们一般理解的 PDF、WORD 文档…

【MySQL】数据库之MHA高可用

目录 一、MHA 1、什么是MHA 2、MHA 的组成 3、MHA的特点 4、MHA的工作原理 二、有哪些数据库集群高可用方案 三、实操&#xff1a;一主两从部署MHA 1、完成主从复制 步骤一&#xff1a;完成所有MySQL的配置文件修改 步骤二&#xff1a;完成所有MySQL的主从授权&#x…

三款红外接收二极管电路图

红外接收二极管电路图一&#xff1a; 如图所示&#xff0c;图是红外线遥控接收装置实例。红外线传感器有多种&#xff0c;这里选用光电二极管TPS604。工作原理简介如下&#xff1a;光电二极管TPS604接收到被调制的红外线的微弱信号&#xff0c;先经场效应晶体管VT1的前级放大&…

分布式系统的CAP理论详解

介绍 CP 系统是指在 CAP 理论中偏向于一致性&#xff08;Consistency&#xff09;和分区容错性&#xff08;Partition tolerance&#xff09;&#xff0c;牺牲了可用性&#xff08;Availability&#xff09;。在这样的系统中&#xff0c;一致性是非常重要的&#xff0c;即使在…

数据结构学习笔记——查找算法中的树形查找(B树、B+树)

目录 前言一、B树&#xff08;一&#xff09;B树的概念&#xff08;二&#xff09;B树的性质&#xff08;三&#xff09;B树的高度&#xff08;四&#xff09;B树的查找&#xff08;五&#xff09;B树的插入&#xff08;六&#xff09;B树的删除 二、B树&#xff08;一&#xf…

【linux】线程同步+基于BlockingQueue的生产者消费者模型

线程同步基于BlockingQueue的生产者消费者模型 1.线程同步2.生产者消费者模型3.基于BlockingQueue的生产者消费者模型 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.线程同步 在线程互斥写了一份抢票的代码&#xff0c;我们发现虽然加锁解决了抢到负数票的…

Java重修第二天—学习”方法“

通过学习本篇文章可以掌握如下知识 1、方法的定义 2、方法在计算机中的执行流程。 3、方法使用时常见问题 4、Java中方法的参数传递机制 5、方法重载 1 方法是什么 方法是一种语法结构&#xff0c;它可以把一段代码实现的某种功能封装起来&#xff0c;以便重复利用。 方…

第二百四十五

我们在上一章回中介绍了"修改页面导航中遇到的问题"沉浸式状态样相关的内容&#xff0c;本章回中将介绍如何修改Avatar的大小.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在正常使用CirCleAvatar组件时可以通过该组件的radius属性来修改它的…

目标检测-One Stage-YOLO v3

文章目录 前言一、YOLO v3的网络结构和流程二、YOLO v3的创新点总结 前言 根据前文目标检测-One Stage-YOLOv2可以看出YOLOv2的速度和精度都有相当程度的提升&#xff0c;但是精度仍较低&#xff0c;YOLO v3基于一些先进的结构和思想对YOLO v2做了一些改进。 提示&#xff1a;…

突破技术边界:R与jsonlite库探秘www.snapchat.com的数据之旅

概述 Snapchat是一款流行的社交媒体应用&#xff0c;它允许用户发送和接收带有滤镜和贴纸的照片和视频&#xff0c;以及创建和观看故事和发现内容。Snapchat的数据是非常有价值的&#xff0c;因为它可以反映用户的行为、偏好和趋势。然而&#xff0c;Snapchat的数据并不容易获…

【LMM 009】MiniGPT-4:使用 Vicuna 增强视觉语言理解能力的多模态大模型

论文描述&#xff1a;MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models 论文作者&#xff1a;Deyao Zhu∗ Jun Chen∗ Xiaoqian Shen Xiang Li Mohamed Elhoseiny 作者单位&#xff1a;King Abdullah University of Science and Techn…

亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选

在近期召开的“2023年国有企业应用场景发布会”上&#xff0c;亚信安慧公司的核心数据库产品AntDB闪耀登场&#xff0c;技术总监北陌先生针对企业核心业务系统数据库升级改造的关键议题发表了深度分享。他从研发、工程实施和运维管理三个维度细致剖析了当前企业在进行数据库升级…

Python - 深夜数据结构与算法之 DP - 进阶

目录 一.引言 二.经典算法实战 1.House-Robber [198] 2.House-Robber-2 [213] 3.Best-Sell-Time [121] 4.Best-Sell-Time-2 [122] 5.Best-Sell-Time-3 [123] 6.Best-Sell-Time-4 [188] 7.Best-Sell-Time-Coldown [309] 8. Best-Sell-Time-Fee [714] 三.总结 一.引言…

【React系列】父子组件通信—props属性传值

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识组件的嵌套 组件之间存在嵌套关系&#xff1a; 在之前的案例中&#xff0c;我们只是创建了一个组件App&…

基于粒子群算法的参数拟合,寻优算法优化测试函数

目录 摘要 测试函数shubert 粒子群算法的原理 粒子群算法的主要参数 粒子群算法原理 粒子群算法参数拟合 代码 结果分析 展望 基于粒子群算法的参数拟合(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88698417 摘要 寻优算法,测试…

后端开发——JDBC的学习(三)

本篇继续对JDBC进行总结&#xff1a; ①通过Service层与Dao层实现转账的练习&#xff1b; ②重点&#xff1a;由于每次使用连接就手动创建连接&#xff0c;用完后就销毁&#xff0c;这样会导致资源浪费&#xff0c;因此引入连接池&#xff0c;练习连接池的使用&#xff1b; …

x-cmd pkg | tig - git 文本模式界面

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 tig 由 Jonas Fonseca 于 2006 年使用 C 语言创建的 git 交互式文本命令行工具。旨在开启交互模式快速浏览 git 存储库的信息以及 git 命令的运行。 首次用户 使用 x tig 即可自动下载并使用 在终端运行 eval "…

微服务之间互相调用出现的错误

场景&#xff1a; 微服务A调用微服务B的接口&#xff0c;微服务B的接口请求方式是get类型&#xff0c;传递的参数是JSON格式。 错误&#xff1a; 1、postman&#xff1a;springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserial…

Gin 框架介绍与快速入门

Gin 框架介绍与快速入门 文章目录 Gin 框架介绍与快速入门一、Gin框架介绍1. 快速和轻量级2. 路由和中间件3. JSON解析4. 支持插件5. Gin相关文档 二、基本使用1.安装2.导入3.第一个Gin 应用 三、应用举例四、Gin 入门核心1.gin.Engine2.gin.Context 一、Gin框架介绍 Gin是一个…

VitePress搭建Vite官方中文文档首页

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…