本發明屬于數據處理技術領域,具體涉及一種AGV智能車的軌跡信息處理控制方法。
背景技術:
AGV(Automated Guided Vehicle)智能車,也稱為自動導向車,在工業生產車間中有較多應用,常用于車間內貨物的自動搬運。AGV智能車裝備有電磁或光學等自動導引裝置,能夠沿規定的導引路徑行駛,具有安全保護以及各種移載功能的運輸車,工業應用中不需駕駛員的搬運車,以可充電之蓄電池為其動力來源。一般可透過電腦來控制其行進路線以及行為,或利用電磁軌道(electromagnetic path-following system)來設立其行進路線,電磁軌道黏貼於地板上,無人搬運車則依循電磁軌道所帶來的訊息進行移動與動作。
AGV循跡也是無人駕駛的前提條件,一般AGV智能車是基于車間定制的,其軌道信息處理方法往往基于預先布置好的特殊傳感器,成本高,效率低。
技術實現要素:
鑒于上述,本發明提供了一種AGV智能車的軌跡信息處理控制方法,只需用到視覺傳感器,在普通路面環境就能取得很好的效果。
一種AGV智能車的軌跡信息處理控制方法,包括如下步驟:
(1)獲取AGV智能車在圖像中的軌跡信息,對所述軌跡信息進行分段擬合,得到多組依次連接的線段;
(2)對于任一組線段,提取該線段的斜率slope以及線段上每個點相對圖像Y軸的偏移量,進而通過坐標變換計算每組線段的決策量;
(3)根據每組線段的決策量通過衰減求和計算得到整個軌跡的決策量,進而根據該決策量結合車輛方向盤角度與轉彎半徑關系,決策出AGV智能車的轉向角度和速度并發送給VCU(Vehicle Control Unit,車輛控制單元),由VCU對AGV智能車的行進執行控制。
所述步驟(1)中對軌跡信息進行分段擬合的過程為:首先根據車輛長度、行進速度以及軌跡長度確定分段步長,依據分段步長對整個軌跡信息進行分段;然后利用最小二乘法將每段軌跡信息擬合成線段。
所述步驟(2)中通過坐標變換計算每組線段決策量的具體過程如下:
2.1對線段的斜率slope進行坐標變換:
若slope≥0,則坐標變換后線段的斜率slope'=1-2actan(slope)/π;
若slope<0,則坐標變換后線段的斜率slope'=-1-2actan(slope)/π;
2.2通過以下公式計算坐標變換后線段的偏移量X':
X'=2Xaverage/width-1
其中:actan()為反正切函數,Xaverage為線段上所有點相對圖像Y軸的平均偏移量,width為圖像的寬度;
2.3根據斜率slope'以及偏移量X'通過加權求和得到線段的決策量。
所述步驟(3)中通過衰減求和計算整個軌跡決策量的具體過程如下:
首先,根據圖像中各線段與AGV智能車的遠近關系,對所有線段的決策量進行排序,由近及遠依次為A1,A2,A3,…,An;
然后,根據以下公式計算出整個軌跡的決策量A:
A=A1+αA2+α2A3+…+αn-1An
其中,n為線段的數量,α為設定的衰減系數且0<α<1。
所述步驟(3)中當決策出AGV智能車的轉向角度和速度后通過約定好的通信協議以指令的形式發送到VCU,由VCU采用增量式PID控制算法對AGV智能車的行進執行控制。
本發明方法將軌跡信息進行分段擬合,每一段擬合成直線處理,對于每一段直線,提取出偏移量和斜率,進行坐標變換使得其變化映射到一個線性空間,然后進行一系列權重運算得到決策量,最終將決策量結合車輛轉彎半徑計算得到合適的轉彎角度,并以指令的形式發送給VCU執行。本發明方法只需用到視覺傳感器,在普通路面環境就能取得很好的效果。
附圖說明
圖1為本發明軌跡信息處理控制方法的流程示意圖。
圖2為轉彎半徑與轉向輪轉向角度和軸距的關系示意圖。
具體實施方式
為了更為具體地描述本發明,下面結合附圖及具體實施方式對本發明的技術方案進行詳細說明。
如圖1所示,本發明軌跡信息處理控制方法包括如下步驟:
(1)將軌跡信息進行分段擬合;
分段的步長step的確定主要參考車輛長度L、行進速度v以及軌跡在圖像中的長度h。
分段完畢后進行直線擬合,具體擬合算法為最小二乘算法。最小二乘法擬合直線的原則是以“殘差平方和最小”確定直線位置。
對于樣本回歸模型:
其中:ei是樣本(Xi,Yi)的誤差。
則平方損失函數:
根據數學定理,Q的極值必然取在對參數的偏導數為零處:
可以求解得到:
(2)將擬合得到的直線斜率和Y軸偏移量進行坐標變換,計算得到決策量。
首先,將擬合完畢的分段直線提取斜率以及線上各點相對Y軸的偏移量,并進行坐標換算,使得斜率值的變化與角度成線性關系;具體的換算公式為:
如果斜率值slope大于等于0,則根據公式:
slope'=1-2actan(slope)/π進行變換;
如果斜率值slope小于0,則根據公式:
slope'=-1-2actan(slope)/π進行變換。
將計算得到的x坐標平均偏移量進行變換,具體為:
X'=2Xaverage/width-1
其中:Xaverage為線段上所有點相對圖像Y軸的平均偏移量,width為圖像的寬度。
然后,將變換之后的斜率slope'和Y軸偏移量X'通過加權求和計算出決策量。
(3)將上述決策量經過權重算法進行決策權重的分配,得到軌跡的最終決策量A。
對于分段的直線,每多分一段,權重衰減一個百分比α%;對于分段的直線,距離車子越遠的直線,決策權重越小;具體算法如下:
A=A1+αA2+α2A3+…+αn-1An
其中,A1,A2,A3,…,An對應于由近及遠各直線段的決策量。
(4)將最終決策量A,參考車輛情況,以協議指令形式發送VCU處理。
根據最終決策量A并結合車輛方向盤角度與轉彎半徑關系,決策出車輛轉向角度和速度,根據約定好的通信協議以指令的形式發送到VCU執行,VCU執行的具體控制算法為增量式PID。
以下實施例的具體應用場景為浙江大學ESE工程中心自主研發的roboy智能車,通過攝像頭采集軌跡信息,圖像處理模塊采用NVIDIA的JETSON TK1,決策過程也在該處理器上完成,圖像處理和決策處理模塊之間采用進程間通信傳遞數據。決策產生的結果按照約定好的通信協議編碼成指令通過局域網發送給車載VCU,車載VCU執行指令,控制EPS系統轉向,具體的控制算法采用經典的增量式PID控制,在調參良好的情況下響應迅速且沒有明顯的抖動現象。此處采用的VCU控制器為Freescale的S12系列。
在分段擬合階段,分段的標準主要參考軌跡的長度h、車長L以及車速v,圖像信息壓縮成960*480,將軌跡從距離車子近的一端進行分段,以高40為一段,不足40像素部分舍去(除去只能分一段的情況,即圖像只采集到高不足40像素的軌跡,則不分段直接進行下一步處理)。
分段完畢后將每一段直線進行最小二乘擬合,擬合處理成直線,擬合算法代碼實現如下:
對于每一個分段直線,擬合完畢之后都提取起斜率和Y軸平均偏移量,然后通過坐標變換使得斜率的變換在[-1,1]區間內隨著與X軸夾角的角度線性變化。具體轉換的計算方法如之前所述,然后計算該分段的決策量det=a*slope'+b*X',a和b為斜率和Y軸偏移量的決策權重。
將計算得到的det再次進行權重的計算,以使得距離車子越遠的直線決策權重越小,具體的做法是:
det*=y/height
其中:y為該分段直線的平均y軸坐標值,height為圖像高度,此處取480。
對于分段直線,按照距離車子由近到遠的順序排序,對于第一段直線,det值不進行衰減,往后每一段直線,越往后排一位,det值就多進行一次d%的衰減。
最終將決策量匯總的時候,考慮到本實施例情況下車輛車速較低,主要考慮第一段直線(即距離最近一段)的det0值,后面直線段的deti值如果與第一段符號相反,則匯入最終的決策量,否則不計入。
如圖2所示,在忽略車輪側偏角的情況下,車輛轉向半徑(即途中OD線段)長度R=L/cosβ,其中β為轉向輪轉向角度,在估算出轉彎半徑的情況下可以估算出車輪角度,可以估算得到EPS轉向角度,這是一個經驗值,需要現場調試。
決策出期望EPS轉向的角度,以指令形式發送給VCU執行底層控制,具體控制算法為增量式PID控制。
指令的格式如表1所示,指令長度共8字節。
表1
上述對實施例的描述是為便于本技術領域的普通技術人員能理解和應用本發明。熟悉本領域技術的人員顯然可以容易地對上述實施例做出各種修改,并把在此說明的一般原理應用到其他實施例中而不必經過創造性的勞動。因此,本發明不限于上述實施例,本領域技術人員根據本發明的揭示,對于本發明做出的改進和修改都應該在本發明的保護范圍之內。