朱雪宏,丁承君*,吳禮榮,馮玉伯,賈麗臻
(1.河北工業(yè)大學(xué) 機(jī)械工程學(xué)院 天津 300401;2.中國(guó)民航大學(xué) 航空工程學(xué)院 天津 300300)
隨著自動(dòng)控制技術(shù)、人工智能技術(shù)、信息融合技術(shù)的發(fā)展,機(jī)器人的應(yīng)用水平正在快速提高,自動(dòng)導(dǎo)引車(Automated Guided Vehicle,AGV)作為一種搬運(yùn)用輪式移動(dòng)機(jī)器人(Wheeled1Mobile Robot,WMR),在航空、航天、船舶、汽車、港口、倉(cāng)儲(chǔ)等行業(yè)具有日益廣泛的應(yīng)用[1,3],各個(gè)行業(yè)都存在重型負(fù)載的智能搬運(yùn)需求,尤其是對(duì)大質(zhì)量、大尺寸部件進(jìn)行移載時(shí),重載AGV的作用更顯得尤其重要。重載AGV發(fā)展至今,各行各業(yè)的搬運(yùn)物體及現(xiàn)場(chǎng)工況各不相同,重載AGV設(shè)計(jì)加工制作周期較長(zhǎng),在這種背景下,需要一種設(shè)計(jì)方法,使重載AGV實(shí)現(xiàn)標(biāo)準(zhǔn)化和模塊化設(shè)計(jì),同時(shí)重載AGV軟件系統(tǒng)對(duì)不同的硬件模塊實(shí)現(xiàn)自重構(gòu)[4],使得重載AGV具備完成不同工況不同任務(wù)的能力。
AGV發(fā)展至今,驅(qū)動(dòng)系統(tǒng)常采用萬(wàn)向輪、麥克納姆輪、舵輪、正交輪、球輪、差速單元等,目前重載AGV主要使用麥克納姆輪、舵輪、差速驅(qū)動(dòng)單元結(jié)合腳輪活萬(wàn)向輪承重的方式,考慮應(yīng)對(duì)各種現(xiàn)場(chǎng)工況,這里采用高度尺寸最小的差速驅(qū)動(dòng)單元作為研究對(duì)象。重載AGV可重構(gòu)特性主要體現(xiàn)在硬件自重構(gòu)[5]和軟件自重構(gòu)[6],其中硬件自重構(gòu)體現(xiàn)在機(jī)械本體自重構(gòu)和控制系統(tǒng)自重構(gòu),機(jī)械本體主要是零部件的選擇,不可自重構(gòu)的是外觀設(shè)計(jì),控制系統(tǒng)自重構(gòu)主要是各類傳感器、控制器、驅(qū)動(dòng)單元等控制元件插入控制系統(tǒng)后自識(shí)別,軟件自重構(gòu)可根據(jù)接入控制系統(tǒng)的硬件進(jìn)行自重構(gòu),軟件自重構(gòu)要求各個(gè)模塊之間不能具有耦合性,否則重構(gòu)算法將變得特別復(fù)雜。自重構(gòu)不僅要求各個(gè)模塊和控制器進(jìn)行實(shí)時(shí)交互,還同時(shí)要求各個(gè)模塊之間能夠進(jìn)行實(shí)時(shí)交互,為了滿足這一需求,學(xué)術(shù)界開(kāi)發(fā)了許多框架,其中機(jī)器人操作系統(tǒng)(ROS)就是在這種背景下出現(xiàn)的。
機(jī)器人操作系統(tǒng)ROS(Robot Operating System)是一種開(kāi)源機(jī)器人操作系統(tǒng),此系統(tǒng)是Willow Garage 公司與多家科研單位合作開(kāi)發(fā)的,是為了應(yīng)對(duì)在開(kāi)發(fā)大型服務(wù)機(jī)器人時(shí)遇到的特殊挑戰(zhàn)。目前為止,它形成的機(jī)器人操作與控制系統(tǒng)軟件框架已得到廣泛應(yīng)用[7,9]。該框架使用了面向服務(wù)架構(gòu)軟件技術(shù)(SOA),通過(guò)網(wǎng)絡(luò)節(jié)點(diǎn)協(xié)議將節(jié)點(diǎn)間的數(shù)據(jù)通信解耦[10]。機(jī)器人操作系統(tǒng)(ROS)代表了當(dāng)今機(jī)器人應(yīng)用軟件原型和開(kāi)發(fā)的實(shí)際標(biāo)準(zhǔn)。它為機(jī)器人硬件資源提供了多個(gè)軟件抽象層,使軟件開(kāi)發(fā)人員能夠更專注于軟件開(kāi)發(fā),而不必?fù)?dān)心底層硬件編程,提供了類似操作系統(tǒng)所能提供的功能,包含管理底層的驅(qū)動(dòng)程序、執(zhí)行公用功能、程序間的信息傳遞、硬件描述、程序發(fā)行包的管理等。
重載AGV由硬件系統(tǒng)和軟件系統(tǒng)組成,文中所謂的自重構(gòu)既要考慮硬件系統(tǒng),也要考慮軟件系統(tǒng),硬件系統(tǒng)由機(jī)械本體、驅(qū)動(dòng)系統(tǒng)、供電系統(tǒng)、液壓系統(tǒng)、傳感器系統(tǒng)組成,如圖1所示。
圖1 重載AGV組成圖
機(jī)械本體設(shè)計(jì)根據(jù)現(xiàn)場(chǎng)工況和工作空間決定,有潛伏式、牽引式等。機(jī)械本體設(shè)計(jì)主要考慮其承載能力和防傾覆能力。
驅(qū)動(dòng)系統(tǒng)考慮工作空間的兼容性,文中設(shè)計(jì)的重載AGV選擇高度尺寸較低的差速驅(qū)動(dòng)單元,通常每組驅(qū)動(dòng)單元能承載8t左右,考慮重載AGV載重和安全系數(shù),選擇對(duì)應(yīng)輪組的數(shù)目即可。
供電系統(tǒng)采用獨(dú)立供電方式,即驅(qū)動(dòng)系統(tǒng)供電、控制系統(tǒng)供電和液壓系統(tǒng)供電三部分。驅(qū)動(dòng)系統(tǒng)供電根據(jù)選擇的差速單元輪組數(shù)目而定。液壓系統(tǒng)供電取決于液壓頂升重量和液壓缸量程等參數(shù)有關(guān)。控制系統(tǒng)供電取決于依據(jù)控制系統(tǒng)的功耗而定。
液壓系統(tǒng)根據(jù)頂升物的重量進(jìn)行設(shè)計(jì)和選型,一般液壓缸設(shè)計(jì)在差速輪組的正上方,讓輪組直接承受重物質(zhì)量,降低車體在此過(guò)程中的形變,同時(shí)采用同步馬達(dá)和平衡閥保證平穩(wěn)舉升。
傳感器系統(tǒng)主要分為安全模塊、運(yùn)動(dòng)控制反饋模塊、報(bào)警模塊、定位模塊和通訊模塊。各類傳感器采用統(tǒng)一的節(jié)點(diǎn)控制器進(jìn)行數(shù)據(jù)采集和發(fā)布。
重載AGV控制系統(tǒng)如圖2所示,主要有工控機(jī)、驅(qū)動(dòng)節(jié)點(diǎn)控制器、液壓節(jié)點(diǎn)控制、供電節(jié)點(diǎn)控制器、其余傳感器節(jié)點(diǎn)控制器、串口服務(wù)器、觸摸屏和手持遙控組成。系統(tǒng)除、串口服務(wù)器、觸摸屏和手持遙控以外,其余模塊均可以實(shí)現(xiàn)系統(tǒng)自重構(gòu),系統(tǒng)工控機(jī)和驅(qū)動(dòng)節(jié)點(diǎn)控制器選擇ARK-2230L,其余節(jié)點(diǎn)控制器選擇AIMC-2000J,工控機(jī)與驅(qū)動(dòng)節(jié)點(diǎn)控制器、液壓節(jié)點(diǎn)控制器、供電節(jié)點(diǎn)控制器、其余傳感器節(jié)點(diǎn)控制器采用路由的方式連接,方便實(shí)現(xiàn)擴(kuò)展,驅(qū)動(dòng)節(jié)點(diǎn)控制器采用控制總線方式與驅(qū)動(dòng)器連接,可快速擴(kuò)充接入多組差速驅(qū)動(dòng)單元,其作用控制差速驅(qū)動(dòng)單元及時(shí)響應(yīng)控制策略,實(shí)現(xiàn)精確控制,通過(guò)且通過(guò)采集磁傳感器與慣性傳感器數(shù)據(jù)進(jìn)行實(shí)時(shí)控制算法糾偏;液壓節(jié)點(diǎn)傳感器采用Modbus方式與液壓PLC系統(tǒng)進(jìn)行連接,主要控制液壓系統(tǒng)的啟動(dòng)、停止、復(fù)位和點(diǎn)動(dòng);供電節(jié)點(diǎn)控制器采用485方式與電池組連接,可實(shí)時(shí)采集電池組信息;其余節(jié)點(diǎn)傳感器與傳感器連接方式可根據(jù)傳感器方式具體而定。通過(guò)以上方式進(jìn)行的硬件連接,可實(shí)現(xiàn)硬件間的解耦,可快速進(jìn)行控制系統(tǒng)自重構(gòu)。
圖2 重載AGV控制系統(tǒng)
ROS是Willow Garage公司在2010年發(fā)布的用于解決代碼復(fù)用和模塊化需求的機(jī)器人操作系統(tǒng),采用分布式處理,提供硬件抽象、設(shè)備控制、消息管理等標(biāo)準(zhǔn)的操作系統(tǒng)服務(wù)。
節(jié)點(diǎn)是ROS執(zhí)行相關(guān)功能的進(jìn)程,每個(gè)節(jié)點(diǎn)可通過(guò)主題或者服務(wù)于其他節(jié)點(diǎn)進(jìn)行通訊。主題是指特定消息的名稱,用于描述消息內(nèi)容,主題實(shí)質(zhì)上是ROS網(wǎng)絡(luò)對(duì)消息進(jìn)行管理的數(shù)據(jù)總線。當(dāng)某個(gè)節(jié)點(diǎn)需要從另一個(gè)節(jié)點(diǎn)發(fā)出請(qǐng)求或者應(yīng)答時(shí),可以通過(guò)服務(wù)實(shí)現(xiàn),服務(wù)允許和某個(gè)節(jié)點(diǎn)直接進(jìn)行通信。消息是節(jié)點(diǎn)之間點(diǎn)對(duì)點(diǎn)通訊的數(shù)據(jù)內(nèi)容,傳感器的數(shù)據(jù)、算法結(jié)果均可定義為消息。
可重構(gòu)重載AGV軟件系統(tǒng)架構(gòu)如圖3所示,軟件系統(tǒng)分為三個(gè)層次,ROS是運(yùn)行在Linux系統(tǒng)上的操作系統(tǒng),基本節(jié)點(diǎn)層分為4部分,分別是感知節(jié)點(diǎn)類、執(zhí)行節(jié)點(diǎn)類、狀態(tài)節(jié)點(diǎn)類和主控節(jié)點(diǎn)類。感知節(jié)點(diǎn)類是重載AGV通過(guò)各類傳感器感知環(huán)境的,主要有安全類Node(如激光雷達(dá)Node,防撞條Node,急停按鈕Node,聲光報(bào)警Node),運(yùn)動(dòng)控制反饋類Node(磁傳感器Node,慣性傳感器Node,電機(jī)編碼器Node,旋轉(zhuǎn)編碼器Node),報(bào)警類Node(聲光報(bào)警Node等),電池組狀態(tài)Node和液壓狀態(tài)Node;執(zhí)行節(jié)點(diǎn)類主要控制重載AGV運(yùn)動(dòng)和液壓頂升的,包括差速驅(qū)動(dòng)單元Node和液壓電機(jī)Node;狀態(tài)節(jié)點(diǎn)類是重載AGV運(yùn)行過(guò)程中重載AGV的建模信息,中間變量和控制邏輯變量等,包括重載AGV長(zhǎng)和寬,差速驅(qū)動(dòng)單元組數(shù),輪的直徑,橫縱向傳感器距離、主軸x和Y方向的偏離,電機(jī)速度、加速度和電機(jī)是否運(yùn)動(dòng)到位等;主控節(jié)點(diǎn)類一方面通過(guò)感知傳感器和重載AGV狀態(tài)來(lái)決策下一步執(zhí)行動(dòng)作的,將執(zhí)行策略下發(fā)給執(zhí)行節(jié)點(diǎn),另一方面通過(guò)自重構(gòu)節(jié)點(diǎn)進(jìn)行重載AGV控制系統(tǒng)的自主識(shí)別和控制系統(tǒng)重構(gòu)。
圖3 可重構(gòu)重載AGV軟件系統(tǒng)架構(gòu)
重載AGV自重構(gòu)模型如圖4所示。AGV自重構(gòu)模型分為四部分,分別是AGV控制類Node,狀態(tài)類Node,執(zhí)行類Node,感知類Node??刂祁怤ode是整個(gè)控制系統(tǒng)的核心,感知類Node負(fù)責(zé)所有傳感器和執(zhí)行器的狀態(tài)的反饋,執(zhí)行類Node負(fù)責(zé)執(zhí)行控制類Node的決策,控制電機(jī)進(jìn)行運(yùn)動(dòng),狀態(tài)類Node負(fù)責(zé)重載AGV實(shí)時(shí)的狀態(tài)和內(nèi)部邏輯狀態(tài)。
圖4 重載AGV自重構(gòu)模型
重載AGV完成組裝之后,通過(guò)組態(tài)屏連接工控機(jī)對(duì)AGV控制類Node進(jìn)行IO、協(xié)議等的設(shè)置,保證所有硬件(已安裝硬件或新增硬件)能按照指定方式進(jìn)行數(shù)據(jù)采集和傳輸,AGV控制類Node對(duì)接入系統(tǒng)的硬件進(jìn)行主題檢測(cè),檢測(cè)完成行成在役主題列表,控制類Node與硬件Node建立連接,確定傳輸協(xié)議,將硬件節(jié)點(diǎn)歸類到狀態(tài)類Node,感知類Node和執(zhí)行類Node中,最終完成數(shù)據(jù)的傳輸。
重載AGV本體設(shè)計(jì)可根據(jù)具體工況進(jìn)行設(shè)計(jì),文中設(shè)計(jì)均為潛伏式AGV,外觀上只更改了重載AGV本體的長(zhǎng)度和寬度,高度要考慮防傾覆設(shè)計(jì),控制系統(tǒng)根據(jù)重量選擇差速驅(qū)動(dòng)單元組數(shù),根據(jù)提升重量和高度選擇液壓系統(tǒng),根據(jù)工藝要求及工作節(jié)拍,選擇電池組容量。文中控制系統(tǒng)包括一臺(tái)工控機(jī)(主控器),6組差速驅(qū)動(dòng)單元,6個(gè)絕對(duì)值旋轉(zhuǎn)編碼器,4個(gè)磁傳感器(磁條導(dǎo)航),1個(gè)RFID高速讀卡器,重載AGV布局圖如圖5所示。
圖5 重載AGV布局圖
重載AGV控制系統(tǒng)是基于ROS機(jī)器人操作系統(tǒng)來(lái)開(kāi)發(fā)的,在項(xiàng)目開(kāi)發(fā)前期,利用ROS系統(tǒng)優(yōu)秀的建模功能實(shí)現(xiàn)重載AGV的模型構(gòu)建,并且在rviz上實(shí)現(xiàn)AGV的控制功能仿真,包括手動(dòng)、半自動(dòng)和全自動(dòng)功能,通過(guò)仿真功能來(lái)優(yōu)化AGV控制程序,實(shí)現(xiàn)來(lái)AGV通過(guò)前后兩個(gè)磁傳感器沿著磁條進(jìn)行糾偏穩(wěn)定運(yùn)行目的,大大減輕AGV現(xiàn)場(chǎng)調(diào)試的工作量。重載AGV建模圖如圖6所示,重載AGV的設(shè)計(jì)、加工、制造、調(diào)試周期縮短至20天。
圖6 重載AGV的rviz建模圖
其中,重載AGV三臺(tái)樣機(jī)參數(shù)指標(biāo)如表1所示,其產(chǎn)品圖如圖7所示。
表1 重載AGV樣機(jī)參數(shù)表
圖7 可重構(gòu)多差速驅(qū)動(dòng)重載AGV產(chǎn)品系列圖
文中針對(duì)重載AGV設(shè)計(jì)、加工、制作、調(diào)試周期長(zhǎng)及標(biāo)準(zhǔn)化不統(tǒng)一問(wèn)題,提出一種基于ROS的可重構(gòu)多差速驅(qū)動(dòng)重載AGV系統(tǒng),重載AGV車體可根據(jù)現(xiàn)場(chǎng)工況進(jìn)行外形設(shè)計(jì)和微調(diào),控制系統(tǒng)根據(jù)承載重量、現(xiàn)場(chǎng)工藝節(jié)拍、續(xù)航能力進(jìn)行模塊化設(shè)計(jì),降低控制系統(tǒng)模塊間的耦合性,提出了軟件自重構(gòu)模型,對(duì)于不同模塊組合的重載AGV進(jìn)行軟件自重構(gòu),最終制作了三臺(tái)樣機(jī)進(jìn)行方法驗(yàn)證,樣機(jī)實(shí)驗(yàn)表明,基于ROS的可重構(gòu)多差速驅(qū)動(dòng)重載AGV系統(tǒng)將重載AGV設(shè)計(jì)、加工、制作、調(diào)試的周期縮短至20天,同時(shí)產(chǎn)品穩(wěn)定性、標(biāo)準(zhǔn)化、模塊化能力均得到大幅提升,也為后續(xù)多個(gè)重載AGV協(xié)同搬運(yùn)系統(tǒng)提供理論基礎(chǔ)。