劉長虹
(甘肅畜牧工程職業(yè)技術學院 智能與信息學院,甘肅武威,733006)
掃地機器人能夠自動按照預先設置的信息,清掃保潔整個房間區(qū)域。由美國最先研發(fā)并且也是最早應用于生活的,歐洲國家隨后開始研發(fā)掃地機器人,隨著掃地機器人熱銷,中國也開始研究掃地機器人,但是由于起步比較晚,因此技術還是有待于提高。
設計掃地機器人的國際主流有iRobot,凱馳等比較著名的公司,國內(nèi)研發(fā)也越來越多。目前,人們已經(jīng)進入互聯(lián)網(wǎng)家時代,智能家居逐漸進入了人們的生活,智能掃地已經(jīng)逐漸的融入了人們的日常生活,掃地機器人已經(jīng)和洗衣機和冰箱一樣成為了人們生活必需品。掃地機器人從被研究出來,再到應用,已經(jīng)有相當一段時間,雖然掃地機器人的技術不斷革新,但是,還有很多問題沒有辦法解決,路徑規(guī)劃是移動機器人的核心技術。路徑規(guī)劃使得機器人,能夠在有不同障礙物的環(huán)境里,安全的移動,并且進行遍歷清掃,雖然目前市面的產(chǎn)品比較多,技術比較成熟,但是還有很多問題;清潔率比較低,清掃時間長。本文設計了一款掃地機器人,在前期研究成果的基礎上,通過算法和電路設計,以期對設計掃地機器人及路徑規(guī)劃提供重要的參靠價值和應用前景。
掃地機器人機械結構由機器人載體、外殼、行走機構、清掃機構、灑拖機構組成。掃地機器人載體包括底盤和碰撞防護板,小車底盤給其他機構提供安裝位和載體,采用防護板防撞;行走機構包括兩個獨立驅動輪、一個從動萬向輪組成,驅動輪由直流電機和減速機構組成。清掃機構包括滾刷、吸塵泵和吸塵盒、邊角毛刷,灑拖機構由水箱,噴頭,拖頭組成。
在掃地機器人的左前和右前方,安裝兩個轉方向相反側刷,吸塵口前方裝有滾刷。側刷將灰塵和小的垃圾,清掃到吸塵口附近,便于垃圾的收集,再由真空泵將比較輕的垃圾收走,比較大的垃圾,由滾刷將垃圾清掃掉。
由于直流電機的轉速遠高于清掃的行走速度400r/min,因此要進行減速增力,減速器傳動比為i=13000/400=32.5,傳動比選用36,采用兩級變速,兩級傳動比都為:i1=i2=6。
掃地機器人采用模塊化擴展, 設計要求運行穩(wěn)定,重量輕體積小,結實耐用。掃地機器人硬件設計采用2片STC80C51,一片負責狀態(tài)檢測和顯示、任務分配和紅外線遙控信號接收等任務,另一片負責環(huán)境檢測、環(huán)境地圖建立、路徑規(guī)劃等任務。
圖1 機器人框架圖
在底盤正前方和左右各安裝一個超聲波傳感器;5個紅外線傳感器均勻安裝在機器人前部,檢測面積比較小時,來彌補超聲波測距的不足;安裝2個光電編碼傳感器在驅動軸上,用于里程計和測速傳感器;1個電子羅盤,用來檢測機器人的姿態(tài);2個紅外線避障模塊,安裝在機器人底盤上,用來防止機器跌落;1個LCD液晶顯示模塊,安裝在機器人上部;紅外線接收頭安裝在機器人頂部;2片單片機之間采用串口通信,由于路徑規(guī)劃需要存儲大量環(huán)境信息,所以單片機本身的數(shù)據(jù)存儲空間不能滿足要求,需要通過并口P0和P2擴展外部數(shù)據(jù)存儲器RAM(采用芯片RAM62256)。
智能清掃機器人的電源選用鋰電池型號為CRD5705,容量為2000mAh,電壓為 7V。由于單片機和直流電機需要5V電壓,須由穩(wěn)壓模塊將7V變?yōu)?V。
由于電池容量有限,在清掃過程中,需要機器人自己充電,充電方案一般有兩種,接觸式充電和非接觸式充電。為安全考慮,采用非接觸式無線充電,設計基于磁耦合式的無線能量傳輸系統(tǒng)對機器人實現(xiàn)非接觸式充電,非接觸式充電的關鍵是自動對接充電,自動對接充電主要采用紅外信號在智能吸塵機器人的左、右側和后、后面都裝有紅外接受傳感器,紅外線發(fā)射傳感器安裝在充電樁上,當檢測到電量不足時清潔機器人將沿邊界尋找充電樁,在掃地機器人上方有四個相互隔離紅外線傳感器,分別接受來自右前方、左前方、右后方和左后方的信號,通過四個傳感器接受的信號對比可以判別紅外信號來的方向,調(diào)整機器人的姿態(tài),實現(xiàn)機器人自動對接充電。
掃地機器人有行走電機和清掃電機,行走電機采用LN298恒壓恒流雙橋集成電機芯片,可同時控制兩個電機,且輸出電流可達到2A。LN298的第IN1,IN2,IN3,IN4控制直流電機的方向和轉速ENA,ENB控制起停。直流電機采用H橋驅動電路,可實現(xiàn)直流電機正轉,反轉和停止,可以完成機器人前進,倒車和轉彎。
清掃、吸塵電機都是由繼電器驅動的,控制信號由AT89C51端口來控制,信號經(jīng)由三極管做開關經(jīng)過電流放大,然后再驅動清掃電機工作。
傳感器檢測模塊由超聲波傳感器、紅外線傳感器、光電編碼器和電子羅盤這四種傳感器組成。用前、左、右三個方向的超聲波測距識別小車運動環(huán)境,提供運動信息。在小車的前面,左邊和右邊都安裝一個超聲波避障模塊檢測障礙物,選用HC-SR04超聲波測距傳感器,可實現(xiàn)2cm~450cm非接觸測距功能。
圖2 直流電機驅動電路
遙控方案選擇紅外遙控裝置,由發(fā)射電路和接收電路組成,發(fā)射電路主要負責編碼調(diào)制、紅外線信號發(fā)送;接收電路負責信號接收、光電信號進行放大、信號解調(diào),紅外線接受頭采用一體化紅外接收頭,然后編寫軟件對信號進行解碼。
機器人的硬件電路總體設計,主要包括單片機通信、直流電機驅動、數(shù)據(jù)存儲器擴展、電源模塊和LCD顯示等電路的設計,顯示模塊采用液晶顯示屏LCD1206。
本設計采用2片單片機構成控制系統(tǒng),單片機A主要負責運動控制、狀態(tài)檢測、接受遙控信息和顯示工作;單片機B負責環(huán)境地圖的建立和運動導航。單片機A和B采用串口進行通信息交流,單片機A將自身的狀態(tài)信息通過串口發(fā)送給單片機B,單片機B根據(jù)建立的地圖信息來判別機器人的運動,再將運動信息通過串口發(fā)送給單片機A,單片機A分析命令,進行相應運動。
路徑規(guī)劃采用內(nèi)螺旋覆蓋,首先尋找到邊界,然后以這一點開始,沿邊界清掃,同時生成為下一輪要遍歷的標記,邊界遍歷完成后,依次向中心遍歷,然后依次生成新的下一輪的將要覆蓋的標記,最后完成整個房間的遍歷清掃。
本系統(tǒng)主要采用推算導航的定位方法,利用光電編碼盤和磁羅盤定位系統(tǒng),結合實際需要,采用了柵格法來建立柵格地圖。環(huán)境地圖信息的建立主要是沿邊清掃建立初步全局地圖的大??;然后采用內(nèi)螺旋遍歷的方式逐步建立環(huán)境地圖信息,最后直至所有房間都清掃完成。機器人在清掃時,首先應該檢查環(huán)境地圖是否建立,有環(huán)境地圖時,就需要按照已有環(huán)境地圖進行清掃。自動充電首先要保存現(xiàn)在位置和方向信息設置斷點,然后再利用地圖信息建立路徑,找到充電站,然后采用紅外線自動對接,進行充電。
機器人控制系統(tǒng)主要接受命令來進行掃地任務,命令主要分為三大命令,首先是機器人的清掃狀態(tài),暫停、自動清掃;接下來是信息修改模塊命令,主要用來進行參數(shù)設置;其次就是運動控制,比如說左轉、右轉、直行。
掃地機器人依靠增量式推算定位,因此機器對自身姿態(tài)要求嚴格,特別是機器在左右轉后,機器要嚴格的走直線,不能走斜線,否則機器人定位不準確,清掃覆蓋率低。
由于機械加工或安裝誤差,兩輪直線縱向方向與機器人本體中軸線不平行;偶爾出現(xiàn)的打滑引起誤差,由于機器人采取的是左右輪正反轉,實現(xiàn)差速轉彎,當電子羅盤檢測到達到所要的角度時,停止驅動直流電機,由于機器人自身還有較大慣性,使機器人產(chǎn)生誤差,準確率下降,因此引入一種新的算法—PID控制,PID是一個閉環(huán)控制算法,有反饋環(huán)節(jié),因此要速度反饋和絕對角度的反饋。PID算法是對偏差的比例、積分和微分控制,來進行脈寬調(diào)節(jié)控制(PWM)進行調(diào)速,然后驅動電機運動,調(diào)整自身姿態(tài)。
圖3 機器人整體電路設計
圖4 機器人姿態(tài)調(diào)整框圖
機器人探測到墻壁后,就開始進行沿邊學習。沿邊學習的目的是為了獲取房間的大小和輪廓信息。沿邊學習,是讓機器人沿著邊界移動,移動過程,保持機器人左側傳感器接觸邊界來調(diào)整機器人所走方向,可以通過事物對機器人當前位置進行調(diào)整。
STEP1:初始化機器人位置和運動方向;
STEP2:首先要找到障礙物邊界;
STEP3:機器人使左側傳感器始終靠近障礙物,然后進行繞行;
STEP4:如果機器人完成了對房間的一周繞行,回到繞行的起始點,則任務結束;否則繼續(xù)繞行;
障礙物沿邊繞行程序主要用于沿邊界清掃和遍歷過程中遇到障礙物的繞行,沿邊清掃程序主要是用來確定整個房間的大小,因此機器人始終要使左邊靠近房間,進行繞行,當遇到障礙物時,調(diào)用避障程序,最后回到邊界起點,完成繞行。
超聲波測距程序主要用來測距,主要利用超聲波模塊發(fā)射超聲波后,接受反射的超聲波,主要是獲得從發(fā)射超聲波到接受超聲波的時間,然后利用時間來計算距離。
機器人的遍歷學習采用本文提出的基于柵格的內(nèi)螺旋覆蓋方式,按照這樣的方式進行覆蓋,同時將覆蓋過程中所形成的柵格軌跡按順序存儲起來。學習完成之后,需要清掃的區(qū)域就全部呈現(xiàn)出來,剩下的就是障礙物了,同時由于保留了清掃的柵格軌跡 在以后的過程中,在環(huán)境信息沒有變動或者只是發(fā)生了沒有影響軌跡變動的情況下,可以直接調(diào)用原軌跡進行清掃,就可以大大的提高清掃的效率。
行走電機轉速PID控制算法,掃地機器人在很多場合需要用到不同的速度,比如說轉彎時,速度小一點,而清掃時,速度高一點,而且對機器人姿態(tài)調(diào)整時,也要需要不同速度,因此就要進行直流電機的調(diào)速,而直流電機的調(diào)速一般采用脈寬調(diào)速,也就是PWM。
脈寬調(diào)速主要利用定時器實現(xiàn),定時器0每1ms中斷一次,中斷10次后,就是10ms為一個循環(huán),輸出脈沖頻率固定,通過設置PWM值來改變輸出占空比。
圖5 脈寬調(diào)速流程圖
本文程序的仿真主要以proteus軟件為主,但是由于proteus軟件中不能仿真?zhèn)鞲衅鳎詥纹瑱C開發(fā)試驗板為輔,兩者交互使用。
超聲波測距的仿真采用單片機開發(fā)板,通過數(shù)碼管來顯示測量距離,在超聲波檢查頭前方7cm處放一個筆盒,數(shù)碼管也顯示7cm,仿真成功。
直流電機采用脈沖調(diào)速,通過Proteus進行仿真,電路采用2個直流電機,左邊采用脈寬調(diào)速,右邊不調(diào)速,進行對比,電機速度 分為十級,以滿足要求。電路設計如圖6所示。
圖6 脈寬調(diào)速電路圖
紅外線遙控采用單片機開發(fā)板仿真,程序設計主要采用定時中斷和外部中斷,外部中斷接受信號,定時器來計算信號的時間。
圖7 紅外線遙控測試圖
基于單片機的掃地機器人中,使用了多種不同功能的傳感器,它們影響了掃地機器人清掃的效率、線路方式和房間覆蓋率,在現(xiàn)有傳感器的基礎上,合理的路徑規(guī)劃又可以進一步優(yōu)化掃地機器人的使用感受,因此,要以實際需求為導向,合理選用傳感器,規(guī)劃路徑,在提升使用感的同時,控制成本。