鐘彩意,王 欣※,吳 迪,王殿龍
(1.大連理工大學機械工程學院,遼寧大連 116024;2.大連理工大學計算機學院,遼寧大連 116024)
根據(jù)聯(lián)合國發(fā)布的《世界人口展望:2019 年修訂版》的數(shù)據(jù),2019 年全球65 歲以上人口占比為9%,到2050 年這一占比將達到16%,人口老齡化問題將日益加劇[1]。人口老齡化的加劇使得醫(yī)療護理的需求不斷增加,從而造成醫(yī)護人員的相對缺乏[2]。為此,能夠輔助醫(yī)護人員提供醫(yī)療服務的機器人具有極大的發(fā)展?jié)摿Γ绕涫悄軌蜣D運行動不便病人的機器人[3-4]。目前,美國、日本、英國等國都先后研制了用于轉運病人的機器人,如日本的RIBA機器人[5-6]、美國的戰(zhàn)場救援機器人“Vecna Bear”[7]、韓國的PAM 移動機器人[8]以及英國的RoNA 機器人[9]等,這些機器人都能夠實現(xiàn)病人的轉運。我國對醫(yī)療轉運機器人也進行了一定的研究,如南京理工大學的“MT-Bear”機器人[10]和北京建筑大學的轉運護理機器人[11]。
在機器人的設計與研究過程中,仿真是不可或缺的。通過仿真,一方面可以提前發(fā)現(xiàn)機器人設計上的問題,如結構是否合理、工作空間是否滿足要求;另一方面可以對控制算法進行驗證,避免因控制算法問題對機器人造成損壞[12-15]。機器人仿真技術的應用可以極大地縮短機器人開發(fā)周期、降低開發(fā)成本。Webots 軟件是一款集建模、編程、仿真、程序移植為一體的專業(yè)機器人仿真軟件[16],應用廣泛。山東大學的王銘昌[17]利用Webots 軟件搭建了服務機器人的故障仿真平臺;劉俊飛[10]利用Webots 軟件對MT-Bear 護理機器人的路徑規(guī)劃和目標抱取進行仿真;李柳群[18]利用Webots 軟件對汽車起重機的路徑規(guī)劃進行研究。
現(xiàn)有轉運機器人多為雙臂形式,搬運病人時僅對背部和大腿有支撐,對病人頭部和小腿無支撐。為此,本文提出一種新型醫(yī)療轉運機器人,具有4條機械臂,可分別為病人的頭部、背部、大腿及小腿提供支撐,且可實現(xiàn)轉運過程中病人姿態(tài)的調整。本文首先設計機器人結構,分析機械臂正逆運動學,其次在Webots軟件中建立機器人工作環(huán)境、機器人以及病人模型,接著編寫控制程序,設計機器人控制器軟件,最后通過仿真實驗驗證仿真平臺的可行性及機器人結構的可行性。
要進行機器人的結構設計,首先要確定機器人托臂的尺寸要求。根據(jù)《YY 0003-90——病床》《GB/T 12996-2012 電動輪椅車》《GB 10000-88 中國成年人人體尺寸》等資料確定機器人托臂距地高度范圍為400~900 mm,長度為600 mm,外側兩臂間距范圍為1 600~2 000 mm。除此以外,還需進行機構選型與設計,初步設定機器人所能搬運病人的最大體重為150 kg,單機械臂最大負載為50 kg,據(jù)此計算出機器人各關節(jié)所需的驅動力,并進行選型,最終所設計的機器人如圖1所示。
圖1 機器人結構三維模型
機器人由3 個部分組成,分別是底盤行走部分、軀干部分以及機械臂部分。底盤行走部分為四輪形式,其中2個輪為舵輪,對角分布,為驅動輪,另2個輪為萬向輪,為從動輪,此形式可實現(xiàn)機器人任意方向的運動及原地旋轉,以適應室內狹小的工作環(huán)境。軀干部分由軀干主體和外罩組成,用于連接底盤和機械臂。機器人共有4條機械臂,每條機械臂均由4 個關節(jié)組成(即4 自由度),分別為起升關節(jié)、肩關節(jié)、肘關節(jié)和腕關節(jié),如圖1所示。機械臂的末端托臂呈扁平狀,可楔入病人與病床之間的縫隙,實現(xiàn)病人與病床的分離。4條機械臂運動的相互配合可改變病人的姿態(tài),例如由平躺姿態(tài)變?yōu)樽鹱藨B(tài),從而實現(xiàn)病人從病床到輪椅的轉運。
由于機器人的4 條機械臂構型類似,故以左側臂為例進行運動學分析。以機器人底盤在地面投影的中心為原點,以豎直向上為Z軸正方向,以前進方向為X軸正方向,建立機器人基坐標系,再根據(jù)D-H法依次建立左側臂其余連桿的坐標系,如圖2所示。
圖2 機器人左側臂連桿坐標系
機器人D-H 法通過4 個參數(shù)來確定相鄰兩坐標系間的齊次變換矩陣,分別為關節(jié)角(θ)、連桿偏距(d)、連桿長度(a)和連桿轉角(α)[19]。根據(jù)機器人的實際結構尺寸,得出左側臂的D-H參數(shù),如表1所示。
表1 機器人左側臂D-H參數(shù)
機器人的正運動學問題是根據(jù)機械臂的關節(jié)位置求解機械臂末端相對于基坐標系的位姿[19]。根據(jù)D-H 法可得兩相鄰連桿間的齊次變換矩陣為:
為簡化表示,將sin記為s,cos記為c(以下同),根據(jù)表1 數(shù)據(jù)得出左側臂各連桿坐標系間的變換矩陣,并依次相乘,得出左側臂手掌坐標系與基坐標系間的變換矩陣,如下所示:
其中
機器人逆運動學問題是根據(jù)機械臂末端位姿求解機械臂各關節(jié)位置參數(shù),常用解法有數(shù)值解法和幾何解法[19],本文采用數(shù)值解法。首先引入6個參數(shù)來表示機械臂末端的位置和姿態(tài):x、y、z、θr、θp和θy,其中x、y、z為機械臂末端坐標,即機械臂末端位置向量為
θr、θp、θy為歐拉角,θr為繞X軸的旋轉角(roll角度),θp為繞Y軸的旋轉角(pitch角度),θy為繞Z軸的旋轉角(yaw角度),歐拉角的順序為X→Y→Z,可得末端坐標系相對于基坐標系的旋轉矩陣為:
則左側臂末端坐標系與基坐標系間的齊次變換矩陣為:
由機械臂末端正運動學所得齊次變換矩陣與期望的齊次變換矩陣相等,即,解得:
本文利用Webots 軟件建立仿真平臺模型,該軟件是一款多平臺的開源機器人仿真軟件,集建模、編程、仿真和程序移植于一體。軟件使用VRML 語言進行建模,使用ODE 作為物理引擎。軟件內置有豐富的傳感器和執(zhí)行器,可以滿足絕大多數(shù)機器人的需求。Webots 軟件可使用內置的IDE 或第三方開發(fā)環(huán)境進行編程,支持C/C++、Java、Python、MATLAB等多種編程語言,支持TCP/IP 協(xié)議,可以通過網(wǎng)絡實現(xiàn)仿真環(huán)境中機器人的遠程控制。
該機器人主要工作在醫(yī)院、養(yǎng)老院等有大量病人搬運工作的場所,為此,本文設定機器人的工作環(huán)境為醫(yī)院病房,其地面平整,四周為墻壁,包含有病床、椅子、柜子等物品。
首先創(chuàng)建基本環(huán)境,包括背景、光源及仿真參數(shù)等,其中背景通過Background 節(jié)點設置;環(huán)境光源通過Direction?alLight節(jié)點設置;仿真參數(shù)可通過WorldInfo節(jié)點設置。
其次在環(huán)境中添加地面、墻壁、病床、椅子等,Webots中的實體模型可在軟件內部建立也可通過其他三維軟件建立后轉為VRML 格式再導入,本文針對不同的物品采用不同的建模方式,其中結構簡單的地面和墻壁直接通過內置的Rect?angleArena 和Wall 節(jié)點創(chuàng)建;對于病床、椅子等,在Solid?works軟件中建模后,導出VRML格式文件,再導入Webots軟件中,并轉成PROTO文件,就能以節(jié)點的方式添加到仿真環(huán)境中。最終完成的機器人仿真工作環(huán)境效果圖如圖3所示。
圖3 機器人工作環(huán)境模型
機器人和人體模型除了需要實體,還需要運動關節(jié),We?bots軟件使用HingeJoint和SliderJoint節(jié)點模擬轉動關節(jié)和移動關節(jié),關節(jié)節(jié)點下的jointParameters 用于設置關節(jié)參數(shù),de?vice用于添加驅動電機和傳感器。
由于機器人結構復雜,不利于仿真,需進行簡化,簡化后的機器人仿真模型如圖4所示。Webots軟件機器人通過Ro?bot 節(jié)點創(chuàng)建,機器人的機械結構、關節(jié)、傳感器等均作為Robot節(jié)點的子節(jié)點,機器人的控制器也通過該節(jié)點下的con?troller 添加。創(chuàng)建好的機器人模型也可轉成PROTO 節(jié)點,這樣就可以將機器人以節(jié)點的形式添加到任意環(huán)境中。
圖4 機器人仿真模型
對于病人模型,除了結構需要簡化,關節(jié)數(shù)也要減少,由于只考慮病人整體姿態(tài)的變化,因此病人模型可簡化為3部分,即上半身、大腿和小腿,僅保留腰部關節(jié)和膝關節(jié),忽略其他關節(jié)。腰部關節(jié)和膝關節(jié)均為轉動關節(jié),與機器人關節(jié)不同,病人關節(jié)不需要添加驅動電機。最終完成的病人模型如圖5所示。與機器人類似,人體模型也轉成PROTO節(jié)點。
圖5 人體模型
機器人采用分層控制方式,分為上層控制器和底層控制器。上層控制器負責機器人的控制算法和人機交互,底層控制器負責運動控制和狀態(tài)的采集,兩控制器間通過TCP/IP 協(xié)議進行通信。控制器組成框圖如圖6所示。
圖6 仿真平臺控制器總體框圖
底層控制器包括機械臂關節(jié)電機控制模塊、行走電機控制模塊、傳感器模塊和通信模塊。電機控制模塊用于機器人電機的控制;傳感器模塊用于采集電機位置和力/力矩等信息;通信模塊用于與上層控制器進行信息交互。底層控制器流程如圖7所示。底層控制器使用Webots自帶的IDE 開發(fā),編程語言為C 語言,通過調用API 函數(shù)設置電機參數(shù)以及獲取傳感器參數(shù),利用套接字(socket)進行通信模塊的編程。Webots 軟件使用PID 控制電機位置,PID 參數(shù)可通過函數(shù)設置也可在電機節(jié)點下設置。
圖7 底層控制器流程
上層控制器包括人機交互界面、控制算法模塊、數(shù)據(jù)處理模塊和通信模塊,人機交互界面負責參數(shù)的輸入和信息顯示,控制算法模塊包括正逆運動學、軌跡規(guī)劃等算法,數(shù)據(jù)處理模塊負責傳感器數(shù)據(jù)的處理,通信模塊負責與底層控制器建立連接,實現(xiàn)信息交互。
上層控制器使用Qt開發(fā),Qt是一種跨平臺的圖形用戶界面應用程序開發(fā)框架,具有豐富的圖形界面庫,使用簡便。上層控制器有3種模式,分別為電機控制模式、手動控制模式和軌跡規(guī)劃模式,模式的切換通過選項卡的方式實現(xiàn)。電機控制模式可直接設置電機轉角(位移)控制機器人的運動;手動控制模式是通過按鈕來控制機械臂末端的運動,包括上下左右的4個方向的運動及轉動;軌跡規(guī)劃模式用于機械臂的軌跡規(guī)劃,以驗證不同的規(guī)劃方法。受篇幅限制,本文以軌跡規(guī)劃模式為例進一步說明,軌跡規(guī)劃模式界面如圖8所示,其流程圖如圖9所示。
圖8 上層控制器軌跡規(guī)劃模式界面
圖9 軌跡規(guī)劃模式流程
軌跡規(guī)劃模式界面包括機械臂末端路徑預覽區(qū)、軌跡規(guī)劃設置區(qū)、機器人控制區(qū)等,其中機械臂末端軌跡預覽區(qū)用于顯示機器人末端的軌跡,軌跡規(guī)劃設置區(qū)用于設置軌跡相關參數(shù),機器人控制器用于控制機器人的啟動、停止和復位。
由于該機器人的主要任務是轉運病人,因此仿真平臺能否模擬機器人與病人間的相互作用是該仿真平臺的基本要求,為此,設計機器人將病人由平躺姿態(tài)轉變?yōu)榘胱鹱藨B(tài)的仿真實驗。假設該過程中病人腰部保持不動,僅改變上半身姿態(tài),可知機械臂末端的軌跡為圓弧,且所在平面平行于機器人基坐標系的Y-Z 平面,故進行笛卡爾空間的圓弧軌跡規(guī)劃,采用插補的方式來逼近目標軌跡。本文采用定時插補方式,速度曲線為梯形曲線。設軌跡圓心為O1(y0,z0),起點為P1(y1,z1),終點為P2(y2,z2),軌跡轉角位移為θ(逆時針旋轉為正),如圖10所示。
圖10 機械臂圓弧軌跡規(guī)劃
設勻速時角速度為ω,加減速過程的加速度均為α。則總插補點數(shù):
式中:Pn為插值參數(shù),與系統(tǒng)控制周期有關。
則任意插補點角位移為:
根據(jù)幾何關系,可得任意插補點的位置坐標:
為進行機械臂逆解計算,還需進行機械臂末端姿態(tài)的規(guī)劃。根據(jù)幾何關系,為使托臂始終貼合人體,機械臂末端橫滾角(roll)需變化,且橫滾角始終等于圓弧軌跡轉角,故可直接代入計算。
根據(jù)人體尺寸確定左前臂和左側臂圓弧軌跡的起點和圓心坐標以及角位移,并在相應的輸入框中輸入,如圖11 所示。圖中,X、Y、Z 為相應的坐標輸入,r、p、y 為橫滾角(roll)、俯仰角(pitch)和偏航角(yaw)的輸入。在設置好角速度、角加速度參數(shù)后點擊顯示軌跡按鈕,預覽軌跡,確認無誤后保存軌跡,并開始進行仿真,觀察機械臂的運動。仿真時的機器人運動過程如圖12所示,機器人左側臂的關節(jié)轉角(位移)、角速度(速度)、角加速度(加速度)以及力矩(力)曲線如圖13所示。
圖11 軌跡規(guī)劃參數(shù)設置
圖12 機械臂運動仿真過程
圖13 仿真過程左側臂關節(jié)參數(shù)
從圖12中可以看出,機械臂末端能夠沿著預設的軌跡運動,病人的姿態(tài)也能隨著機械臂的運動由平躺姿態(tài)變?yōu)樽鹱藨B(tài),說明該仿真平臺能在一定程度上模擬機器人與病人間的相互作用,且能輸出機器人運動過程中關節(jié)的轉角(位移)、角速度(速度)、角加速度(加速度)和力矩(力)曲線,也在一定程度上說明了機器人能夠改變病人的姿態(tài),驗證了機器人結構的可行性。
本文提出了一種四臂醫(yī)療轉運機器人,對機器人的結構進行設計,并對機器人機械臂進行了正逆運動學分析。為研究機器人控制算法,本文搭建了基于Webots軟件的機器人仿真平臺,首先在Webots軟件中建立機器人工作環(huán)境模型、機器人模型以及病人模型,然后編寫控制程序,設計機器人控制器,最后通過病人由平躺狀態(tài)變?yōu)樽馉顟B(tài)的仿真實驗驗證了仿真平臺的可行性以及機器人結構的可行性,為該機器人的后續(xù)研究奠定了基礎,也為其他機器人的仿真平臺的搭建提供一定的參考。