人工智能技術是與多門基礎學科聯系緊密、相互促進相互發展的前沿技術,是集計算機、物理學、生理學、控制技術、傳感器技術等于一體的高新技術產業。人工智能技術的應用領域也越來越廣泛,除了傳統的工業領域,人工智能技術的應用也涉及到軍事、娛樂、服務、醫療等領域”。 隨著機器人技術的不斷發展,人們對機器人的要求也越來越高,機器人的智能化已成為當今的熱點。智能小車作為一種四輪驅動的智能機器人,它行動靈活、操作方便,車上可集成各種精密傳感器數據處理模塊,其避障功能保證了智能小車在行進過程中行進方向的自行調節,避免發生碰撞、碰擦,是智能小車的重要組成部分。目前,智能小車大多采用單個傳感器實現單面避障,但單面避障存在著固有的缺陷,如:障礙物探測緩慢、避障成功率較低等。由此,設計了一種能全方位避障的智能小車系統,采用紅外單點避障與超聲波雙路避障相結合的模式,可實現多面自動探測,并實現全方位避障,有效提高了避障的成功率和效率。 1 系統設計 設計的避障系統采用紅外單點避障與超聲波雙路避障相結合的模式,以實現對障礙物的全方位有效避障。為此,在小車前端中央設置一個紅外避障傳感器,用于探測小車前方障礙物,再在小車前端兩側設置左右兩個超聲波避障傳感器,他們分別探測小車前方左右兩側障礙物,有效的擴大了探測范圍,從而實現了小車的全方位避障。 本系統利用多模塊協調配合,使其具有較高自適應能力。硬件以需求為基礎,選擇了合適的模塊,總體模塊中包含:電源模塊,紅外傳感模塊,超聲波傳感模塊,電機驅動模塊,Arduino模塊等。系統整體框圖如圖1所示。 圖1 系統硬件結構圖 1.1 Arduino模塊 設計中采用Arduino duemilanove作為核心控制模塊,Arduino是一款便捷靈活且十分方便上手的開源電子原型平臺,能通過各種各樣的傳感器來感知環境,通過燈光、電機和其他的裝置來反饋、影響環境。 Arduino duemilanove包括以下幾個部分:一個9 V DC輸入,一個USB接口,14個數字IO口,6個模擬IO口,1個5 V DC輸出和一個3.3 V DC輸出。它的核心是一片Atmega 328單片機。 1.2 電機模塊 小車采用雙直流電機驅動方式,通過控制左右兩個直流電機來控制小車轉動轉向,電機模塊如圖2所示,直流電機采用直流電機驅動芯片L298N。 L298N內部包含4通道邏輯驅動電路,是一種二相和四相電機的專用驅動器,即內含二個H橋的高電壓大電流雙全橋式驅動器,接收標準TTL邏輯電平信號,可驅動46 V、2 A以下的電機,正好可以滿足小車的左右直流電機的驅動要求。并且L289N具有過溫保護功能和較高的噪聲抑制比,故十分適用于智能小車中。 圖2 電機模塊 由于芯片L298N并沒有對電機轉速的控制方式,因此,通過Arduino程序控制調節驅動電機的PWM信號,改變電機輸出功率,從而控制左右電機的轉速。 1.3 超聲波傳感器模塊 超聲波模塊由發射電路和接收電路組成,如圖3所示。其中發射電路由Em78p153單片機、MAX232及超聲波發射頭T40等組成,接收電路由TL074運算放大器及超聲波接收器R40等組成。 圖3 超聲波傳感器 探測時,超聲波發射器發射出長約6 mm,頻率為40 kHz的超聲波信號。此信號被物體反射回來由超聲波接收器接收,接收器實質上是一種壓電效應的換能器。它接收到信號后產生mV級的微弱電壓信號,電壓信號再在核心控制模塊中轉換為數字信號。設超聲波脈沖由傳感器發出到接收所經歷的時間為t,超聲波在空氣中的傳播速度為c,則從傳感器到目標物體的距離D可用D=ct/2求出。 1.4 紅外傳感器模塊 紅外測距模塊采用夏普GP2YOA21紅外測距傳感器,夏普GP2YOA21型紅外測距傳感器是基于位置敏感傳感器PSD(Position Sensitive Device)的微距傳感器,捕捉的是光信號并且有著基于Lucovusky方程的電路設計,其有效的測量距離為80 cm。 紅外測距其優點是無盲區、測量精度高、反應速度快,但其缺點受環境影響較大、探測距離較近。因此本文設計了基于多傳感器信息融合的智能小車避障系統,采用紅外傳感器與超聲波傳感器互補,使機器人具有精確的感測范圍。 2 算法分析 針對單傳感器避障系統中存在的缺點,本文提出了多傳感器協調合作方案,通過超聲波傳感器和紅外傳感器的配合,擴大了探測范圍以及靈敏性,從而避免了誤撞和緊貼障礙物的危險,提高了避障機率,實現了全方位避障。 2.1 流程設計 全方位避障小車在行進過程中,各傳感器不斷檢測小車周圍是否有障礙物。當有傳感器檢測到障礙物時,通過判斷檢測到障礙物的傳感器的數量,來實現小車全方位自動避障:單傳感器檢測到障礙物時,小車遠離檢測到障礙物方向;兩個傳感器檢測到障礙物時,小車向未檢測到障礙物方向轉向;所有傳感器都檢測到障礙物時,小車急速左轉避開障礙物。當小車避開障礙物后,小車繼續行進。流程圖如圖4所示。 圖4 程序流程圖 2.2 避障代碼 根據以上避障原理,編寫相應的程序,以實現小車的全面避障,程序主要分電機、超聲波和紅外測距三部分。電機部分由analogWrite()、digitalWrite()分別控制車速和小車前進、后退或轉向;超聲波測距部分由Trig.Pin控制超聲波輸入,由EchoPin控制超聲波輸出,控制模塊通過對接收到的脈沖波時間進行處理,轉化為距離參數,從而獲得距離Middle_distance;紅外測距部分由控制模塊通過紅外傳感器獲得一個模擬量analo.gRead(),通過輸出的模擬量可以推算出電壓值volts,而輸出電壓和探測距離關系為distance:65*pow(volts,-1.10),從而可獲得小車與障礙物的距離。 3 實驗研究 智能車在進行了器件選型和確定控制算法后,為了驗證系統的性能,進行了實驗驗證。 實驗中選用一塊放著多種障礙物的平地,障礙物分兩大種:一種是規則的障礙物,如正方體、圓柱等。另一種為不規則障礙物。實驗時,智能避障小車在行進過程中不斷探測前方周圍是否有障礙物,當存在障礙物時候,判斷出相應障礙物位置,并進行相應動作。 為了有效驗證智能小車避障成功率,通過改變障礙物形狀來對小車進行性能測試,結果如圖5所示。其中測試小車100次,并統計出單面避障和全方位避障成功通過不同障礙環境的次數,障礙環境由總數為100的規則障礙物和不規則障礙物組成。由圖5可見,普通的單面避障方法有著較低的成功通過率,而本文所提出的全方位避障方法則受此影響不大,有著較高的通過率。 圖5 單面避障與全方位避障成功率對比 4 結論 設計的基于Arduino的智能小車避障系統,采用了單紅外和雙超聲波避障方式,使小車在行車過程中對障礙物的探測更加精確。實驗結果表明,設計的全方位避障系統較大地提高了避障的效率和成功率,可有效地實現全方位避障。 |