盧健之,趙 奕,趙塏杰,楊澤平
(華東理工大學 信息科學與工程學院,上海 200237)
21世紀以來,國內外對機器人技術的發展越來越重視。機器人技術被認為是對未來新興產業發展具有重要意義的高技術之一。機器人在醫療服務、野外勘測、深空深海探測、家庭服務和智能交通等領域都有廣泛的應用前景。在這些領域,機器人需要在動態、未知、非結構化的復雜環境中完成不同類型的作業任務,這就對機器人的環境適應性、環境感知、自主控制、人機交互提出了很高的要求。
本文設計的基于樹莓派控制板的六足智能機器人,通過樹莓派上編寫的Python代碼來控制6條機械腿,可以實現前進、后退和轉向的功能,搭配攝像頭和OpenCV提供的人臉識別庫可以實現人臉識別功能。使用Web網頁設計控制頁面,開啟FLASK服務器后,聯網設備進入設計好的控制頁面即可實現機器人的腿部控制和人臉識別。
該機器人具有以下創新點:
(1)設備拓展性:機器人選用樹莓派系統,在樹莓派上有著多個GPIO接口,可以拓展豐富的功能。除控制機器人的移動和攝像外,可以通過添加溫度傳感器、甲醛探測器、紅外線傳感器等,采集豐富的環境信息,使機器人達到真正意義上的智能。
(2)移動方式:區別于一般的可遙控移動設備,機器人采用六足機械足移動方式。經過對移動算法和硬件的優化,機械腿移動具有傳統輪子移動所不具備的優勢,如靈活性強,能夠適應更復雜的地形環境,能夠前往更多小車所不能前往的區域等。
(3)交互方式:通過網頁端與機器人交互。通過搭建FLASK網站,使在同一局域網下的所有設備都能夠訪問和控制六足機器人,不論在手機還是在平板電腦上,只要輸入IP就能夠看到監控的實時畫面并控制機器人移動。我們計劃在之后的研究中,將FLASK架設到遠程服務器中,以突破局域網的局限性,使任意設備都能通過公網的IP地址來訪問和控制六足機器人,實現真正的遠程監控、遠程遙控。
(4)人臉識別:與傳統的監控設備不同,此智能機器人具備人臉識別功能,開啟該功能后,能夠對出現在畫面中的任意人臉進行識別,并記錄結果,真正做到自動監管。
本六足機器人主要具有以下功能:
(1)六足機械腿移動:通過6條機械腿,共18個舵機完成機器人的移動。
(2)圖像實時傳輸:通過攝像頭獲取圖像并實時傳輸到后端。
(3)人臉錄入:將圖像中的人臉截取下來,然后存到相應的人臉庫中。
(4)人臉識別:使用根據庫中人臉進行訓練得到的模型,識別圖像中的人臉,返回識別結果。
(5)Web交互:提供網頁前端與上述功能進行交互。即在網頁中控制機器人的移動,顯示監控圖像、人臉錄入和人臉識別的結果。
技術路線如圖1所示。

圖1 六足機器人的技術路線
智能六足機器人的系統功能框架如圖2所示。

圖2 系統功能框架
區別于一般的可遙控移動設備,機器人采用六足移動的方式。機器人的行走靠舵機提供動力,而樹莓派控制板可以通過GPIO接口實現對舵機的控制,也可以使用連接在樹莓派上的PCA9685舵機控制板實現。對于單個電機而言,可直接使用樹莓派提供的接口,而多個電機協同控制時,通常使用PCA9685舵機控制板,通過控制PWM脈沖寬度調制信號控制舵機角度,原理如圖3所示。

圖3 PCA9685原理
PWM是脈沖寬度調制的縮寫,通過對一系列脈沖的寬度進行調制,等效出所需要的波形(包含形狀以及幅值),對模擬信號電平進行數字編碼,即通過調節占空比的變化來調節信號、能量等的變化。占空比是指在一個周期內,信號處于高電平的時間占據整個信號周期的百分比,例如方波的占空比為50%。
六足步行機器人的步態是多樣的,其中三角步態是六足步行機器人的典型步態。“六足綱”昆蟲步行時,一般不是六足同時直線前進,而是將三對足分成兩組,以三角形支架結構交替前行。目前,大部分六足機器人采用了仿昆蟲的結構,6條腿分布在身體兩側,身體左側的前、后足及右側的中足為一組,右側的前、后足和左側的中足為另一組,分別組成2個三角形支架,依靠大腿前后劃動實現支撐和擺動過程,前驅步態圖示如圖4所示,旋轉步態圖示如圖5所示。

圖4 前驅步態圖示

圖5 旋轉步態圖示
樹莓派接通攝像頭拍攝圖片,將每張圖片由數字轉換為字節格式,通過Socket通信發往PC。PC在接收到圖片信息后,把文字轉換為圖片格式,提供給后續程序使用。開啟網站后,樹莓派持續通過Socket向PC發送圖片信息,而樹莓派還需隨時接收PC可能發送的移動方向信息,所以在樹莓派的程序中使用了雙線程,一邊向PC發送信息,一邊等待接收PC的信息。兩者之間的通信均需將需要發送的信息轉換成字節格式,再通過Socket通信發向對方IP。接收到信號后,系統將字節格式轉換為原格式。
與傳統的監控設備不同,該機器人搭載了人臉識別功能,開啟該功能后,能夠對出現在畫面中的任意人臉進行識別,并記錄結果。通過該功能,能夠做到真正的自動監管。人臉識別功能的數據流程如圖6所示。在進行人臉識別之前,需要先通過攝像頭捕獲圖像,將檢測到的人臉注冊并儲存到人臉數據庫中,注冊完成后對庫中的人臉數據進行訓練并儲存訓練文件。開啟人臉識別功能后,系統會對檢測到的人臉與訓練生成的模型進行比對,并返回比對結果。

