霍旭坤,馬曉錄*,劉 艷,吳立輝
(1.河南工業(yè)大學(xué) 機(jī)電工程學(xué)院,河南 鄭州 450001;2.湖南迎春思博瑞智能裝備有限公司,湖南 寧鄉(xiāng) 410006)
在大中型企業(yè)、倉庫、碼頭等場所,常需要將貨物從碼垛或卸貨點(diǎn)轉(zhuǎn)運(yùn),并裝載到大型運(yùn)輸車輛上。以往采用人工叉車時(shí),用工成本高且工人存在安全隱患。
有企業(yè)提出了無人化、智能化轉(zhuǎn)運(yùn)裝載需求。在非結(jié)構(gòu)化環(huán)境下,無人駕駛運(yùn)載車輛作業(yè)正在活躍地進(jìn)行[1],貨車停放位姿具有不確定性,在叉車運(yùn)載箱、包到達(dá)裝載區(qū)域后,需要對車身位置和航向進(jìn)行調(diào)整,以對準(zhǔn)登車橋,才能準(zhǔn)確駛上貨車車廂并完成裝載。叉車屬于低自由度的大噸位車輛,在調(diào)整航向時(shí)應(yīng)盡量避免原地打轉(zhuǎn)、頻繁啟停、倒車等復(fù)雜動(dòng)作。應(yīng)用運(yùn)動(dòng)規(guī)劃技術(shù)可使叉車僅用簡單動(dòng)作就準(zhǔn)確調(diào)整位置和航向的需求,因此,對智能轉(zhuǎn)運(yùn)叉車的運(yùn)動(dòng)規(guī)劃進(jìn)行研究很有意義。
解決智能轉(zhuǎn)運(yùn)叉車的自動(dòng)駕駛運(yùn)動(dòng)規(guī)劃問題有3個(gè)層次:(1)搜索最佳路徑;(2)搜索最佳機(jī)動(dòng)動(dòng)作;(3)搜索最佳軌跡。解決方式可歸納為兩種方案:(1)忽略時(shí)間,只考慮二維空間的路徑規(guī)劃;(2)考慮時(shí)間因素,在三維時(shí)空進(jìn)行的運(yùn)動(dòng)規(guī)劃。
屈盼讓等[2]提出了基于B樣條曲線解決無人車路徑規(guī)劃問題的方法,建立了完整的分步規(guī)劃模型。呂恩利等[3]采用四次五階準(zhǔn)均勻B樣條曲線,分前后段合并生成滿足叉車多約束條件下的避障路徑。周兵等[4]提出了一種基于非均勻B樣條曲線,且滿足多約束要求的路徑規(guī)劃方法。呂恩利等[5]提出了基于三次均勻B樣條曲線的托盤拾取路徑規(guī)劃方法。王國輝等[6]提出了一個(gè)用于自動(dòng)駕駛車輛運(yùn)動(dòng)規(guī)劃的時(shí)空網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)利用采集的時(shí)空信息產(chǎn)生轉(zhuǎn)向運(yùn)動(dòng)反應(yīng)。KHESRANI S等[7]提出了一種解耦的路徑-軌跡規(guī)劃方法,引入了模糊平坦度的概念,以保證在不同不確定性條件下規(guī)劃任務(wù)的準(zhǔn)確執(zhí)行。
路徑規(guī)劃需要路徑跟蹤算法控制行車動(dòng)作予以配合,不僅需要復(fù)雜的計(jì)算,還可能出現(xiàn)行車動(dòng)作的快速變換,如急轉(zhuǎn)、急加速等情況,而這些情況在實(shí)際行車中可能會(huì)受到車輛本體機(jī)械結(jié)構(gòu)的限制[8]。運(yùn)動(dòng)規(guī)劃是根據(jù)特定場景特點(diǎn)和車輛參數(shù)建立的,只需要簡單地控制動(dòng)作參數(shù)即可完成軌跡跟蹤,針對性強(qiáng)。常見的運(yùn)動(dòng)規(guī)劃方法有軌跡預(yù)測[9]、泛函梯度優(yōu)化[10]、多項(xiàng)式插值[11]等。
結(jié)合真實(shí)貨場裝載場景,為實(shí)現(xiàn)智能轉(zhuǎn)運(yùn)叉車的自主登車,提高叉車在箱、包轉(zhuǎn)運(yùn)裝載過程的靈活性和功能性,本文以具有非完整約束的智能轉(zhuǎn)運(yùn)叉車為研究對象,綜合考慮各種約束條件,建立智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)規(guī)劃模型,并根據(jù)車輛和裝車場景數(shù)據(jù)求解該模型運(yùn)動(dòng)控制參數(shù),生成車輛行駛軌跡,驗(yàn)證到達(dá)登車點(diǎn)時(shí)車輛航向的準(zhǔn)確性以及控制過程的可行性。
在半結(jié)構(gòu)化箱、包裝載環(huán)境下,貨車停放在指定的裝車區(qū)域內(nèi),叉車作業(yè)的整個(gè)流程如下:
智能轉(zhuǎn)運(yùn)叉車從倉庫拾取托盤,通過調(diào)度系統(tǒng)得知目標(biāo)貨車的停放區(qū)域,經(jīng)全局路徑規(guī)劃行駛到裝載區(qū)域目標(biāo)貨車登車橋后方一定的距離,啟動(dòng)登車橋位姿識(shí)別算法,通過傳感器進(jìn)行登車橋位姿識(shí)別以及叉車自身位姿識(shí)別,根據(jù)識(shí)別到的登車橋相對位姿啟動(dòng)運(yùn)動(dòng)規(guī)劃算法,得到智能轉(zhuǎn)運(yùn)叉車行車動(dòng)作控制參數(shù),進(jìn)而通過控制系統(tǒng)跟蹤行車,完成調(diào)整航向和位置的目標(biāo)。
登車前位姿調(diào)整作業(yè)流程如圖1所示。
圖1 智能轉(zhuǎn)運(yùn)叉車位姿調(diào)整作業(yè)流程
在叉車動(dòng)力學(xué)研究中,叉車穩(wěn)定性問題通常用橫擺角速度的變化規(guī)律來描述,而叉車軌跡保持問題通常用側(cè)滑角的變化規(guī)律來描述[12]。
針對叉車側(cè)偏角難以直接測量的問題,ZHANG Xu[13]提出了一種僅采用橫擺角速度反饋的叉車主動(dòng)轉(zhuǎn)向系統(tǒng)設(shè)計(jì)方案,提高了叉車的轉(zhuǎn)向穩(wěn)定性以及操縱穩(wěn)定性。研究叉車運(yùn)動(dòng)規(guī)劃問題常忽略動(dòng)力學(xué)和其他微分約束,主要關(guān)注車輛的轉(zhuǎn)向和位移[14]。
叉車屬于前輪驅(qū)動(dòng)、后輪轉(zhuǎn)向的非完整性約束車輛,因此此處以前軸中心點(diǎn)為車輛坐標(biāo)系原點(diǎn)建立右手坐標(biāo)系,并將識(shí)別到的登車橋尾板位姿作為目標(biāo)點(diǎn),根據(jù)在二維平面內(nèi)生成一條從起點(diǎn)到終點(diǎn)的可行路線軌跡,再運(yùn)用逆運(yùn)動(dòng)學(xué)方法得出決策動(dòng)作的參數(shù)。
不同位姿下的運(yùn)動(dòng)規(guī)劃算法生成的行車軌跡如圖2所示。
圖2 不同位姿下的運(yùn)動(dòng)規(guī)劃算法生成的行車軌跡
登車運(yùn)動(dòng)規(guī)劃的目的是使得智能轉(zhuǎn)運(yùn)叉車能實(shí)現(xiàn)自主登車。智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)規(guī)劃以勻速前進(jìn)和勻轉(zhuǎn)向角速度為基礎(chǔ),建立分階段運(yùn)動(dòng)的運(yùn)動(dòng)模型,通過控制每個(gè)階段持續(xù)的時(shí)長、速度、角速度,確保智能轉(zhuǎn)運(yùn)叉車到達(dá)目標(biāo)位置且終點(diǎn)航向角準(zhǔn)確[15],使該運(yùn)動(dòng)規(guī)劃模型生成一條可供智能轉(zhuǎn)運(yùn)叉車跟蹤的行駛路徑。
智能轉(zhuǎn)運(yùn)叉車的結(jié)構(gòu)方式是后輪轉(zhuǎn)向前輪驅(qū)動(dòng),阿克曼轉(zhuǎn)向機(jī)構(gòu)在實(shí)際轉(zhuǎn)向時(shí)后輪內(nèi)側(cè)輪胎轉(zhuǎn)角偏大。在建立智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)學(xué)模型時(shí),假設(shè)叉車車體為剛體,忽略不計(jì)車輪形變,在后軸中心設(shè)一個(gè)等效轉(zhuǎn)向輪,在前軸中心設(shè)一個(gè)等效驅(qū)動(dòng)輪;假設(shè)理想狀態(tài)下所有車輪作純滾動(dòng)而無滑移,且轉(zhuǎn)向時(shí)無側(cè)滑。
以前軸為原點(diǎn)建立的運(yùn)動(dòng)學(xué)模型如圖3所示。
在全局坐標(biāo)系XOY下,(x,y)為前軸軸心坐標(biāo),P為轉(zhuǎn)向中心。在前軸軸心處,根據(jù)運(yùn)動(dòng)學(xué)約束可得:
(1)
(2)
圖3 智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)學(xué)模型1—等效驅(qū)動(dòng)輪;2—等效轉(zhuǎn)向輪
(3)
式中:L—叉車的軸距,m;φ—等效后輪轉(zhuǎn)向偏角,rad;w—轉(zhuǎn)向速度,rad/s;v—前軸中心速度,m/s。
智能叉車運(yùn)動(dòng)學(xué)模型為:
(4)
諾力FE4P20E型四支點(diǎn)前驅(qū)平衡重電動(dòng)叉車基本參數(shù)如表1所示。
表1 叉車基本參數(shù)
智能叉車轉(zhuǎn)向曲率為:
(5)
在登車前,調(diào)整位姿運(yùn)動(dòng)路徑的起點(diǎn)及智能轉(zhuǎn)運(yùn)叉車的后輪轉(zhuǎn)向角為零,航向角方向定義為X軸正方向,沿X軸方向左側(cè)且垂直于X軸定義為Y軸正方向,起點(diǎn)定義為坐標(biāo)系原點(diǎn);登車橋尾板中點(diǎn)為調(diào)整位姿運(yùn)動(dòng)的終點(diǎn),智能轉(zhuǎn)運(yùn)叉車在此處航向角應(yīng)垂直于登車橋尾板,且后輪轉(zhuǎn)向角為零。
此處叉車相對登車起點(diǎn)的相對位姿(Δx,Δy,Δθ),如圖4所示。
圖4 登車運(yùn)動(dòng)起終點(diǎn)約束
圖4中,Δx向右偏移為正;Δx向上偏移為正;Δθ以x軸逆時(shí)針偏移為正。
登車橋按類型分有移動(dòng)式和固定式兩種,按需求定制。
本文以某一普通移動(dòng)式登車橋?yàn)槔?該登車橋規(guī)格尺寸參數(shù)如表2所示。
表2 登車橋尺寸參數(shù)表
為避免發(fā)生翻車、碰撞登車橋等情況,通過登車橋的長度、寬度、翻板間隙、智能叉車前后輪距以及輪胎寬度的計(jì)算,可得叉車運(yùn)動(dòng)到終點(diǎn)位姿誤差范圍D≤230 mm,θ≤1.14°。
在滿足安全性和穩(wěn)定性的要求,智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)規(guī)劃中,在行走模塊,叉車的運(yùn)動(dòng)輸出動(dòng)作主要由輸入速度和轉(zhuǎn)向角動(dòng)作控制。雖然行走軌跡可以在二維平面上,但同時(shí)也要考慮時(shí)間維度,因此,行走軌跡就是一條在二維空間和一維時(shí)間中的三維曲線。
從動(dòng)力學(xué)上來說,叉車有很大的慣性;從運(yùn)動(dòng)學(xué)上來說,叉車又屬于非完整性系統(tǒng),因此,只考慮當(dāng)前位姿而沒有前瞻性動(dòng)作就無法準(zhǔn)確跟蹤規(guī)劃行車路線。運(yùn)動(dòng)規(guī)劃不僅包括路徑規(guī)劃,也考慮運(yùn)動(dòng)控制。這樣由運(yùn)動(dòng)規(guī)劃得出的一條在三維時(shí)空中的跟蹤路徑可以完整地描述智能叉車的運(yùn)動(dòng)全貌,并對該運(yùn)動(dòng)規(guī)劃模型進(jìn)行求解,從而實(shí)現(xiàn)對叉車的精確運(yùn)動(dòng)控制。
為保持車身行駛平穩(wěn),避免急轉(zhuǎn)向情況的出現(xiàn),建立智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)規(guī)劃模型,有必要考慮叉車運(yùn)動(dòng)的橫向和縱向加速度、加加速度,即前進(jìn)運(yùn)動(dòng)的速度、加速度和轉(zhuǎn)向角的速度、加速度。
運(yùn)動(dòng)模型主要有恒速模型(CV)、恒加速度模型(CA)、恒角速度模型(CTR)和恒角加速度模型(CTRA)[16]。轉(zhuǎn)向角速度對于高速行駛車輛影響較大,不同的運(yùn)動(dòng)模型軌跡會(huì)有較大的差別,因此,要在規(guī)劃之初,根據(jù)叉車運(yùn)動(dòng)特性對運(yùn)動(dòng)模型進(jìn)行合理決策。
為了簡化智能轉(zhuǎn)運(yùn)叉車計(jì)算的復(fù)雜度,假設(shè)整個(gè)運(yùn)動(dòng)規(guī)劃過程中車輛勻速行駛,給定行駛勻速度v=1.0 m·s-1,角速度w=π/6 s-1。由于加速轉(zhuǎn)向減速轉(zhuǎn)向時(shí)間較短可忽略不計(jì),在該模型下簡化為勻速轉(zhuǎn)向階段,且每個(gè)轉(zhuǎn)向狀態(tài)階段持續(xù)時(shí)長相同。
CC曲線(continuous curvature path)是曲率線性變化的曲線,它由最小轉(zhuǎn)彎半徑曲線轉(zhuǎn)換而來,對路徑進(jìn)行平滑化處理[17]。
本文研究了常見場景下的叉車運(yùn)動(dòng)規(guī)律,并在CC曲線的基礎(chǔ)上進(jìn)行了優(yōu)化,提出了S型曲線的行車軌跡。此處按轉(zhuǎn)向角狀態(tài)轉(zhuǎn)換將運(yùn)動(dòng)模型分為9個(gè)階段,分別為:
(1)起始線型階段。轉(zhuǎn)向角為零且不變,車輛沿初始航向角直行;
(2)轉(zhuǎn)向階段。轉(zhuǎn)向角勻速增加,車輛轉(zhuǎn)向曲率增加;
(3)轉(zhuǎn)向保持階段。轉(zhuǎn)向角保持不變,車輛沿固定半徑圓弧行走;
(4)轉(zhuǎn)向回正階段。轉(zhuǎn)向角勻速減小,車輛轉(zhuǎn)向曲率逐漸減小;
(5)斜向直行階段。轉(zhuǎn)向角為零且不變,車輛沿當(dāng)前航向角直行;
(6)反轉(zhuǎn)向階段。轉(zhuǎn)向角反向勻速增加,車輛轉(zhuǎn)向曲率增加;
(7)反轉(zhuǎn)向保持階段。轉(zhuǎn)向角保持不變,車輛沿固定半徑圓弧行走;
(8)反轉(zhuǎn)向回正階段。轉(zhuǎn)向角勻速減小,車輛轉(zhuǎn)向曲率逐漸減小;
(9)結(jié)尾直行階段。轉(zhuǎn)向角為零且不變,車輛沿當(dāng)前航向角直行。
在運(yùn)動(dòng)模型的9個(gè)階段中,每個(gè)階段轉(zhuǎn)向角狀態(tài)持續(xù)時(shí)長用{T1,T2,T3,…,T9}表示,整個(gè)過程有10個(gè)時(shí)間節(jié)點(diǎn),分別用{t0,t1,t2,…,t9}表示。其中:t0—開始時(shí)間;t9—結(jié)束時(shí)間。
定義第2階段轉(zhuǎn)向時(shí)左轉(zhuǎn)為正,右轉(zhuǎn)為負(fù),轉(zhuǎn)速為w,則第4階段轉(zhuǎn)速為-w,第6階段轉(zhuǎn)速為-w,第8階段轉(zhuǎn)速為w,且在這4個(gè)階段轉(zhuǎn)向過程持續(xù)的時(shí)間相同,則轉(zhuǎn)向角表達(dá)式如下:
(6)
其中,第5階段轉(zhuǎn)向角φ5=w(t2-t1)-w(t4-t3)=wT2-wT4=0,第9階段轉(zhuǎn)向角φ9=-w(t6-t5)+w(t8-t7)=-wT6+wT8=0。
智能轉(zhuǎn)運(yùn)叉車的航向角為:
(7)
式中:L—叉車軸距。
X軸方向移動(dòng)的距離為:
(8)
Y軸方向移動(dòng)的距離為:
(9)
運(yùn)動(dòng)模型中轉(zhuǎn)向角變換對應(yīng)的θ、Sx、Sy變化曲線和行車軌跡如圖5所示。
圖5 轉(zhuǎn)向角變換對應(yīng)的θ、Sx、Sy變化曲線和行車軌跡
可見,在指定后輪轉(zhuǎn)速和車速以后,通過控制每個(gè)階段的時(shí)長即可控制叉車的最終位姿。
運(yùn)動(dòng)模型規(guī)劃要達(dá)到的目標(biāo)是智能轉(zhuǎn)運(yùn)叉車從起點(diǎn)運(yùn)動(dòng)到終點(diǎn)時(shí),滿足以下3式:
(10)
(11)
(12)
在建立運(yùn)動(dòng)模型時(shí),根據(jù)已知車速v,軸距L,轉(zhuǎn)速w,設(shè)定第2、4、6、8階段轉(zhuǎn)向過程持續(xù)時(shí)間T2、T4、T6、T8相等,即T2=T4=T6=T8=Tφ,可知影響Δθ變化的有T3、T7,影響Δy變化的有T3、T5、T7、T9,影響Δx變化的有T1、T3、T5、T7、T9。
由此,先求解第3、7階段持續(xù)時(shí)間T3、T7,其次求解第5、9階段持續(xù)時(shí)間T5、T9,最后求解第1階段持續(xù)時(shí)間T1。
3.3.1 T3、T7求解
根據(jù)式(10)可知,在其他7個(gè)階段航向角變化之和為零。求解T3、T7時(shí),已知φ3=wT2,φ7=-wT6;又T2=T4=Tφ,可得:
(13)
Δy、Δθ值分別為正、負(fù)時(shí),T3與T7大小關(guān)系如圖6所示。
(a)Δy為正,Δθ為正時(shí),轉(zhuǎn)向角、航向角變化曲線及行車軌道
圖6中:規(guī)定Δy向y軸正方向偏移為正,反之為負(fù);Δy為正時(shí),車輛先左轉(zhuǎn)后右轉(zhuǎn),反之先右轉(zhuǎn)后右轉(zhuǎn);
規(guī)定向x軸接近為正,遠(yuǎn)離x軸Δθ為負(fù),可知Δθ為正時(shí)t3
3.3.2T5、T9求解
求解運(yùn)動(dòng)規(guī)劃模型中的T5、T9時(shí),模型中的第2-4、6-8階段的時(shí)長參數(shù)已由前文確定,當(dāng)T5變化時(shí),并不影響隨后的第6-8階段Δy6-8的變化值,舉例如圖7所示。
圖7 其他參數(shù)不變,T5=1.0/1.5時(shí)Δy6-8的變化量對比
已知總的Y軸偏移量為Δy,且Δy1=0,根據(jù)前文得Δy2-4,6-8=Δy2+Δy3+Δy4+Δy6+Δy7+Δy8,則:
Δy5,9=Δy-Δy2-4,6-8
(14)
在運(yùn)動(dòng)模型中,第(5,9)階段的行駛軌跡分別是兩條不同斜率的直線,可知Δy5、Δy9是和時(shí)長t相關(guān)的一階線性方程。
(15)
(16)
Δy5,9=ky5T5+ky9T9
(17)
式(17)中,T5和T9有多組解,調(diào)用MATLAB中的fmincon函數(shù),以T5+T9取最小值為優(yōu)化目標(biāo),建立方程組如下:
(18)
當(dāng)Δθ為正時(shí),ky5與ky9的值一個(gè)為正、一個(gè)為負(fù),T5和T9總有解,且成正比。當(dāng)Δθ為負(fù)時(shí),ky5與ky9的值均為正值或負(fù)值,T5和T9的值成反比,若此時(shí)Δy5,9=|Δy|-|Δy2-4,6-8|<0就得出T5、T9為負(fù)值,與事實(shí)不符,要通過減小|Δy2-4,6-8|的值,即減小w或者Tφ的值來使T5和T9為正值。
等比例減小w或Tφ生成的軌跡如圖8所示。
圖8 等比例減小w或Tφ生成的軌跡
由圖8可知:減小w對減小|Δy2-4,6-8|值的效果不如等比例減小Tφ,且會(huì)使X軸偏移量增大,對下一步求解T1不利,故選擇通過減小Tφ減小|Δy2-4,6-8|值更合適。此處引入迭代法計(jì)算,直到T5、T9均為正解,但要注意tan(wTφ)值的變化會(huì)引起|T5-T9|值的變化,迭代時(shí)要重新計(jì)算T3、T7的值使Δθ保持不變。
3.3.3 T1求解
(19)
若Δx1=Δx-Δx2-9<0,則依舊用迭代法通過減小T5、T9或者Tφ的值,達(dá)到使Δx1>0的目的。
整個(gè)模型的求解過程用到了分步法、迭代法和fmincon函數(shù)。已知軸距L=1.5 m,目標(biāo)Δx、Δy、Δθ,求解步驟總結(jié)如下:
(2)根據(jù)Δy的正負(fù),確定w的正負(fù);
(3)根據(jù)Δθ的值,確定t7、t3的值;
(4)計(jì)算Δy2-4,6-8的值,并與Δy比較。若Δy-Δy2-4,6-8<0則減小w值,并重新計(jì)算Δy2-4,6-8的值;
(5)根據(jù)Δy-Δy2-4,6-8的值,確定t5、t9的值;
(6)計(jì)算Δx2-9的值,并與Δx比較。若Δx-Δx2-9<0則適當(dāng)增大w的值,但要注意不能超出最大轉(zhuǎn)向速度,然后再返回第3步;
(7)根據(jù)Δx-Δx2-9的值確定t1;
(8)代入所有控制參數(shù),運(yùn)行運(yùn)動(dòng)規(guī)劃模型,生成行車軌跡,驗(yàn)證終點(diǎn)位置與航向是否在誤差范圍內(nèi)。
不同目標(biāo)位姿(Δx,Δy,Δθ)下運(yùn)動(dòng)規(guī)劃模型運(yùn)算后生成的運(yùn)動(dòng)軌跡簇,如圖9所示。
(a)Δx=5.5,Δy=2.0 (b) Δx =8.0,Δy =2.0 (c) Δx =8.0,Δy =1.0
(d) Δx =8.0,Δy =0.5 (e) Δx =8.0,Δy =0.3 (f) Δx =8.0,Δy =-0.3
圖9中,虛線是轉(zhuǎn)向角變化曲線,點(diǎn)劃線是航向角變化曲線,實(shí)線是叉車前軸中心行車軌跡。
對比圖9(a~b)可知:在相同Δy值情況下,隨著Δx值減小,w會(huì)有所增大,這是因?yàn)榈谝浑A段時(shí)長只改變X方向距離;后面階段完成求解而發(fā)生了后8個(gè)階段在X軸偏移量超出了總的目標(biāo)Δx值,為避免T1出現(xiàn)負(fù)值,通過調(diào)整w來重新求解運(yùn)動(dòng)模型。由此可見,在極限情況下(Δx最小,Δy最大),模型在范圍內(nèi)有解,即運(yùn)動(dòng)模型設(shè)計(jì)滿足應(yīng)用需求。
對比圖9(b~d)中,Δx值不變,Δy值變化,可知隨著Δy的減小,最大轉(zhuǎn)向角wtφ在減小,即轉(zhuǎn)向階段在Y軸的偏移量超出了總的目標(biāo)Δy值。為避免T3、T7出現(xiàn)負(fù)值,通過調(diào)整tφ來減小轉(zhuǎn)向階段的Δy值,使得模型有解,然后重新求解運(yùn)動(dòng)模型。
對比圖9(b,i,c,h)可知,在Δx值相等、Δy值相反時(shí),運(yùn)動(dòng)模型規(guī)劃出的軌跡對稱,即對w轉(zhuǎn)向的控制很成功。
觀察圖9(d~g)生成的運(yùn)動(dòng)軌跡簇可知:Δθ<0時(shí),隨著Δy的減小,在Δθ為較大值時(shí)運(yùn)動(dòng)規(guī)劃模型得不到行車軌跡;而Δy越小,模型無解時(shí)的最大Δθ值也越小。這時(shí),需要調(diào)整策略,經(jīng)過試驗(yàn)把tφ初始值調(diào)整為0.5 s時(shí)能得出最優(yōu)運(yùn)動(dòng)規(guī)劃結(jié)果。
調(diào)整轉(zhuǎn)向策略的最佳范圍如圖10所示。
圖10 調(diào)整轉(zhuǎn)向策略的范圍
圖10中,對0<Δy<0.5且Δθ<0,調(diào)整為先右轉(zhuǎn);對0>Δy>-0.5且Δθ<0,調(diào)整為先左轉(zhuǎn)。
調(diào)整轉(zhuǎn)向策略后的運(yùn)動(dòng)模型求解出的運(yùn)動(dòng)軌跡如圖11所示。
(a) Δy =0.4
對比圖11(a~c)可知:在Δθ<0,Δy分別為0.4、0.3、0.2、0.1時(shí),除Δy=0.1,Δθ=0.2外都能求出模型的解。在Δy值極小,且Δθ極小情況下,全程按直線行駛也滿足誤差范圍,添加修正函數(shù)為:
(20)
(21)
融合未調(diào)整轉(zhuǎn)向策略區(qū)域的模型算法,可以得到在目標(biāo)位移和目標(biāo)航向范圍內(nèi)的所有運(yùn)動(dòng)規(guī)劃算法。至此,修正后的運(yùn)動(dòng)規(guī)劃算法模型在全部情況下都有解,完成了適用于本文的智能轉(zhuǎn)運(yùn)叉車運(yùn)動(dòng)規(guī)劃算法。
在計(jì)算效率上,在Intel(R)Xeon(R)CPU 3.50 GHz的計(jì)算機(jī)中,MATLAB2020b版本環(huán)境使用tic、toc函數(shù)生成多個(gè)控制點(diǎn)的B樣條曲線軌跡,運(yùn)行25次后得出平均運(yùn)行時(shí)間為0.029 5 s。而本文的運(yùn)動(dòng)規(guī)劃模型在100種不同目標(biāo)中求解運(yùn)行總時(shí)間為1.228 159 s,平均單一目標(biāo)求解運(yùn)行時(shí)間為0.012 3 s,效率比前者高59%。
在參考了普通叉車裝車作業(yè)時(shí)運(yùn)行軌跡特征,并結(jié)合叉車運(yùn)動(dòng)學(xué)分析的基礎(chǔ)上,筆者建立了基于轉(zhuǎn)向角變換的9種運(yùn)行狀態(tài)組成的叉車運(yùn)動(dòng)規(guī)劃模型,并在MATLAB環(huán)境下對其進(jìn)行了仿真驗(yàn)證。
研究結(jié)果表明:
(1)該運(yùn)動(dòng)規(guī)劃算法模型能在前向位移5 m~8 m、側(cè)向位移±2 m、航向角±10°范圍內(nèi)簡單、準(zhǔn)確、快速地生成滿足多約束狀態(tài)下的運(yùn)動(dòng)規(guī)劃控制參數(shù),平均運(yùn)行時(shí)間約為0.012 3 s;
(2)模型改進(jìn)了以往在固定場景下的路徑規(guī)劃算法,省去了需通過優(yōu)化路徑曲線光滑度來實(shí)現(xiàn)最優(yōu)路徑規(guī)劃的過程,減少了叉車運(yùn)行控制計(jì)算量,運(yùn)行時(shí)間減少了約59%。
在今后的研究中,筆者將針對智能轉(zhuǎn)運(yùn)叉車目標(biāo)位姿識(shí)別差錯(cuò),或供叉車行駛空間過于狹窄的情況,進(jìn)行叉車進(jìn)退式運(yùn)動(dòng)規(guī)劃研究,使叉車可以在更復(fù)雜的環(huán)境或場景內(nèi)做二次運(yùn)動(dòng)規(guī)劃。