任工昌,張 冉,劉 朋,尚亞東
(陜西科技大學機電工程學院,陜西 西安 710021)
在疫情的催化之下以及近幾年機器人產業的持續高速增長的基礎上,中國服務機器人產業未來將迅速擴張且潛力巨大[1]。同時疫情也刺激了智能配送機器人的市場需求,加速了配送機器人應用的落地[2]。
醫用配送機器人可在醫院、隔離區等多場景開展物資配送工作,可減少醫護人員交叉感染的風險,提高醫護人員工作效率,降低勞動強度。目前,配送機器人大都采用移動底盤加車廂的方式,需要人工將物品從藥箱取出或放置,無法完全避免與人接觸[3]。
本文在拖車式移動底盤的結構上,優化確定了機械臂和攝像頭的安裝位置,設計了一種循環式車廂搭配機械臂,通過對視覺識別與定位、機械臂軌跡規劃等關鍵技術的研究,完成機器人自主抓取的任務。同時將導航功能與自主抓取功能相結合,實現了配送過程全程無人化。
醫用配送機器人自主配送分為自主導航和自主抓取兩大功能,導航功能利用移動平臺實現,自主抓取采用機械臂加深度攝像頭來完成[4],總體方案的示意圖如圖1所示,總體方案框架如圖2所示。

圖1 總體方案示意圖

圖2 總體方案框架圖

圖3 循環式車廂
循環式車廂采用鏈輪帶動鏈條傳動,如圖3所示。利用平行四桿機構的原理,配合平衡機構,保證了循環機構在運行中不會產生過大的晃動,提高了運行的平穩性。同時每個存儲箱循環運動,存儲箱到達位置相同,相較于傳統車廂,箱門開口朝上方便攝像頭的識別與定位,簡化了機械臂的抓取軌跡,大大提升了機械臂抓取的成功率。
由于機器人移動底盤為拖車型,機械臂的安裝位置可選擇牽引車頭或車廂上,車箱安裝在拖車型移動底盤上,機械臂安裝在循環車箱的前側,如圖4(b)方案所示,將機械臂的位置安裝在車廂前側,其機械臂的基坐標系難以確定,因為拖車型移動底盤的動力源在牽引車頭上,拖車坐標是根據牽引車坐標系和編碼器側的角度轉換得到,存在誤差。安裝在車廂上影響機械臂抓取的成功率。將機械臂安裝在牽引車車頭更加容易確定機械臂的基坐標系,對抓取成功率的影響較小,且隨著車廂的更換而機械臂無需拆裝,故最終選擇方案(a)。最終確定機器人整體結構方案如圖5所示。

圖4 機械臂安裝示意圖

圖5 整體結構示意圖
醫用配送機器人采用上、下位機的結構,上位機采用ROS系統(機器人操作系統)實現對傳感器信息的處理和機械臂抓取軌跡的規劃。下位機采用STM32F103和Arduino將雷達、攝像頭等傳感器的信息發送給上位機,并接收上位機的指令,分別驅動移動底盤和機械臂運動。控制系統框架如圖6所示。

圖6 控制系統總體框架
在Ubuntu16.04中安裝Kinetic版本的ROS系統,作為操作系統層的核心,安裝各種需要的功能包,其中,move_base包根據傳感器反饋的信息進行路徑規劃,amcl包在已知地圖中進行自主定位與導航,Cartographer包實現建圖功能[5-6],find_object_2d功能包是實現攝像頭目標識別,camera_calibration功能包和easy_handeye實現對相機的內外參的標定以及各種依賴的功能包等,快速的完成上位機ROS系統框架搭建。
MoveIt!含有開源運動規劃庫OMPL(Open Motion Planning Library),RRT算法是其中比較經典的算法[7]。在使用MoveIt!配置機械臂時,從OMPL庫中選擇合適的算法,RRT算法不需要對空間進行建模,搜索效率高,選擇RRT算法對三維空間中的機械臂進行路徑規劃。
在二維平面上RRT算法基本思路:

圖7 RRT基本原理圖
1)從初始位置Pinit開始,以樹的形式進行探索;
2)生成隨機采樣節點Prandom;
3)Pnearest是最接近該隨機生成的節點,將兩點相連判斷否滿足障礙物約束;
4)如果滿足障礙物約束,則判斷兩點間距與q搜索步長的大小關系,小于q,則Prandom作為新的節點;
5)兩點間距如果大于q,在Pnearest和Prandom連接線上選擇距離Pnearest距離為q的點作為新節點Pnew,如此往復進行,如圖8所示。
在二維空間中隨機采樣,對路徑進行隨機擴展,直到“樹枝”覆蓋目標區域,選取一條路徑作為最終結果。
ROS有大量可以在應用程序中重用的軟件包。find_object_2d包是一種基于模板匹配的物體識別和檢測的功能包。通過它提供的GUI,可以標記待檢測的物體,建立模板庫后可用來進行特征檢測。功能包提供的檢測器節點可檢測攝像頭圖像中的物體,并通過ROS話題、服務通信機制發布物體的位置消息,還可通過深度攝像頭估計物體的深度信息和姿態信息,機器臂通過訂閱該功能包發布的位姿消息實現對物體的抓取。
在ROS系統中對Kinect V2進行標定,采用camera_calibration功能包,基本原理為張正友標定法,獲取攝像頭的內參和外參矩陣,消除圖像畸變[8]。標定過程如圖8。

圖8 相機標定過程
采用基于模板匹配的find_object算法功能包對目標進行識別,該算法首先建立模板,提取待測物品的特征點,通過與攝像頭傳回的圖像對比識別待測物品,以三維空間坐標和四元數的方式輸出目標的位置和姿態信息。識別效果如圖9所示。

圖9 視覺識別效果圖
安裝有ROS系統的Mini PC固定在醫用配送機器人牽引車車頭上,與遠程計算機連接在同一WIFI下,遠程計算機通過ssh方式訪問Mini PC實現遠程監控。啟動KinectV2相機和find_object_3d識別算法,物品被Kinect V2識別和定位成功后,可在rviz中看到待抓物品相對于Kinect V2的坐標,機械臂需要讓夾爪中心到達該位置夾取物體,通過TF坐標變換和ROS通信機制,將待抓物品位姿信息發布并使機械臂訂閱到位姿信息,調用OMPL庫的RRT算法自主規劃從初始位姿到目標位姿的多組關節位置,再通過ros_lib和arduino通信,使機械臂末端執行機構到達抓取目標物的最終姿態,抓取過程如圖10中(a)至(d)所示。

圖10 機械臂抓取過程圖
本文在拖車式移動底盤的結構上,優化確定了機械臂和攝像頭的安裝位置,設計了一種循環式車廂搭配機械臂,搭建了配送機器人的控制框架。同時對視覺識別與定位、機械臂軌跡規劃等關鍵技術的研究,將移動機器人定位、導航功能與自主抓取功能相結合,實驗驗證實現了移動機器人自主抓取及配送過程全程無人化。