曲志強 馬 洋 倪乃坤 陳澤天 李麗麗
沈陽理工大學 遼寧 沈陽 110159
隨著當今人工智能的浪潮,各種智能設備的市場越來越大,本機器人完全適應中國現代自動化機器人的發展趨勢。其設計主要涉及了數字圖像采集、處理和識別技術、自動控制原理、傳感器測試技術、機電傳動控制以及單片機原理及接口技術等學科內容。經虛擬工作場地搭建和模型實體化調試,測試結果表明,本機器人可在地形復雜狹小的工作環境內高效分揀搬運作業,有很高的應用價值和經濟效益。設計的根本目的是減少人力并提高物流效率,利用科技提高人們的生活質量。
機械臂為六軸,驅動部分采用5個20Kg臺灣工藝防水金屬殼數字舵機和2個90s高品質模擬舵機,工作時可提供穩定持久精確的動力。機械手部分選用吸盤,雖然吸盤、真空氣泵和泄氣閥之間的接線和機電控制增加了機器人拆裝維修的難度,但機械爪的機械抓取很容易破壞貨物外包裝甚至損傷內部,換用真空吸盤則可有效避免此類意外,采用吸附抓取更加安全穩定可靠且降低了控制難度和設計成本。
機器人底盤選用履帶行走機構,其廣泛應用于各種工程機械設備。本底盤越野性能好、驅動力大爬坡能力強并具有較小的轉彎半徑可原地轉彎,機動靈活性可適應多種復雜地形。分揀工作場地內難免會有臺階類的障礙,此地盤較強的越障能力大大提高了其推廣應用價值。
自動分揀搬運機器人核心硬件系統(見圖1)主要包括四大部分:視覺采集和識別部分、動力系統控制部分、黑線循跡部分和機械臂控制部分。
①視覺采集和識別部分:本部分選用星瞳Open MV3 Cam M7圖像處理識別模塊,具有體積小低功耗低成本的特點。可通過Python語言進行編程,利用其語言本身高級數據結構,可很容易的處理許多machine vision的復雜算法。可容易使用外部終端觸發拍攝或執行相應算法控制IO引腳,對于本機器人的二維碼識別發揮了極大的作用。
②動力系統控制部分:本部分使用了四個編碼器電機驅動。紅外線傳感器模塊組在工作過程中,會實時反饋給單片機相應IO的狀態值,圖像識別模塊在識別時也會隨時觸發中斷子程序,此種電機對此類突發情況可迅速準確的做出響應。

圖1 自動分揀物流機器人核心硬件系統圖
③黑線循跡部分:本部分采用了8路紅外探測循跡避障模塊組。基本尺寸為65*45mm,體積小便于安裝。為機器人等自動化機械裝置提供了一種多途徑的紅外探測系統的解決方案,使用紅外線發射和接收管等分立元器件組成探頭并使用了LM339電壓比較器(加入了遲滯電路更加穩定)作為核心器件的中控電路。該模塊獨立探頭數量和識別精度均滿足本機器人的使用要求。
④機械臂控制部分:本部分的核心在于控制,其主要分為兩大部分:1.舵機的控制;2.真空氣泵及吸盤的控制。首先對于六個舵機的控制。在對動作進行編程之前,需先進行軟件模擬仿真做出六軸的運動解析方程式降低控制難度提高工作效率,最后為提高運動的穩定和精確性可對舵機進行PID調節。其次對于真空氣泵的控制需外配6V電壓,若用單片機直接供電則達不到工作電壓無法正常工作。
本自動分揀搬運機器人基于STM32單片機、Open MV3圖像識別傳感器、紅外線傳感器模塊組等功能模塊的控制系統流程圖,如下圖2所示。

圖2 自動分揀搬運機器人控制系統流程圖
本部分采用Open MV3模塊,對物流分揀行業應用極其廣泛的二維碼進行掃描識別,通過機器視覺算法對獲取的二維碼目標做進一步處理并讀取內部的數據,最終反饋給STM32單品機,其處理識別完畢后,單片機系統可讀取的數據。下面將對選定識別目標二維碼以及機器視覺識別算法原理做簡要分析和概述。
1)識別目標二維碼的簡述及設計制作
二維碼(又稱二維條碼),是一種黑白相間的幾何圖形,按一定規律在二位平面內分布,并可記錄特定的符號信息。在代碼編制上使用構成計算機底層邏輯基礎的“0”、“1”比特流的概念,利用一些二進制對應的幾何形體來表示需要儲存的信息。二維碼(QR Code,其中QR全稱為Quick Respond)是當今移動設備上面應用極其廣泛的編碼方式,相較于傳統的條形碼可以存儲更多信息以及表示更多數據類型。其結構主要有功能圖形和編碼區域兩大部分。
本機器人測試工作中二位碼素材的來源,主要通過python編程手段設計生成,簡單方便快捷,可在短時間內提供大量識別素材。基于python設計生成二維碼核心代碼如下所示。

