劉 海,郭小勤
摘 要:介紹一種基于ARM7微控制器的清潔機器人控制系統。該系統實時性高,功能完備,包括控制器、傳感器部分、電機控制部分和人機接口部分。由碰撞傳感器、超聲波傳感器和接近傳感器來探測周圍的環境,由直流電機帶動兩個驅動輪旋轉,結合旋轉編碼器的反饋信息進行路徑規劃。經過實驗證明了設計的可靠性,實現了清潔機器人的自動清潔行走功能。
關鍵詞:吸塵機器人;ARM7;傳感器;運動控制
中圖分類號:TP242.6文獻標識碼:B
文章編號:1004-373X(2009)12-127-04
Control System Design of Cleaning Robot
LIU Hai,GUO Xiaoqin
(College of Mechatronics and Control Engineering,Shenzhen University,Shenzhen,518060,China)
Abstract: This paper presents the system integration and overview of autonomous cleaning robot based on ARM7 microcontroller.The real-time characteristic and function of the system are in good condition.The system consists four segments:controller,sensors,motor control system and man-machine interface.Several sensors of the approaching in order to detect the surrounding obstacles while cleaning,two driven wheels are driven by two DC motors,combining with the feedback information of rotating encoder,the cleaning robot can complete the path planning.Experiments show that the control system run well and the robot have the ability to clean the floor automatically.
Keywords:cleaning robot;ARM7;sensor;motion control
0 引 言
隨著人口的老齡化和社會福利制度的完善,導致勞動力成本的急劇上升,一些簡單的重復性的體力勞動為服務機器人提供了廣闊的市場。清潔機器人是服務機器人的一種,可以代替人進行清掃房間、車間、墻壁等。提出一種應用于室內的移動清潔機器人的設計方案,其具有實用價值。
室內清潔機器人的主要任務是能夠代替人進行清掃工作,因此需要有一定的智能。清潔機器人應該具備以下能力:能夠自我導航,檢測出墻壁,房間內的障礙物并且能夠避開;能夠走遍房間的大部分空間,可以檢測出電池的電量并且能夠自主返回充電,同時要求外形比較緊湊,運行穩定,噪音小;要具有人性化的接口,便于操作和控制。結合清潔機器人主要功能探討其控制系統的硬件設計。
1 測控系統及功能
為了使吸塵機器人運動更加流暢,防止出現卡死的現象,把吸塵機器人外觀設計成扁圓柱形的,扁圓形的設計可以使其自由進入沙發、床和家具底下,把一些邊角都能夠清掃干凈。與地面平行的圓形底盤由三個輪子共同支撐,左右兩側的為驅動輪,分別由兩個微型直流電機直接驅動,前面的支撐輪為萬向輪。機器人的這種外形和車輪布局可使其方便地實現原地轉彎,大大提高了行走的靈巧性,這在空間范圍較小的地方更為突出。采用碰撞、超聲波和紅外傳感器組成多傳感器系統,在機器人的上方裝有紅外接收裝置;在機器人的底部邊緣,每隔45°裝有接近傳感器,用來檢測臺階,防止跌落;在機器人的前方裝有碰撞傳感器,前方和左右裝有超聲波傳感器,用來檢測周圍環境。機器人上裝有電源管理系統,如果電壓過低會停止清掃,并且去自動充電。
1.1 微控制器
傳統的微處理器如51系列雖然開發周期短,成本低,但其實時性不好,難以實現復雜的控制算法[1];另外,增加的外圍電路數據轉換速度慢, 使機器人的性能得不到充分的發揮。高速DSP的出現雖然使得系統模塊化和全數字化,但其開發成本高[2]。與DSP具有同等性能的ARM微處理器資源豐富,具有很好的通用性,其主要技術優點是高性能,低價格,低功耗,廣泛地應用于各個領域,因此將ARM應用于機器人控制系統不失為一種好的策略。LPC2210是飛利浦帶有一個支持實時仿真和跟蹤的ARM7TDMI-S 微處理器,其采用3 級流水線技術,能夠并行處理指令。由于具有非常小的尺寸和極低的功耗, 多個32 位定時器、PWM 輸出和32 個GPIO使它特別適用于工業控制和小型機器人系統[3],滿足了機器人對控制器運算速度的要求。以LPC2210 為核心,設計結構簡單,性能穩定的清潔機器人車體系統。
機器人控制系統主要完成的任務:接收傳感器和編碼器傳來的數據,綜合處理進行清掃路徑規劃;驅動左右輪前進行走,控制清掃、吸塵機構,完成各種底層控制動作;設計合適的人機接口,在LCD上顯示機器人狀態和運行時間。因此,機器人控制系統包括傳感器模塊,電機驅動模塊,紅外遙控接收模塊、LED指示燈和液晶顯示模塊。整個控制系統組成及各部分間相互關系如圖1所示。其中外擴了1塊512 KB的數據存儲器SRAM(IS61LV25616AL)和2 MB的程序存儲器FLASH(SST39VF1601),滿足了路徑規劃時對存儲空間的需求。
圖1 控制系統相互關系圖
1.2 傳感器部分
傳感器類似于人的五官,是機器人感知外部環境的直接手段。機器人通常采用測距傳感器對周圍環境和障礙物進行檢測。常用的測距傳感器有超聲波、紅外、視覺和激光測距儀。3D激光測距儀價格昂貴且笨重,2D的需要安裝路標配合,不適合清潔機器人使用。立體視覺對處理器的要求太高,難以滿足實時性和魯棒性的要求。紅外傳感器采用發射固定波長紅外線并接受同一回波的主動方式,探測視角小,方向性強,但是受環境影響大,距離比較近。超聲波能測得目標的距離信息,但是有盲區,兩個超聲波比較近的時候還會出現串擾現象。紅外線傳感器和超聲傳感器單個使用只能獲得目標的距離信息,不能獲得目標的邊界信息[4]。
1.2.1 超聲波傳感器
清潔機器人和一般的移動機器人不同,它要求把墻邊,家具以及房間內的其他物體旁邊都清掃到,因此其它要求能夠非常接近障礙物但是不碰上?;谶@個要求,用超聲波傳感器是比較合適的,它可以測量機器人與障礙物之間的距離,通過軟件控制機器人的運動來保持機器人的沿邊清掃。這里采用的超聲波傳感器是超聲波模塊Ping28015,模塊集成了超聲波的一對發射和接收以及檢測部分,體積比較小,適合清潔機器人使用[5],如圖2所示。
圖2 Ping28015超聲波模塊
這一款超聲波傳感器有以下優點:適應各種環境,不受灰塵和光線的影響;盲區為2.5 cm,可以把傳感器安裝在合適的位置就可以避開盲區;探測發散角度為15°,反應距離2.5 m以內,該課題的檢測距離為0.5 m。超聲波傳感器的基本原理是測量從聲波發射和回到接收器所用的時間。這一款傳感器的的發射端口和接收端口是一個管腳,首先由控制器發射一個5 μs寬度的高電平脈沖來激發傳感器發射40 kHz的超聲波,脈沖發出750 μs后,管腳電平置高;當傳感器接收到回波時,管腳的電平被拉低。由信號端高電平的寬度就可以知道由發射到返回需要的時間,寬度為115 μs~18.5 ms之間。公式s=vt/2,其中s表示傳感器與目標的距離;t表示發射到回收的時間;v是聲波速度,v=340 m/s。由此可以知道傳感器與障礙物之間的距離。一次探測時間最多是20 ms,5個傳感器查詢完畢,用時100 ms,因此兩個相鄰傳感器采用分時段進行使能,就會避免相互干擾,而不會影響機器人速度。
1.2.2 紅外接近傳感器
反射式光電開關是由紅外LED光源和光敏二極管或光敏晶體管等光敏元件組成,當有障礙物阻攔時光線能夠反射回來,輸出為低電平信號;當沒有障礙物阻攔時,光線不能反射回來,輸出為高電平信號。
吸塵機器人的近距離紅外接近傳感器由兩組相同的紅外發射、接收電路組成。每一組電路可分為高頻脈沖信號產生、紅外發射調節與控制、紅外發射驅動、紅外接收等幾個部分。通過38 kHz晶振和非門電路得到一個38 kHz的調制脈沖信號;利用三極管驅動紅外發射管(TSAL6200)的發射。發射管發出的紅外光經物體反射后被紅外接收模塊接收,通過接收頭(HS0038B)內部自帶的集成電路處理后返回一個數字信號,輸入到微控制器的I/O口,如圖3所示。接收頭如果接收到38 kHz的紅外脈沖就會返回輸出低電平,否則就會輸出高電平。通過對I/O口的檢測,便可以判斷物體的有無。
1.2.3 碰撞開關傳感器
兩個槽型對射光電開關均布在機器人左前和右前方。如此的布局可以使機器人感知來自前方、左前、右前三個方向的障礙物,從而根據障礙物方向的不同做出不同的反應。當機器人碰到障礙物時,彈簧在障礙物的作用下,向內壓迫碰撞開關擺臂,促使簧片擋住光電開關的光線,輸出低電平。當沒有障礙物作用時,簧片在彈簧的作用下恢復,光電開關的光線沒有被遮擋,輸出高電平,如圖4所示。
圖3 紅外接近傳感器模塊
圖4 碰撞開關傳感器示意圖
這三個傳感器中,超聲波傳感器用來探測前方和左右的墻壁、障礙。左邊和右邊的兩個超聲波傳感器垂直于行走方向放置,用于機器人的沿邊行走規劃;設定機器人行走時與墻邊的距離值,調節機器人的行走方向,使兩個超聲波與墻邊的距離近似等于設定值,保持機器人沿墻行走時保持適當的距離,不會撞到或者遠離墻壁[6]。前方兩個碰撞傳感器和一個超聲波配合用來用來探測前半部分的環境;接觸傳感器具有檢測范圍大、信號無需調理、占用資源少的優點,通過接觸碰撞,檢測那些未能被超聲波傳感器檢測到的桿狀障礙比如家具腿等,傳感器之間的位置如圖5所示。
圖5 傳感器布置示意圖
接近傳感器用來探測地面是否有懸崖,在機器人底部的正前、左前、右前和后方各布置1個。除了上述三種傳感器以外,在三個輪子上都裝有一個常開的開關傳感器,當輪子懸空的時候,開關就會閉合,輸出低電平。當輪子懸空時可以讓機器人停止運轉。
2 電機控制系統
在小功率系統中,直流電機線性特性良好,控制性能優越,適合于點位和速度控制。為了實現直流電機的正反轉運行,只需要改變電機電源電壓的極性。電壓極性的變化和運行時間的長短可以由處理器實現,而提供直流電機正常運行的電流則需要驅動電路。
H橋式驅動電路是比較常用的驅動電路。該設計兩個行走驅動電機采用分立器件功率場效應管和續流二極管搭建,成本低,便于散熱,如圖6所示。
圖6 行走電機驅動電路圖
用ARM7的P0.8和P0.9來控制電機,這兩個管腳都是PWM輸出管腳,可以控制電機的速度。該部分主要保證機器人能夠在平面內移動,同時輪上帶有編碼器,可以對行走的路程進行檢測。通過航位推算可以實現機器人的轉彎,假設機器人光電碼盤的分度數為N;控制器收到的脈沖數為m;輪子的直徑為D;兩個輪子之間的間距為W,則輪子前進的距離為:
S=πmD/N(1)
設機器人在環境坐標系中的位姿為(X(t),Y(t),φ(t)),則第n+1次采樣的方位角φn+1值和第n次采樣的φn值有以下關系:
φn+1 -φn = 1W∫n+Tn[vR(t)-vL(t)]dt=
1W(ΔSRn -ΔSLn)(2)
式中:vR(t)和vL(t)分別是在t時刻兩輪的速度;ΔSLn和ΔSRn為兩個主動輪從第n次采樣時刻到第n+1次采樣時刻之間所行走的距離。
ΔSRn=π(mR(n+1)-mRn)d/N(3)
ΔSLn=π(mL(n+1)-mLn)d/N(4)
如果規定要進行原地轉彎,就是一個輪子正轉,另外一個輪子反轉的方式那么:
φn+1-φn=1W∫n+Tn[vR(t) + vL(t)]dt=
1W(ΔSRn +ΔSLn)(5)
從式(1)~(5)可知,由兩輪編碼器的脈沖數就可以知道兩個輪子的轉彎角度和行進距離,從而進行路徑規劃。
清掃電機就是帶動清掃滾輪的轉動,把灰塵帶到風口處。吸塵機器人清潔地面的功能是通過其自身攜帶的小型吸塵器完成的。該小型吸塵器與一般家庭用的拖線式吸塵器相同,吸塵口貼近地面,是一條鴨嘴式的窄縫,在里邊加入一個真空吸塵器,吸塵腔位于機器人體內。吸塵電機相當于一個排氣風扇,用來吸引灰塵到垃圾收集箱。刷子電機用來把邊緣處的的灰塵掃向中間的清掃滾輪處。
清掃、吸塵電機都是由場效應管的開關特性來控制電機的運轉??刂破鞯腎/O口只需要給一個高、低電平信號,由三極管做開關帶動驅動MOFSET管來控制電源的通斷,就可以控制電機。
3 人機接口模塊
遙控可以使機器人的使用更加方便,其中有紅外遙控方式和名片式無線遠程通訊。無線電通訊方式容易受電磁干擾,紅外遙控比較簡單,發射距離也在10 m以上,能夠滿足需要。通用紅外遙控系統由發射和接收兩大部分組成,為了節省硬件資源,選用了一體化紅外接收頭,利用軟件進行解碼。發射器芯片選用DT9122,所發射的1幀碼含有1個引導碼,16位的用戶編碼和8位的鍵數據碼和鍵數據反碼。引導碼由一個9 ms的載波波形和4.5 ms的關斷時間構成,它作為隨后發射的碼的引導,當接收系統更能有效地處理碼的接收與檢測以及其他各項控制之間的時序關系,編碼采用脈沖位置調制方式(PPM)。利用脈沖之間的時間間隔來區分0和1,每次8位的碼被傳送之后,反碼也被傳送,減少了系統的誤碼率,接收器采用HS0038B。
考慮系統需求,選用按鍵和LCD作為輸入和輸出接口。設置了4個按鍵,分別為電源開關、點位清潔、范圍清潔和沿邊學習功能。點位清潔是以機器人現有位置為中心進行2 m2的清掃,范圍清潔是隨機+局部遍歷的路徑規劃,沿邊學習是對房屋的邊角進行清掃,并且能記下拐角點的坐標,估計房屋的大小。輸出選用MG240128A型點陣圖形液晶模塊,LCD在系統中負責顯示機器人的運行時間。同時,還有LED燈用來顯示機器人狀態,比如是否清掃完畢,電量情況。系統采用12 V鎳氫電池給電機供電,再分出5 V給控制系統供電。由于LPC2210 是雙電源供電,CPU 內核為1.8 V,I/O口需要3.3 V,所以電源電壓經LM2575 轉換成5 V電壓后,由LDO分別提供1.8 V 和3.3 V 電壓。圖7中的R83是采樣電阻,通過A/D轉換就可以知道通過R83的電流,從而監控電源電壓的變化。
圖7 行走電機驅動電路圖
4 結 語
清潔機器人作為服務機器人的一種,有著巨大的市場潛力和廣闊的應用前景。隨著傳感技術的發展和微處理器的不斷進步,價格也在不斷下降。在此研究和設計一個基于ARM7微處理器的清潔機器人控制系統,不僅滿足了實用性的要求,而且在不增加成本的基礎上為軟件提供了良好的硬件支持,為更好的算法和軟件升級提供良好的技術支持。
參考文獻
[1]Chih-Hao,Kai-tai Song.Complete Coverage Motion Control of a Cleaning Robot Using Infrared Sensors [A].Proceeding of the 2005 IEEE International Conference on Mechatronics[C].2005.
[2]Sewan Kim.Autonomous Cleaning Robot: Roboking System Integration and Overview [A].Proceedings of the 2004 IEEE International Conference on Robotics & Automation[C].2004.
[3]周立功.ARM微控制器基礎與實戰[M].北京:北京航空航天大學出版社,2005.
[4]李瑞峰,孫笛生,閻國榮,等.移動式作業型智能服務機器人的研制[J].機器人技術與應用,2003(1):27-29.
[5]28015-PING-v1.3數據手冊[Z].2007.
[6]戴曰章,吳志勇.基于單片機的超聲波測距系統設計[J].計量與測試技術,2005,32(2):17-19.