圖6 識別流程
人臉檢測算法主要采用人臉Haar特征值算法。如圖7所示,使用Haar特征模板遍歷圖像,并使用積分圖的方法計算模板中白色矩形遍歷的灰度值的和,減去黑色矩形遍歷的灰度值的和,即為該人臉的Haar特征值。

圖7 Haar特征值模板
人臉識別主要使用LBP算法。如圖8所示的計算是在一個3×3的正方形上展開,將正方形的中心點作為基點,在附近區域找到所有像素值與其進行對比,將對比結果進行量化。接下來需要將這些量化結果進行處理,即根據不同的位置將這些值進行加權并相加,最后得到的值就是中心點局部二值模式對應的值。

圖8 LBP算子
如圖9所示,通過預處理將人臉圖像分塊,采用LBP算子提取人臉特征并生成直方圖,用以描述人臉。采用局部二值模式提取人臉特征,提取的局部紋理特征十分穩定,在很多情況下都擁有不變的特性,有助于分類。

圖9 提取LBP特征
控制網站如圖10所示。網站共分成4個界面,分別是主界面、遠程遙控界面、人臉識別界面和人臉錄入界面。

圖10 網站界面
主界面:左邊部分顯示攝像頭的實時監控畫面,右邊一欄顯示當前視頻流的幀數、分辨率等信息。
遠程遙控界面:除左邊顯示的攝像頭畫面外,右邊設置了方向圓盤,通過點擊圓盤上的按鈕,可以控制機器人進行前進、后退、轉向和初始化等動作。
人臉識別界面:進入人臉識別界面后,如果畫面中未檢測到人臉,網頁將繼續顯示當前攝像頭的畫面;如果畫面中檢測到人臉,網頁會顯示處理后的圖像,即將人臉用藍色方框框出,并在左下角顯示識別到的人臉的名稱以及識別結果的置信度。檢測到人臉后,點擊網頁右側的信息框,信息框中也會顯示人臉的名稱和置信度。
人臉錄入界面:使用者可以通過該界面將自己的臉錄入到人臉數據庫中。在右側欄輸入使用者的ID后,系統開啟人臉檢測,并自動捕獲50張檢測到的人臉圖像,保存到人臉數據庫中。捕獲完畢后,系統會自動對人臉庫中的數據進行訓練,并生成訓練結果文件,以待人臉識別程序調用。
樹莓派3B+控制板作為機器人的主控板,也是本機器人設計的核心,樹莓派具有強大的性能和豐富的擴展接口,其操作系統對于一般應用的處理游刃有余,豐富的擴展I/O接口可以通過連接各傳感器和舵機等硬件設備實現不同的功能。樹莓派采用Python語言,其簡潔性和擴展性十分適合機器人的功能實現。采用PCA9685舵機控制板通過脈沖實現對舵機的控制。
模塊接口和系統間接口使用IC協議進行通信。SDA:數據線,IC協議允許在單根數據線上進行雙向通信,這條線既可以發送數據,也可以接收數據。SCL:時鐘線,這里所說的“時鐘”的作用就是協調硬件之間的傳輸節奏,做到步伐一致。在IC通信中,當時鐘線的電平拉高后,數據線的內容就不能改變,即SCL為高電平時,不能寫數據,但可以讀。當SCL下降為低電平后,才能向數據線(SDA)寫入數據。
IC通信以Start信號開始,以Stop信號結束。
傳送開始信號的方法:拉高SCL和SDA電平,在SCL處于高電平的情況下拉低SDA的電平。
傳送結束信號的方法:拉高SCL電平,在SCL處于高電平的情況下,拉高SDA的電平。
無論是開始信號還是結束信號,SCL都處于高電平,由于時鐘線拉高將固定數據線上的內容,因此在開始和結束信號中不能傳輸數據。在SDA上,開始信號和結束信號相反,Start時電平拉低,Stop時電平拉高。SCL接PH4,SDA接PH5,VCC接3.3 V,GND接地,V+供電,在驅動大功率舵機時可不接,但外接電源的2個端口要接正負極,否則無法供電。
PC和樹莓派的系統開發平臺匯總見表1、表2所列。

表1 系統開發平臺——PC

表2 系統開發平臺——樹莓派
隨著互聯網的普及與發展,萬物聯網的趨勢越來越明顯,物聯網給人們生活帶來的便利也越來越多。本文設計的機器人以樹莓派為中心,集行走、圖像傳輸、人臉識別和遠程遙控等功能于一體;同時,基于樹莓派自身良好的拓展性,通過在機器人上連接光敏傳感器、紅外傳感器、氣敏傳感器等,也能夠使它成為一個多功能探測機器人。