張家琪 劉 祺
(天津理工大學(xué),天津,300384)
隨著自動(dòng)化物流系統(tǒng)、智能工廠的發(fā)展,自動(dòng)引導(dǎo)車(Automated Guided Vehicle,AGV)作為運(yùn)輸系統(tǒng)的關(guān)鍵工具之一,得到了越來越多的應(yīng)用[1]。
目前主流的AGV導(dǎo)航方式有:磁導(dǎo)航、光學(xué)導(dǎo)航、慣性導(dǎo)航、激光導(dǎo)航。其中,磁導(dǎo)航是一種傳統(tǒng)導(dǎo)航方式,也是目前應(yīng)用最為廣泛的導(dǎo)航方式。磁導(dǎo)航的原理是:預(yù)先在AGV的行駛路徑上敷設(shè)磁條,AGV通過磁條感應(yīng)信號(hào)實(shí)現(xiàn)導(dǎo)引。磁導(dǎo)航AGV在復(fù)雜線路下運(yùn)行時(shí),其路徑選擇以及交通控制是影響轉(zhuǎn)運(yùn)效率的關(guān)鍵因素,也是運(yùn)行控制中需要解決的主要問題。
首先,需要根據(jù)AGV的運(yùn)行線路、工藝流程等因素設(shè)置基本信息,主要包括點(diǎn)(Point)表、路徑(Path)表、任務(wù)(Task) 、區(qū)域(Area)表。
1.1.1 點(diǎn)的分類
點(diǎn)用來描述AGV運(yùn)行路線上的關(guān)鍵位置,根據(jù)用途,點(diǎn)可分為兩類:磁釘點(diǎn)和非磁釘點(diǎn)。
為了獲得AGV的位置,在AGV的運(yùn)行路線上,根據(jù)需要,設(shè)置編號(hào)不同的磁釘,這種設(shè)置磁釘?shù)狞c(diǎn)稱為磁釘點(diǎn),主要用于準(zhǔn)確停位、路由控制等;當(dāng)AGV運(yùn)行到磁釘點(diǎn)上方時(shí),讀取磁釘編號(hào),就可知AGV當(dāng)前位置。磁釘點(diǎn)主要布置在以下位置。
1)停止點(diǎn):AGV需要停止進(jìn)行工作的點(diǎn);
2)多任務(wù)分配點(diǎn):以該點(diǎn)為起點(diǎn)的任務(wù)有多個(gè),需要在該點(diǎn)根據(jù)條件分配任務(wù);
3)AGV反向運(yùn)行點(diǎn): AGV在該點(diǎn)由正向運(yùn)行轉(zhuǎn)為反向運(yùn)行,或由反向運(yùn)行轉(zhuǎn)為正向運(yùn)行;
4)路徑三叉點(diǎn);
5)路徑終點(diǎn)或需要交通管制的點(diǎn);
6)減速點(diǎn):為了在停止點(diǎn)停位準(zhǔn)確,根據(jù)需要在停止點(diǎn)的前方適當(dāng)位置設(shè)置減速點(diǎn);
不設(shè)置磁釘?shù)狞c(diǎn)稱為非磁釘點(diǎn),主要用于地圖顯示、路徑添加,設(shè)置在線路拐彎處、增加路徑處等。
1.1.2 點(diǎn)的主要屬性
1) 編號(hào):點(diǎn)的序號(hào),用于區(qū)別各個(gè)點(diǎn);
2) X坐標(biāo):點(diǎn)位置的X坐標(biāo),用于地圖顯示和AGV位置計(jì)算和顯示;
3) Y坐標(biāo):點(diǎn)位置的Y坐標(biāo),用于地圖顯示和AGV位置計(jì)算和顯示;
4) 磁釘點(diǎn):是否為磁釘點(diǎn)(1-磁釘點(diǎn),0-非磁釘點(diǎn));
5) 叉點(diǎn):是否為三叉點(diǎn)或十字叉點(diǎn)(1-叉點(diǎn),0-非叉點(diǎn));
6) 加鎖區(qū)域:是否屬于某個(gè)加鎖區(qū)域(0-不屬于加鎖區(qū)域,非0-加鎖區(qū)域編號(hào));叉點(diǎn)與加鎖區(qū)域不能同時(shí)設(shè)置;
7) 叉點(diǎn)加鎖標(biāo)志:叉點(diǎn)時(shí),是否已被AGV加鎖(1-已被加鎖,0-未被加鎖);
8) 叉點(diǎn)加鎖AGV編號(hào):叉點(diǎn)被AGV加鎖時(shí),對應(yīng)的AGV編號(hào)(0-未被加鎖,非0-AGV編號(hào));
9) 工位點(diǎn)加鎖標(biāo)志:若該點(diǎn)是任務(wù)終點(diǎn),是否已被AGV加鎖(1-已被加鎖,0-未被加鎖)。
需要注意的是,上述屬性第1)-6)項(xiàng)的屬性值需要預(yù)先定義;屬性第7)-9)項(xiàng)在運(yùn)行控制過程中動(dòng)態(tài)寫入。
路徑指以相鄰的兩個(gè)點(diǎn)為端點(diǎn)的有向線段,路徑有起點(diǎn)、終點(diǎn);起點(diǎn)、終點(diǎn)相反的路徑互為反向路徑,也稱雙向路徑。路徑的主要屬性如下。
1) 編號(hào):路徑的序號(hào),用于區(qū)別各個(gè)路徑;
2) 起點(diǎn):路徑起點(diǎn)編號(hào);
3) 終點(diǎn):路徑終點(diǎn)編號(hào);
4) 長度:路徑長度;
5) 車頭方向:AGV在路徑上運(yùn)行時(shí)的車頭方向;AGV車頭方向與路徑方向一致時(shí),為正向前進(jìn);否則,為反向后退(1-正向,0-反向);
6) 轉(zhuǎn)向(左中右):當(dāng)路徑終點(diǎn)為三叉點(diǎn)時(shí),轉(zhuǎn)向?yàn)樽蠡蛴遥划?dāng)路徑終點(diǎn)為非三叉點(diǎn)時(shí),轉(zhuǎn)向?yàn)橹校?/p>
7) 速度:AGV在路徑上的運(yùn)行速度;
8) 反向路徑:當(dāng)前路徑的反向路徑編號(hào)(0-無反向路徑,非0-反向路徑編號(hào));
9) 象限:當(dāng)路徑為圓弧時(shí),圓弧相對于圓心所在的象限,這用于計(jì)算AGV在圓弧上的位置和方向(0-直線,1~4-象限);
10)雙向加鎖標(biāo)志:雙向路徑時(shí),是否已被AGV加鎖(1-已被加鎖,0-未被加鎖);
11)雙向加鎖AGV編號(hào):雙向路徑被AGV加鎖時(shí),對應(yīng)的AGV編號(hào)(0-未被加鎖,非0-AGV編號(hào))。
需要注意的是,上述屬性第1)-9)項(xiàng)的屬性值需要預(yù)先定義;屬性第10)-11)項(xiàng)在運(yùn)行控制過程中動(dòng)態(tài)寫入。
任務(wù)由多個(gè)依次相連的路徑組成,也可理解為由多個(gè)依次相連的點(diǎn)組成,表示AGV運(yùn)行路線。任務(wù)的主要屬性如下。
1) 起點(diǎn):要求為磁釘點(diǎn);
2) 中間點(diǎn)1~中間點(diǎn)10:(0-不使用或無,非0-中間點(diǎn)編號(hào));
3) 終點(diǎn):要求為磁釘點(diǎn);
4) 終點(diǎn)停止:AGV到達(dá)任務(wù)終點(diǎn)時(shí)是否停止進(jìn)行等待;
5) 終點(diǎn)加鎖:任務(wù)終點(diǎn)是否需要加鎖(1-需要加鎖,0-不需要加鎖);
6) 解鎖點(diǎn):到達(dá)該點(diǎn)時(shí),是否解鎖任務(wù)起點(diǎn);用于特殊工位點(diǎn)交通控制。
需要注意的是,上述屬性的屬性值需要預(yù)先定義。
把兩個(gè)或多個(gè)相鄰的點(diǎn)定義為一個(gè)區(qū)域;用于交通管制。
區(qū)域的主要屬性如下:
1) 編號(hào):區(qū)域的序號(hào),用于區(qū)別各個(gè)區(qū)域;
2) 區(qū)域加鎖標(biāo)志:區(qū)域是否已被AGV加鎖(1-已被加鎖,0-未被加鎖);
3) 區(qū)域加鎖AGV編號(hào):當(dāng)區(qū)域被AGV加鎖時(shí),對應(yīng)的AGV編號(hào)(0-未被加鎖,非0-AGV編號(hào))。
本示例取某新能源汽車電池檢測線路的一部分并簡化為例進(jìn)行說明,如圖1所示。
圖1 新能源汽車電池檢測線簡化圖
示例圖工作流程說明如下:
1) 點(diǎn)03:待測電池裝載點(diǎn);
2) 點(diǎn)09:任務(wù)分配點(diǎn),根據(jù)點(diǎn)21、24的使用情況進(jìn)行分配或等待;
3) 點(diǎn)21、24:電池檢測點(diǎn),檢測完成后,根據(jù)檢測結(jié)果(合格、不合格)和點(diǎn)26的使用情況進(jìn)行分配或等待,檢測合格時(shí)到點(diǎn)02結(jié)束下線,檢測不合格且點(diǎn)26空閑時(shí)到點(diǎn)26進(jìn)行維修,檢測不合格且點(diǎn)26忙時(shí)等待點(diǎn)26空閑;
4) 點(diǎn)26:電池維修點(diǎn),維修完成后,需要再次進(jìn)行檢測,根據(jù)點(diǎn)21、24的使用情況進(jìn)行分配或等待;
5) 點(diǎn)02:檢測完成電池卸載點(diǎn)。
根據(jù)工作流程,任務(wù)路徑配置如下:
一個(gè)任務(wù)執(zhí)行完成,自動(dòng)分配新任務(wù),實(shí)現(xiàn)AGV的路徑選擇和自動(dòng)連續(xù)運(yùn)行。
根據(jù)任務(wù)屬性“終點(diǎn)停止”確定任務(wù)分配時(shí)機(jī);當(dāng)終點(diǎn)停止時(shí),AGV到達(dá)任務(wù)終點(diǎn)停止等待放行信號(hào),再分配新任務(wù);當(dāng)終點(diǎn)不停止時(shí),AGV進(jìn)入任務(wù)的最后路徑開始分配新任務(wù)。
根據(jù)任務(wù)終點(diǎn)確定任務(wù)分配方式;當(dāng)以該點(diǎn)為任務(wù)起點(diǎn)的任務(wù)有多個(gè)時(shí),稱為多任務(wù),需要根據(jù)條件進(jìn)行邏輯判斷再進(jìn)行分配。這部分邏輯判斷可以根據(jù)項(xiàng)目編寫特定程序?qū)崿F(xiàn),也可以采用“通用程序+參數(shù)配置”方式實(shí)現(xiàn)。當(dāng)以該點(diǎn)為任務(wù)起點(diǎn)的任務(wù)只有一個(gè),稱為單任務(wù),編寫通用程序?qū)崿F(xiàn)。在實(shí)際項(xiàng)目應(yīng)用中,大部分任務(wù)為單任務(wù)。
控制AGV的基本命令有前進(jìn)、后退、停止、速度、轉(zhuǎn)向(左中右)。這些基本命令的參數(shù)設(shè)置在路徑中,不同的路徑可以設(shè)置不同的命令參數(shù)。
AGV實(shí)時(shí)反饋?zhàn)钚陆?jīng)過的磁釘編號(hào)以及經(jīng)過該磁釘后運(yùn)行的距離,任務(wù)運(yùn)行邏輯根據(jù)這兩個(gè)實(shí)時(shí)反饋值,確定AGV所在的路徑,然后根據(jù)路徑的命令參數(shù)及外界條件,控制AGV運(yùn)行。
叉點(diǎn)是一種特殊的點(diǎn),分為三叉點(diǎn)和十字叉點(diǎn);圖1中點(diǎn)18為三叉點(diǎn);點(diǎn)10為十字叉點(diǎn)。
當(dāng)兩個(gè)AGV同時(shí)進(jìn)入叉點(diǎn)時(shí),會(huì)觸發(fā)AGV雷達(dá)報(bào)警,造成障礙停止;為了避免這一情況發(fā)生,采用叉點(diǎn)獨(dú)占方式進(jìn)行交通控制。
叉點(diǎn)控制邏輯如下:
1)若終點(diǎn)不是叉點(diǎn),則繼續(xù)行駛;
2)若終點(diǎn)是叉點(diǎn)且未被加鎖,則加鎖終點(diǎn);
3)若終點(diǎn)是叉點(diǎn)且被本AGV加鎖,則繼續(xù)行駛;
4)若終點(diǎn)是叉點(diǎn)且被其他AGV加鎖,則停止等待;
5)當(dāng)AGV到達(dá)路徑終點(diǎn)時(shí),若路徑起點(diǎn)是叉點(diǎn)且被當(dāng)前AGV鎖定,則解鎖起點(diǎn);
例如圖1中任務(wù)T4,當(dāng)?shù)竭_(dá)點(diǎn)22時(shí),加鎖點(diǎn)18;當(dāng)?shù)竭_(dá)點(diǎn)19時(shí),解鎖點(diǎn)18。
由于AGV尺寸和路徑長度的原因,當(dāng)某一區(qū)域線路復(fù)雜,利用叉點(diǎn)交通控制不能滿足要求時(shí),可以把多個(gè)點(diǎn)定義為一個(gè)區(qū)域,使用區(qū)域加鎖的方法進(jìn)行控制。
區(qū)域控制邏輯如下。
1) 若路徑終點(diǎn)不屬于區(qū)域,則繼續(xù)行駛;
2) 若路徑終點(diǎn)屬于某個(gè)區(qū)域且該區(qū)域未被加鎖,則加鎖該區(qū)域;
3) 若路徑終點(diǎn)屬于某個(gè)區(qū)域且該區(qū)域被本AGV加鎖,則繼續(xù)行駛;
4) 若路徑終點(diǎn)屬于某個(gè)區(qū)域且該區(qū)域被其他AGV加鎖,則停止等待;
5) 當(dāng)AGV到達(dá)路徑終點(diǎn)且路徑終點(diǎn)不屬于該區(qū)域時(shí),若路徑起點(diǎn)屬于某個(gè)區(qū)域且該區(qū)域被本AGV加鎖,則解鎖該區(qū)域;
在圖1中,點(diǎn)10、11、20組成區(qū)域定義為A1,點(diǎn)10、11、20的屬性“加鎖區(qū)域”都設(shè)為A1。例如任務(wù)T2,當(dāng)?shù)竭_(dá)點(diǎn)09時(shí),加鎖區(qū)域A1;當(dāng)?shù)竭_(dá)點(diǎn)21時(shí),解鎖區(qū)域A1。
某些工位點(diǎn)不允許兩個(gè)或多個(gè)AGV同時(shí)進(jìn)入;為了避免同時(shí)進(jìn)入而造成的錯(cuò)誤,采用工位點(diǎn)獨(dú)占方式進(jìn)行交通控制。在圖1中,點(diǎn)21、24、26屬于這類特殊工位點(diǎn)。
1) 特殊工位點(diǎn)加鎖。
AGV在任務(wù)分配時(shí),查找符合條件且任務(wù)終點(diǎn)未加鎖的任務(wù),若找到,則加鎖任務(wù)終點(diǎn),并為AGV分配該任務(wù)。
例如圖1中假設(shè)AGV在點(diǎn)21電池檢測不合格需要維修,則任務(wù)T5滿足條件,若任務(wù)T5的終點(diǎn)26未被加鎖,則加鎖點(diǎn)26,并為AGV分配任務(wù)T5;否則,等待。
2) 特殊工位點(diǎn)解鎖。
當(dāng)AGV當(dāng)前任務(wù)執(zhí)行完成,到達(dá)任務(wù)終點(diǎn)時(shí),不能立即解鎖任務(wù)終點(diǎn),要確保AGV執(zhí)行新任務(wù)離開并和另一進(jìn)入的AGV不發(fā)生碰撞時(shí),才能解鎖。為了解決這一問題,采用在任務(wù)屬性中設(shè)置解鎖點(diǎn)的方法:當(dāng)AGV離開到達(dá)解鎖點(diǎn)時(shí),解鎖任務(wù)起點(diǎn)。
圖1中以點(diǎn)26為起點(diǎn)的任務(wù)分別為T8、T9 、T10、T11,在這些任務(wù)中分別設(shè)置解鎖點(diǎn)為點(diǎn)15。這樣,當(dāng)AGV執(zhí)行這些任務(wù),到達(dá)點(diǎn)15時(shí)解鎖任務(wù)起點(diǎn)26。
當(dāng)兩輛AGV沿互為反向的路徑相對行駛時(shí),如果不加控制,將產(chǎn)生交通堵塞。例如圖1中,對于任務(wù)T3和T10,點(diǎn)11和點(diǎn)13之間的路徑為需要雙向交通控制的路徑。
解決雙向交通控制的問題有兩種方法:一是在設(shè)計(jì)路線和任務(wù)時(shí)盡量減少或避免這種情況發(fā)生,這樣可以減少AGV互相等待的時(shí)間;二是通過交通控制的方法解決,其控制邏輯如下。
1) 若下一路徑不是雙向路徑,則繼續(xù)行駛;
2) 若下一路徑是雙向路徑且未被加鎖,同時(shí)所有未完成路徑中的雙向路徑的反向路徑均未加鎖時(shí),對所有未完成路徑中的雙向路徑加鎖;否則,停止等待:
3) 若下一路徑是雙向路徑且被本AGV加鎖,則繼續(xù)行駛;
4) 若下一路徑是雙向路徑且被其他AGV加鎖,則停止等待;
5) 當(dāng)AGV到達(dá)路徑終點(diǎn)時(shí),若當(dāng)前路徑是雙向路徑,則解鎖當(dāng)前路徑。
為了計(jì)算簡單,路徑只有直線路徑和標(biāo)準(zhǔn)四分之一圓弧路徑兩種;AGV實(shí)時(shí)反饋?zhàn)钚麓裴斁幪?hào)以及經(jīng)過該磁釘后運(yùn)行的距離,根據(jù)這兩個(gè)實(shí)時(shí)反饋值,確定AGV所在的路徑、坐標(biāo)值及角度。
為了計(jì)算AGV在圓弧路徑上的坐標(biāo)和方向,需要在路徑屬性中定義圓弧相對于圓心所在的象限。
為了在顯示器或觸摸屏上顯示地圖及AGV,需要把上面計(jì)算的實(shí)際坐標(biāo)轉(zhuǎn)換為顯示器坐標(biāo)。其轉(zhuǎn)換公式如下:
M_X= (Act_X- LD_X)* M_W/ Act_W;
M_Y= M_H- (Act_Y- LD_Y)* M_H/ Act_H。
公式中各參數(shù)含義如下:
Act_X、ACt_Y:實(shí)際坐標(biāo);
Act_W、Act_H:運(yùn)行路線的實(shí)際大?。?/p>
LD_X、LD_Y:運(yùn)行路線左下角坐標(biāo);
M _X、M_Y:顯示屏顯示坐標(biāo);
M_W、M_H:顯示屏分辨率。
AGV在復(fù)雜線路下按照工藝要求合理順暢地運(yùn)行是AGV運(yùn)行控制系統(tǒng)的重要內(nèi)容。同時(shí),AGV運(yùn)行控制系統(tǒng)也要實(shí)時(shí)反饋AGV的運(yùn)行狀態(tài),特別是當(dāng)AGV停止運(yùn)行時(shí),要反饋停止運(yùn)行的原因。
機(jī)器人技術(shù)與應(yīng)用2021年2期