盧健之,趙 奕,趙塏杰,楊澤平
(華東理工大學 信息科學與工程學院,上海 200237)
21世紀以來,國內外對機器人技術的發(fā)展越來越重視。機器人技術被認為是對未來新興產業(yè)發(fā)展具有重要意義的高技術之一。機器人在醫(yī)療服務、野外勘測、深空深海探測、家庭服務和智能交通等領域都有廣泛的應用前景。在這些領域,機器人需要在動態(tài)、未知、非結構化的復雜環(huán)境中完成不同類型的作業(yè)任務,這就對機器人的環(huán)境適應性、環(huán)境感知、自主控制、人機交互提出了很高的要求。
本文設計的基于樹莓派控制板的六足智能機器人,通過樹莓派上編寫的Python代碼來控制6條機械腿,可以實現(xiàn)前進、后退和轉向的功能,搭配攝像頭和OpenCV提供的人臉識別庫可以實現(xiàn)人臉識別功能。使用Web網頁設計控制頁面,開啟FLASK服務器后,聯(lián)網設備進入設計好的控制頁面即可實現(xiàn)機器人的腿部控制和人臉識別。
該機器人具有以下創(chuàng)新點:
(1)設備拓展性:機器人選用樹莓派系統(tǒng),在樹莓派上有著多個GPIO接口,可以拓展豐富的功能。除控制機器人的移動和攝像外,可以通過添加溫度傳感器、甲醛探測器、紅外線傳感器等,采集豐富的環(huán)境信息,使機器人達到真正意義上的智能。
(2)移動方式:區(qū)別于一般的可遙控移動設備,機器人采用六足機械足移動方式。經過對移動算法和硬件的優(yōu)化,機械腿移動具有傳統(tǒng)輪子移動所不具備的優(yōu)勢,如靈活性強,能夠適應更復雜的地形環(huán)境,能夠前往更多小車所不能前往的區(qū)域等。
(3)交互方式:通過網頁端與機器人交互。通過搭建FLASK網站,使在同一局域網下的所有設備都能夠訪問和控制六足機器人,不論在手機還是在平板電腦上,只要輸入IP就能夠看到監(jiān)控的實時畫面并控制機器人移動。我們計劃在之后的研究中,將FLASK架設到遠程服務器中,以突破局域網的局限性,使任意設備都能通過公網的IP地址來訪問和控制六足機器人,實現(xiàn)真正的遠程監(jiān)控、遠程遙控。
(4)人臉識別:與傳統(tǒng)的監(jiān)控設備不同,此智能機器人具備人臉識別功能,開啟該功能后,能夠對出現(xiàn)在畫面中的任意人臉進行識別,并記錄結果,真正做到自動監(jiān)管。
本六足機器人主要具有以下功能:
(1)六足機械腿移動:通過6條機械腿,共18個舵機完成機器人的移動。
(2)圖像實時傳輸:通過攝像頭獲取圖像并實時傳輸?shù)胶蠖恕?/p>
(3)人臉錄入:將圖像中的人臉截取下來,然后存到相應的人臉庫中。
(4)人臉識別:使用根據(jù)庫中人臉進行訓練得到的模型,識別圖像中的人臉,返回識別結果。
(5)Web交互:提供網頁前端與上述功能進行交互。即在網頁中控制機器人的移動,顯示監(jiān)控圖像、人臉錄入和人臉識別的結果。
技術路線如圖1所示。
圖1 六足機器人的技術路線
智能六足機器人的系統(tǒng)功能框架如圖2所示。
圖2 系統(tǒng)功能框架
區(qū)別于一般的可遙控移動設備,機器人采用六足移動的方式。機器人的行走靠舵機提供動力,而樹莓派控制板可以通過GPIO接口實現(xiàn)對舵機的控制,也可以使用連接在樹莓派上的PCA9685舵機控制板實現(xiàn)。對于單個電機而言,可直接使用樹莓派提供的接口,而多個電機協(xié)同控制時,通常使用PCA9685舵機控制板,通過控制PWM脈沖寬度調制信號控制舵機角度,原理如圖3所示。
圖3 PCA9685原理
PWM是脈沖寬度調制的縮寫,通過對一系列脈沖的寬度進行調制,等效出所需要的波形(包含形狀以及幅值),對模擬信號電平進行數(shù)字編碼,即通過調節(jié)占空比的變化來調節(jié)信號、能量等的變化。占空比是指在一個周期內,信號處于高電平的時間占據(jù)整個信號周期的百分比,例如方波的占空比為50%。
六足步行機器人的步態(tài)是多樣的,其中三角步態(tài)是六足步行機器人的典型步態(tài)?!傲憔V”昆蟲步行時,一般不是六足同時直線前進,而是將三對足分成兩組,以三角形支架結構交替前行。目前,大部分六足機器人采用了仿昆蟲的結構,6條腿分布在身體兩側,身體左側的前、后足及右側的中足為一組,右側的前、后足和左側的中足為另一組,分別組成2個三角形支架,依靠大腿前后劃動實現(xiàn)支撐和擺動過程,前驅步態(tài)圖示如圖4所示,旋轉步態(tài)圖示如圖5所示。
圖4 前驅步態(tài)圖示
圖5 旋轉步態(tài)圖示
樹莓派接通攝像頭拍攝圖片,將每張圖片由數(shù)字轉換為字節(jié)格式,通過Socket通信發(fā)往PC。PC在接收到圖片信息后,把文字轉換為圖片格式,提供給后續(xù)程序使用。開啟網站后,樹莓派持續(xù)通過Socket向PC發(fā)送圖片信息,而樹莓派還需隨時接收PC可能發(fā)送的移動方向信息,所以在樹莓派的程序中使用了雙線程,一邊向PC發(fā)送信息,一邊等待接收PC的信息。兩者之間的通信均需將需要發(fā)送的信息轉換成字節(jié)格式,再通過Socket通信發(fā)向對方IP。接收到信號后,系統(tǒng)將字節(jié)格式轉換為原格式。
與傳統(tǒng)的監(jiān)控設備不同,該機器人搭載了人臉識別功能,開啟該功能后,能夠對出現(xiàn)在畫面中的任意人臉進行識別,并記錄結果。通過該功能,能夠做到真正的自動監(jiān)管。人臉識別功能的數(shù)據(jù)流程如圖6所示。在進行人臉識別之前,需要先通過攝像頭捕獲圖像,將檢測到的人臉注冊并儲存到人臉數(shù)據(jù)庫中,注冊完成后對庫中的人臉數(shù)據(jù)進行訓練并儲存訓練文件。開啟人臉識別功能后,系統(tǒng)會對檢測到的人臉與訓練生成的模型進行比對,并返回比對結果。
圖6 識別流程
人臉檢測算法主要采用人臉Haar特征值算法。如圖7所示,使用Haar特征模板遍歷圖像,并使用積分圖的方法計算模板中白色矩形遍歷的灰度值的和,減去黑色矩形遍歷的灰度值的和,即為該人臉的Haar特征值。
圖7 Haar特征值模板
人臉識別主要使用LBP算法。如圖8所示的計算是在一個3×3的正方形上展開,將正方形的中心點作為基點,在附近區(qū)域找到所有像素值與其進行對比,將對比結果進行量化。接下來需要將這些量化結果進行處理,即根據(jù)不同的位置將這些值進行加權并相加,最后得到的值就是中心點局部二值模式對應的值。
圖8 LBP算子
如圖9所示,通過預處理將人臉圖像分塊,采用LBP算子提取人臉特征并生成直方圖,用以描述人臉。采用局部二值模式提取人臉特征,提取的局部紋理特征十分穩(wěn)定,在很多情況下都擁有不變的特性,有助于分類。
圖9 提取LBP特征
控制網站如圖10所示。網站共分成4個界面,分別是主界面、遠程遙控界面、人臉識別界面和人臉錄入界面。
圖10 網站界面
主界面:左邊部分顯示攝像頭的實時監(jiān)控畫面,右邊一欄顯示當前視頻流的幀數(shù)、分辨率等信息。
遠程遙控界面:除左邊顯示的攝像頭畫面外,右邊設置了方向圓盤,通過點擊圓盤上的按鈕,可以控制機器人進行前進、后退、轉向和初始化等動作。
人臉識別界面:進入人臉識別界面后,如果畫面中未檢測到人臉,網頁將繼續(xù)顯示當前攝像頭的畫面;如果畫面中檢測到人臉,網頁會顯示處理后的圖像,即將人臉用藍色方框框出,并在左下角顯示識別到的人臉的名稱以及識別結果的置信度。檢測到人臉后,點擊網頁右側的信息框,信息框中也會顯示人臉的名稱和置信度。
人臉錄入界面:使用者可以通過該界面將自己的臉錄入到人臉數(shù)據(jù)庫中。在右側欄輸入使用者的ID后,系統(tǒng)開啟人臉檢測,并自動捕獲50張檢測到的人臉圖像,保存到人臉數(shù)據(jù)庫中。捕獲完畢后,系統(tǒng)會自動對人臉庫中的數(shù)據(jù)進行訓練,并生成訓練結果文件,以待人臉識別程序調用。
樹莓派3B+控制板作為機器人的主控板,也是本機器人設計的核心,樹莓派具有強大的性能和豐富的擴展接口,其操作系統(tǒng)對于一般應用的處理游刃有余,豐富的擴展I/O接口可以通過連接各傳感器和舵機等硬件設備實現(xiàn)不同的功能。樹莓派采用Python語言,其簡潔性和擴展性十分適合機器人的功能實現(xiàn)。采用PCA9685舵機控制板通過脈沖實現(xiàn)對舵機的控制。
模塊接口和系統(tǒng)間接口使用IC協(xié)議進行通信。SDA:數(shù)據(jù)線,IC協(xié)議允許在單根數(shù)據(jù)線上進行雙向通信,這條線既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。SCL:時鐘線,這里所說的“時鐘”的作用就是協(xié)調硬件之間的傳輸節(jié)奏,做到步伐一致。在IC通信中,當時鐘線的電平拉高后,數(shù)據(jù)線的內容就不能改變,即SCL為高電平時,不能寫數(shù)據(jù),但可以讀。當SCL下降為低電平后,才能向數(shù)據(jù)線(SDA)寫入數(shù)據(jù)。
IC通信以Start信號開始,以Stop信號結束。
傳送開始信號的方法:拉高SCL和SDA電平,在SCL處于高電平的情況下拉低SDA的電平。
傳送結束信號的方法:拉高SCL電平,在SCL處于高電平的情況下,拉高SDA的電平。
無論是開始信號還是結束信號,SCL都處于高電平,由于時鐘線拉高將固定數(shù)據(jù)線上的內容,因此在開始和結束信號中不能傳輸數(shù)據(jù)。在SDA上,開始信號和結束信號相反,Start時電平拉低,Stop時電平拉高。SCL接PH4,SDA接PH5,VCC接3.3 V,GND接地,V+供電,在驅動大功率舵機時可不接,但外接電源的2個端口要接正負極,否則無法供電。
PC和樹莓派的系統(tǒng)開發(fā)平臺匯總見表1、表2所列。
表1 系統(tǒng)開發(fā)平臺——PC
表2 系統(tǒng)開發(fā)平臺——樹莓派
隨著互聯(lián)網的普及與發(fā)展,萬物聯(lián)網的趨勢越來越明顯,物聯(lián)網給人們生活帶來的便利也越來越多。本文設計的機器人以樹莓派為中心,集行走、圖像傳輸、人臉識別和遠程遙控等功能于一體;同時,基于樹莓派自身良好的拓展性,通過在機器人上連接光敏傳感器、紅外傳感器、氣敏傳感器等,也能夠使它成為一個多功能探測機器人。