2)二維碼識別算法及原理概述
本部分選用Open MV3攝像頭模塊,處理識別圖像之前,需先對其重要模塊參數進行初始化才可正常工作。首先,用上位機內Sensor.reset()函數對感光元件進行初始化。其次,選擇圖像處理像素模式,主要有灰度模式sensor,GRAYSCALE及全彩模式sensor.RGB565。此外,灰度模式處理速度相較于全彩模式更快。機器人主要識別單色二維碼,沒有涉及任何顏色識別,選用灰度處理模式即可。然后,調用sensor.set_framesize(framesize); sensor.skip_frames([n,time])函數分別對其分辨率及穩定模式進行設置。最后為防止圖像的不穩定,可選擇關閉自動白平衡,即對sensor.set_auto_gain及sensor.set_auto_whitebal設置成關閉狀態。
初始化完畢后,開始識別二維碼。首先,采用QRCode類對二維碼對象進行掃描,可以調用函數sensor.snapshot(),對二維碼圖像拍照采集并完成掃描。其次攝像頭不可避免的受外界環境各種干擾及自身結構特性的影響,會使獲取的圖像發生畸變。為削弱圖像畸變的影響,提高識別精度,可調用image.lens_corr()函數進行輔助修正。
然后可在上位機上對圖像做進一步的預處理,針對圖像減噪可調用內部功能函數加必要的形態學操作處理修正。
圖像預處理完畢后,可通過img.find_qrcodes()獲取處理后圖像中的二維碼,并識別讀取內部數據(二位碼的坐標、邊框位置坐標以及二維碼信息中的有效字符串),并通過Open MV3的TX,RX管腳連接設置波特率值,完成與STM32單片機的串口通信。本自動分揀物流機器人,多線程二維碼圖像采集識別算法流程圖如右圖3所示。

圖3 自動分揀物流機器人視覺算法流程圖
本部分將以一輛基于紅外傳感器導航的循跡小車簡化模型及模擬工作環境(見圖4)為例,來簡述循跡控制算法及其原理。為降低設計成本,使用了精度相對較低的紅外線傳感器,但通過多個紅外線傳感器構成模塊組,經特殊位置布置(見圖1黑線循跡系統部分)和識別抗干擾算法,可使機器人沿預定黑線路徑穩定快速運行。配置于底盤前端的a、b和c紅外線傳感器主要用于循跡,配置后端的d和e傳感器主要用于判斷路口的類型,以便做出轉向判斷。在本模擬工作場地內可遇到的路口類型對應有紅外線傳感器模塊組IO口值六種狀態。

圖4 紅外線傳感器模塊組狀態、模擬分揀工作區及黑線路徑布置圖
為了提高循跡的可靠性和穩定性,還做了路口識別的抗干擾算法。在路口類型識別的時候,為了避免傳感器輸入到單片機上的電平高低轉換過程帶來干擾,本算法大體思路為,在傳感器d、e出現高電平的時候,單片機先不讀取識別而是處于一種延時等待的狀態,如信號可維持一段時間穩定不變,則表示確實遇到了路口位置而不是隨機干擾信號。本算法可配合紅外線模塊組有效提高循跡識別的精確度和循跡的抗干擾能力。
此機器人借鑒了固定蜘蛛手式機械臂分揀設備和高配合集體型分揀機器人,形成了獨特獨立的全自動分揀機器人,其創新之處在于:①場地適應性強,工作空間利用率高。采用紅外線識別模塊進行黑線循跡,可對復雜的工作場地基于黑線提前進路徑布置避免了工作盲區;底盤采用履帶行走機構,越障能力強、驅動力大并且運行穩定;②推廣應用價值高。本機器人設計成本低廉,使大多數用戶都有能力支付配備此設備;③無人化作業。整個自動分揀物流機器人運行基于一整套自動控制系統,可實現全自動無人化高效分揀作業;④運行安全穩定可靠。機械手部分采用真空吸盤代替傳統的機械式抓取,可有效避免夾取過程中,機械爪夾力控制不當對貨物本身造成的傷害,降低了控制難度提高了安全、穩定和可靠性。
通過實物模型搭建、調試及模擬工作場地運行測試,結果表明,該型自動分揀物流機器人結構堅固緊湊,設計合理;可正常穩定運作執行分揀搬運任務。整套自動控制系統達到了預期設計目標。本機器人硬件電路部分簡單清晰,便于后續對部分功能模塊維修和升級;整套控制系統都是基于STM32單片機實現,程序代碼可以隨時維護更改,便于繼續對機器人深入開發。該型機器人的不足事對工作環境光源的要求較高,一旦外部光源出現問題將無法正常工作。以后將針對光源問題,對機器人做進一步研究改進,可讓機器人本身自帶光源,能極大程度的脫離外界環境約束。