部分 系統介紹
1.1 系統簡介
AGV是Automated Guided Vehicle英文版本的縮寫,中譯全稱為自動導引運輸車。AGV是指裝備有電磁或光學等自動導引裝置,能夠沿著規定的導引路徑行駛,具有安全保護以及各種移載功能的運輸車。
壹恒智能機器人自主研發的AGV車載系統V2.0是用于壹恒智能自主研發AGV的應用軟件,功能主要包括地圖系統、底盤系統、執行器系統、導航系統、信號采集系統、能源系統、安全系統、調度接口、任務測試、手自動模式等,各子系統有機結合實現AGV自動完成各種運載任務,實現真正意義上的無人智能化“搬運-倉儲”現代工廠。
1.2 系統功能
合肥壹恒智能AGV車載系統V2.0軟件集監視與控制功能于一身,實時地監測AGV的運行狀態與車體信息,精確地控制AGV進行各種的移載任務。AGV車載系統V2.0通過配置網絡參數,AGV車體參數,運動控制參數和地圖,與相應的AGV車型匹配,軟件默認AGV自動控制工作模式。主界面實時顯示AGV工作狀態下車體信息、位置狀態和任務狀態,地圖導航中實時監測AGV在倉儲地圖中的可視化位置,還可以切換到手動控制工作狀,應對測試和故障等特殊情況。
1.3 運行環境
合肥壹恒智能AGV車載系統V2.0采用C、C++混合編碼,開發平臺QT,支持Windows和Linux操作系統,安裝時至少需要有500MB的磁盤空間。系統硬件可以配合壹恒智能開發的ARM/AGV專用控制器,AMR/AGV專用智能控制器采用ARM+STM32雙物理CPU架構,ARM CPU負責提供算力,STM32作為協處理器,負責信號采集與控制。ARM CPU采用RK3399六核64位( A72x2+A53x4 )處理器,主頻1.8GHz,標配2GB DDR3內存和16GB閃存;信號采集與控制協處理器CPU采用STM32F429,具有 256KB SRAM、1024KB FLASH。雙物理CPU之間采用SPI通信,預留一路串口通信線路。控制器內置無人車載控制系統,支持二維碼導航、激光反射板導航、激光SLAM導航、激光與視覺復合導航等多種導航方式;運動底盤控制支持差速驅動、單舵機驅動、雙舵機驅動全向等各類底盤結構,能夠滿足各種AMR/AGV車型對智能控制器的要求。
AMR/AGV專用控制器集成常用的機器人系統所需的接口資源和通訊方式,包括HDMI、USB2.0、千兆以太網、CAN、RS485、TTL串口、AD轉換及I/O。其中,HDMI、USB2.0和千兆網口均采用標準接口,CAN通信、RS485通信、TTL串口通信、AD轉換和I/O通過兩個集成連接器引出標準線束。
合肥壹恒智能機器人自主研發的控制器接受客戶單一硬件訂單,客戶選擇自行開發應用系統,控制器支持Android及Linux操作系統。公司也可根據客戶的需求開發相應的專用板級支持程序包,專用控制器可以幫客戶快速開發定制各類AGV、AMR及協作機器人與集成控制等應用系統提供硬件及系統級支持。
第二部分 系統配置
2.1 界面簡介
2.1.1 AGV車載系統登錄界面
AGV車載系統程序運行時首入系統登錄界面,如下圖所示,在用戶名和密碼對應的編輯框中填入正確的登錄信息后即可進入AGV控制系統主界面。
2.1.2 AGV車載系統主界面
AGV車載系統主界面如下圖所示,主要分為設備狀態顯示(載貨平臺、車體位姿、站點相對位置、控制模式狀態)、任務狀態、任務統計、系統診斷、系統監控以及故障監測。此外,AGV控制系統主界面左上方有標簽頁點擊按鈕,分別有系統管理、地圖管理、控制模式、系統信息和系統關閉。
其中設備狀態中,包括了載貨平臺位姿、車體運動、站點相對位置、控制模式狀態等。載貨平臺為AMR/AGV的載貨平臺實時位姿,用于判斷AMR是否到達工位站點。車體運動代表了車身在運動過程中的實時速度、橫擺角速度、方向、車輪轉角等。站點相對位置代表了AMR在跟蹤目標站點時的誤差實時大小,包括地面工位縱向偏差、橫向偏差 、角度偏差值。控制模式代表當前AMR處于手動還是自動模式。
在任務狀態欄,任務名通常會顯示移動任務、取貨任務、放貨任務、充電任務,任務狀態一般顯示空閑等待中、任務執行中和任務失敗,取貨任務執行中時取貨工位會顯示取貨地點工位信息,放貨任務執行時放貨工位會顯示放貨地點工位信息,充電任務執行時充電工位會顯示充電地點工位信息。任務統計攔顯示AMR/AGV當前已經執行完的任務、正在執行中的任務、待執行的任務等信息。
在故障監測欄和系統診斷欄,實時顯示了AMR/AGV各子系統在運行過程中的實時狀態信息,若某個子系統出現故障則用紅色字體顯示具體子系統產生故障的原因,同時包含相關的故障代碼以便查閱詳細原因。
在系統監控欄目,實時顯示了各子系統心跳相關的信息,若某個子系統出現心跳過快或者過慢則表明子系統出現異常需要排查。
地圖顯示欄目實時顯示了當前工廠的地圖,同時包括車間內設備的實時位置、各類設備的運行路徑等信息。
第三部分 系統管理
如下圖所示,在主界面中點擊系統配置按鈕會顯示如下圖所示的下拉框,包括網絡配置、執行系統、底盤系統、導航系統、安全系統、能源系統、系統配置以及用戶管理。所有的配置參數文件均放在安裝目錄下fileHMI文件夾中所對應的各子系統配置文件夾中。
3.1 網絡配置
點擊網絡配置選項后出現調度接口子系統的網絡配置下拉框,包括服務器網絡配置、本地網絡配置。如下圖所示的服務器網絡配置AGV需要連接的AGVS系統網絡參數(IP地址、端口號)進行配置。實際運行時會顯示已保存在配置文件中的值,在編輯框中輸入需要設置的IP地址和端口號,點擊確認按鈕即可在對應的DispatchSystem文件夾中的IpandPort.ini文件中對Server的ip地址和端口號port進行修改,當AGV需要連接上位機服務器時只需要讀取IpandPort.ini配置文件中的Server的ip地址和端口號port即可連接上服務器。
如下圖所示的本地網絡配置對AGV需要連接的AGVS系統中具體的AGV設備名進行配置,它與上位機調度系統通信的IP是綁定的。實際運行時會顯示已保存在配置文件中的值,在編輯框中輸入需要設置設備名稱,點擊確認按鈕即可在fileHMIDispatchSystemIpandPort文件夾中的IpandPort.ini文件中對AMR的dev_name進行修改,當AGV需要連接上位機服務器時,調度會通過IP和設備名精準地發送指令。
3.2 執行系統參數配置
執行器系統參數配置包括了執行機構公共運動參數配置、執行機構專用控制參數配置、執行機構系統信息以及執行器系統信號模擬。
執行器公共運動控制參數包含各類執行機構(如堆高貨叉、前移貨叉、三向貨叉、背負頂升托盤等)的公共運動控制參數。下圖中的參數界面主要包含以下內容:
(1)上升加速度:代表執行機構上升的速度變化,越大代表上升越快。
(2)下降加速度:代表執行機構下降的速度變化,越大代表下降越快。
(3)下降速度:代表執行機構的下降過程中的中間過程均勻運動速度。
(4)上升速度:代表執行機構的上升過程中的中間過程均勻運動速度。
(5)末端速度:代表執行機構在即將到達目標位置時的末端運行速度,防止執行機構在末端到達時發生嚴重沖擊影響運動平穩性。
(6)高度控制值:代表執行機構的運行高度,確保執行機構不超過機械位置保障安全。
(7)高度控制最小值:代表執行機構的運行高度,確保執行機構運動不低于機械限位。
(8)高度控制末端距離:代表執行機構在末端位置運動的持續位移,過大則末端運行時間長,過短則末端減速度較大產生沖擊。
(9)底盤行駛執行器高度值:代表底盤在運行時執行器的允許高度,過高整車質心偏高影響AMR整體允許平穩性,當低于此高度時底盤和執行機構同時運動以實現聯動。
(10)底盤行駛執行器高度最小值:代表底盤在運行時執行器的最小允許高度,保障底盤運行時執行器不影響安全導航儀的障礙掃描。
(11)取放貨高度偏移:代表取放貨時執行器相對貨物層高的高度偏移,保障抬貨和放貨到貨架時執行器不與貨架發生碰撞保障安全。
(13)任務準備偏離站點值:代表執行機構在到達站點前進行執行取放貨高度等位置移動時,開始進行此動作的最遠位置,實現了底盤和執行器的聯動。
(14)任務準備偏離站點最小值:代表執行機構在到達站點前進行執行取放貨高度等位置移動時,開始進行此動作的最近位置,當小于此值時若執行機構位置還未準備好則底盤移動須停止以等待執行機構運動至任務準備相應的位置,保障執行機構在準備的位置進行相應的任務。
(15)行走高度:代表底盤開始運動時執行器的穩定高度,既要保障不影響安全導航儀的障礙掃描也要保障質心不過高影響行駛穩定性。
(16)垂直容差:代表執行器到達目標位置時的誤差判斷標準,保障執行器準備到達目標高度位置。
執行器運動控制參數配置實際運行時會顯示已保存在配置文件中的值,根據AGV的具體情況在對應的配置項進行相應的配置,點擊保存配置即可完成參數配置,分別將其保存到fileHMIActuatorSystem文件夾中的ActuatorGeneralControlParameter.ini配置文件中。
執行機構專用控制參數配置包含各類不同的執行器參數配置,如對高叉車執行器、三向叉車執行器、托盤頂升機構執行器等具體的執行器運動控制參數配置。此處內容后續詳細展開。下圖中的執行器信息包含了執行器的類型以及序列號,用于向用戶說明當前的執行器類型信息。
3.3 底盤系統配置
底盤系統參數配置包含了底盤公共運動參數配置、底盤專用控制參數配置、底盤結構參數以及底盤信息。依據項目實際應用的車型以及項目現場的實際工作要求,需要對AGV軟件進行相應的運動控制參數配置,其配置頁面如圖3-7和3-8所示。
(1)底盤系統公共控制參數設置
(1)安全橫擺:防止車體旋轉過快影響行車安全性。
(2)末端橫擺:AMR在旋轉末端減速時的勻速橫擺,保障AMR在旋轉末端穩定停止轉動。
(3)安全橫擺加速度:AMR在旋轉過程中的旋轉加速度,較大時AMR能快速旋轉至目標橫擺從未快速到達目標旋轉位置。
(4)安全向心加速度:AMR在進行曲線運動時防止車速和橫擺均過大以使得車體發生側向滑移,保障安全行車。
(5)安全車體加速度:即AGV加速度的值,過大車體會發生沖擊,過小則加速太慢影響效率。
(6)安全控制車體前進速度:即AGV前進速度值。
(7)安全控制車體倒退速度:即AGV倒退速度值。
(8)安全控制車體末端速度:即AGV在目標站點校準位置的速度。
(9)安全控制車體轉彎速度:即AGV轉彎速度值。
(10)末端安全停止速度:即AGV到達停止站點時的末端運行速度。
(11)橙色區域行駛速度:安全雷達在橙色區域檢測到障礙物的底盤行駛速度,防止車體運動過快碰撞到障礙物。
(12)黃色區域行駛速度:安全雷達在黃色區域檢測到障礙物的底盤行駛速度,防止車體運動過快碰撞到障礙物,若AMR在紅色區域檢測到障礙物需立刻停止以免發生碰撞。
(13)減速度相對加速度系數:AMR停車時的減速度和起步加速時的加速度比例關系,實現加速迅速、減速平緩的目標。
(14)縱向控制末端距離:AMR在運行至目標站點過程中末端低速運動進行縱向位置調整的保持距離,確保AMR準備到達目標站點而不超出目標站點位置。
(15)旋轉末端橫擺角:AMR在旋轉至目標方向過程中末端低速旋轉進行方向位置調整的保持方向角度,確保AMR準備到達目標方向而不超出目標方向。
(16)末端縱向超程距離:代表AMR末端運行行駛進行位姿調整時的縱向超調距離,超過目標位置超程時未檢測到站點到達標志,AMR報故障。
(17)偏離路徑閾值:代表AMR行駛時偏離目標路徑的閾值,超過此閾值代表AMR脫離目標路徑報故障。
(18)起始位姿方向調整閾值:代表AMR原地起步時方向調整偏差的閾值,小于此閾值時AMR才開始進行路徑跟蹤,否則一直處于方向調整狀態。
(19)采樣時間:即數據中心與硬件交互過程中的數據交互頻率。
(20)遇到障礙等待時間:指AGV遇到障礙物停下來等待發出障礙警告的時間。
(21)末端反向調整最遠距離:代表AMR遠離目標站點進行二次末端位姿調整時的遠離目標站點距離。
(22)到達目標站點(位姿調整)距離:到達目標站點進行位姿調整的偏移。
(23)站點定位偏離站點距離:代表到達了目標站點范圍內的距離,小于此距離將AMR定位到當目標站點。
(24)到達站點減速距離閾值:到達目標站點減速階段的判定距離閾值。
(25)安全距離減速系數:為1時為標準的上述減速距離,小于1時相當于增加減速距離減小了減速度。
(26)站點到達縱向閾值:判斷到達站點后讀取下一站點任務的縱向距離閾值。
(27)站點到達側向閾值:判斷到達站點后讀取下一站點任務的側向距離閾值。
(28)站點到達方向閾值:判斷到達站點后讀取下一站點任務的方向距離閾值。
(29)任務站點縱向偏差閾值:即車體在縱向上與任務執行站點的前后允許偏移量。
(30)任務站點側向偏差閾值:即車體在側向上與任務執行站點的左右允許偏移量。
(31)任務站點方向偏差閾值:即車體的幾何中心線與任務執行站點的方向偏差允許偏移量。
(32)預備目標點到目標站點距離:指AGV與目標終點之間的連線上,重新找一個預備目標點做目標,AGV先到達預備目標點后,在方向上更平緩地到達目標終點,預備目標點與目標終點的距離就是預備目標點距離。
(33)直線預瞄點距離:表示AGV在運動過程中,需要一個參考點判斷是否在路徑上,以導航儀為圓心,預瞄點距離為半徑與路徑相交的點即為預瞄點。
(34)轉彎預瞄點距離:即AGV即將轉彎時,需要增大預瞄點距離,以保證預瞄點的精確性。在AGV行走運動參數里,一般不建議修改。
除公共控制參數外,不同類型底盤的控制參數也不盡相同。如圖3-9為具體的差速轉向底盤類型的控制參數配置。參數配置實際運行時會顯示已保存在配置文件中的值,根據AGV的實際機械尺寸在相應的配置項中填入設置信息,然后點擊確認按鈕即可完成車身結構參數配置,配置參數會寫入到fileHMIChassisSystemChassisGeneralMoveControlPara.ini和fileHMIChassisSystemMoveControlParameterSingleSteerWheelMoveControlParameter配置文件中保存,將配置的信息賦值給相應的程序變量參數,用于AGV的運動控制。
不同類型的AGV的車身結構參數差異較大,故需要對AGV的車身具體結構參數進行配置。如下圖所示為差速轉向驅動一體的車身結構參數配置界面和相應的配置參數文件。AGV有兩個非驅動輪和一個驅動輪,驅動輪在前方,兩個從動輪在后方,導航儀的正方向也就是驅動輪的方向。其中后輪輪距即兩個非驅動輪間的距離;前后軸距為前輪和后輪連線中心的垂直距離;車身長度 、車身寬度 、貨叉長度、貨叉間距和AGV結構類型即字面意思;前輪偏移,后輪偏移,貨叉中心偏移均是用來彌補硬件的誤差,類似與補償校零;驅動輪直徑即前輪直徑;行走電機減速比即舵機減速箱減速比;轉向電機減速比指的是轉角分辨率。
參數配置實際運行時會顯示已保存在配置文件中的值,根據AGV的實際機械尺寸在相應的配置項中填入設置信息,然后點擊確認按鈕即可完成車身結構參數配置,配置參數會寫入到fileHMIChassisSystemSingleSteerDriverWheel StructParameterSingleSteerWheelStructParameter.ini配置文件中保存,將配置的信息賦值給相應的程序變量參數,用于AGV的運動控制。
3.4 導航傳感器配置
如下圖所示,導航儀網絡配置對AGV控制器和具體類型導航儀模塊網絡通信的網絡參數(IP地址、端口號)進行配置。以sick的slam導航雷達為例,下圖中實時會顯示已保存在配置文件中的網絡和安裝參數配置值,在編輯框中輸入需要設置的IP地址和端口號,點擊確認按鈕即可在fileHMINavigattemLaserSLAMSickNanoScanCommunicationPara文件夾中的LaserSLAMSickNanoScan_Commun.ini文件中。對導航傳感器ip地址和端口號port進行修改,當車載軟件工作時只需要讀取配置文件中修改完畢的ip地址和端口號port即可實現與導航傳感器的通信。
下圖所示導航儀方向補償和側向安裝補償值也是彌補安裝誤差而計算的到的配置值。
3.5 能源系統參數配置
上圖中能源系統中的充電時間設置可防止電池過充。電池電量閾值表示當電池電量達到該閾值時,AGV在完成當前任務后,立即完成自動充電任務;電池充電電量值表示當電池電量到達該閾值時,應及時停止充電防止過充帶來的危險。
3.6 安全系統參數設置
如下圖為安全子系統參數配置。為方便調試AGV在危險發生時的響應,通過設置各種安全工況測試AGV的處理機制。設置的內容包括是否打開安全防撞模式、設置各種障礙檢測傳感器測量值以及各設備工作是否發生故障等。
3.7 系統配置
前面的網絡配置、各類型底盤配置、各類型執行器配置、各類型導航系統傳感器配置,都會改變相對應各子系統的配置文件值。為方便啟動具體類型的AGV子系統實現不同子系統組合成相應類型的AGV系統,設計了下圖所示的系統配置菜單功能。通過在系統配置保持菜單中選擇不同的底盤系統、執行器系統、導航系統、車輪本體品牌等,點擊確定即軟件重新啟動,生成相應類型的AGV系統。在系統配置增加欄目中新增底盤類型、執行器類型、導航系統類型以及車輛品牌類型,可實現對車型的擴展。
3.8 用戶管理
在進入AGV控制系統主界面之前時,首先需要登錄。登錄信息的修改需要進入系統管理部分。點擊主界面中的系統管理按鈕時,彈出如下所示確認對話框,如下圖所示。點擊彈出對話框中的確認按鈕,進入用戶信息管理界面,進行登錄信息修改。
點擊確認按鈕后,將修改后的用戶名和密碼信息寫入到用戶信息配置文件中,用于下次登錄時進行校驗。
第四部分 地圖維護
地圖維護界面主要是完成地圖的配置(生成地圖)、加載、修改、刪除。
4.1 地圖生成
根據工廠車間的實際布局,構建高寬的柵格地圖。在地圖高寬對應編輯框中輸入需要創建的地圖尺寸,并給生成的地圖取一個名稱,任一輸入框為空而點擊創建地圖都會彈出警告,最后點擊創建地圖按鈕。如下圖所示。
4.2 地圖配置
創建一個新的地圖后需要手動配置柵格點,默認新地圖的柵格點全是障礙站點,地圖中的柵格點可進行配置,即單點配置(雙擊)彈出相應的參數框。如下圖4-2所示為單點配置時的配置操作截圖,在地圖區域內雙擊任一站點,顯示配置單元格的信息,按確定完成配置。彈出框中包括:
(1)站點的索引坐標:站點的編號由X軸和Y軸兩個索引組成。
(2)站點物理坐標:站點在工廠中的全局坐標。
(3)載貨平臺實時坐標:AGV的載貨平臺在工廠中的實時位置。
(4)柵格站點類型:站點的類型包括充電站點、入庫站點、出庫站點、待命站點、貨架站點、AGV路徑站點等。關聯站點設置主要設置每個站點和其它站點間的聯系。層高為當前站點在垂直于地面的Z方向上不同貨位的高度。
上圖的站點關聯信息設置主要包括關聯站點的索引、站點間AGV運行模式、路徑段起始方向和到達方向、車體方向等。點擊生成站點可生成一個新的關聯站點,點擊是否保存即確定可保存信息。同時還可在上述表格欄中對已有的關聯站點相關信息進行修改。
4.3 地圖保存
如下圖所示,地圖配置結束后點擊保存配置按鈕,如果該地圖名對應的地圖文件已經存在時會彈出對話框詢問,地圖已存在并確認是否覆蓋。地圖保存后點擊完成按鈕。站點修改和保存修改會隨著點擊交替出現以實現修改地圖和保存修改地圖的雙重功能。點擊清空地圖按鈕會刪除已有地圖中配置的參數,點擊地圖按鈕會清除地圖中冗余的信息減少地圖的容量大小。手動定位功能為方便AGV系統自測時使用,方便給AGV下發不同的站點任務。
4.4 地圖加載
將配置好的地圖顯示在界面中,以便確認地圖配置是否正確。通過下拉框選取需要加載的地圖名,然后點擊下圖4-7所示右側地圖加載按鈕降地圖信息加載到界面上,其中地圖加載成功后加載地圖按鈕就變成了恢復地圖按鈕。
4.5 地圖放縮與修改
拖動地圖放縮的滑桿,通過移動滑桿改變地圖大小,或者通過鼠標中間滑輪也可達到同樣的效果,滑桿的最左端是最小比例,往右端移動使地圖增大。
4.6 地圖刪除
如果需要刪除某一個地圖時,在圖4-7下拉框中選取需要修改的地圖后,無論需不需要加載,點擊刪除按鈕,此時會彈出確認窗口,再點擊確認后即可完成地圖文件刪除。
第五部分 系統監測
在主界面左上方點擊狀態監測后,彈出系統監測框,如下圖所示。左側顯示系統狀態,打印出系統初始化、系統關閉已經出現故障的信息,目的在于保證系統正常運行,及時排查故障;右側監視系統中各線程的幀速率,若程序卡死可以準確定位哪個線程故障。如下圖所示。
第六部分 系統測試
6.1 手動控制
AGV的控制模式分為手動控制和自動控制兩種,初始化默認為自動控制。如下圖所示。
當在界面中點擊手動控制按鈕時,進入手動控制模式,彈出手動控制界面。如上圖所示,手動控制功能簡單明了,如上圖手動控制界面框所示,除了左側個文本框需要手動輸入AGV行駛速度,其余的文本框會實時顯示車輛的動作參數變化。右側按鈕分為前進后退控制,左轉右轉回正控制,貨叉上升下降控制,貨叉左移右移控制,貨叉左轉右轉控制,充電通斷控制。除了車輛轉彎和電池充電通斷單點有效,其他動作都需要持續性點擊按鈕,直到動作完成松開按鈕。
6.2 自動控制
車載軟件的自動控制,將操作指令按順序結合成具體任務,下發給AGV。任務測試模塊的功能包括任務生成、任務預覽以及任務下發。如下圖所示,點擊任務類型下拉框,選擇需要生成的任務類型(移動任務、取貨任務、放貨任務、充電任務),根據任務類型的不同設置不同任務的配置參數,然后點擊生成任務按鈕完成任務生成。任務編號就是任務ID,用戶自己定義,其中路徑類型有1和0兩種,1代表由AGV自主規劃路徑,0代表上位機發送的已經規劃完成的路徑。移動任務指命令行駛到位置,取貨任務指AGV到達目標工位的開始執行點,然后執行取貨動作。放貨任務指AGV將已經叉取得貨物運載到目標工位的開始執行點,然后執行放貨動作。充電任務即AGV移動到充電工位的開始執行點,然后執行充電動作。
生成任務前,需要對目標工位置信息進行配置,首先是開始執行點的X0、YO坐標值填寫,其次是目標工位的X1、Y1坐標以及在取貨、放貨任務中需要取放貨物的層數。移動任務只需要將開始執行點坐標和目標工位坐標填寫一致即可。如果所配置任務的任務ID編號已存在,會彈出提示對話框提示任務已存在,任務生成失敗,如下圖所示。如果任務順利生成,直接顯示在列表中。
當點擊任務列表中的任意行時,對應在任務測試下方的編輯框中顯示對應的任務細節信息。選擇需要下發的任務后點擊任務下發按鈕,如下圖所示。