亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        自動化立體倉庫三維仿真平臺的研究與實現(xiàn)

        2014-02-20 03:49:18宗曉萍朱玲玲齊興敏
        物流技術(shù) 2014年1期
        關(guān)鍵詞:立體倉庫碰撞檢測堆垛

        宗曉萍,朱玲玲,齊興敏

        (河北大學 電子信息工程學院,河北 保定 071000)

        1 引言

        自動化立體倉庫是一種適合大規(guī)模儲存貨物的高效立體倉庫,由高層貨架、貨箱、巷道、堆垛起重機、出入庫輸送機系統(tǒng)、自動控制系統(tǒng)、計算機倉庫管理系統(tǒng)及輔助設(shè)備組成,對集裝單元貨物實現(xiàn)了自動化存儲和計算機管理[1]。隨著現(xiàn)代工業(yè)生產(chǎn)的迅猛發(fā)展,產(chǎn)品的多樣化和需求的個性化不斷地對自動化倉庫的規(guī)劃和設(shè)計提出更高的要求,但是面對自動化立體倉庫成本高,投資大的現(xiàn)實,對自動化立體倉庫系統(tǒng)采用三維虛擬仿真技術(shù)可以提前測試實際建設(shè)中方案是否符合要求,并對各種方案建立相應(yīng)的仿真模型,進行多次仿真,確定最適合的方案,避免因盲目建設(shè)而導致經(jīng)濟損失。

        自動化立體倉庫的系統(tǒng)仿真是通過系統(tǒng)建模,計算機編程模擬實際系統(tǒng)運行狀態(tài),并將計算模擬過程中的相關(guān)數(shù)據(jù)作為實際規(guī)劃設(shè)計與運作管理的理論依據(jù),同時統(tǒng)計和分析模擬結(jié)果,用以指導實際物流系統(tǒng)的規(guī)劃設(shè)計與運作管理。對于圖形化的物流仿真軟件的研究,國外研究起點高,發(fā)展比較成熟,因此出現(xiàn)了很多專業(yè)化的物流仿真軟件。其中比較常用的有3i公司設(shè)計開發(fā)SIMAnimation和AutoSimulation公司開發(fā)的AutoState(AutoMod),日本的RaLC(樂龍),美國的Flexsim等[2]。但是諸如以上仿真軟件大多不提供源碼,不利于進行二次開發(fā),且價格昂貴。國內(nèi)對物流業(yè)的仿真都是依靠先進的仿真軟件,如文獻[3]采用Flexsim仿真軟件對某物流中心的倉儲作業(yè)系統(tǒng)進行了建模和深入分析,并從補貨策略設(shè)備配置及利用率等方面對模型進行了優(yōu)化,提出了改進意見和建議。對于物流系統(tǒng)仿真方面,我國目前還處于起步發(fā)展階段。

        此三維仿真平臺主要在VC++6.0環(huán)境下利用三維圖形庫OpenGL搭建立體倉庫的三維虛擬仿真平臺,并具體分析了碰撞檢測算法,實現(xiàn)了自動化立體倉庫存儲貨物實際流程的動畫演示,以便提前獲得倉庫的運行情況,使自動化倉儲在物流系統(tǒng)和企業(yè)生產(chǎn)系統(tǒng)中發(fā)揮更大的作用。

        2 三維實體模型的建立

        OpenGL只能通過其基本圖元來繪制圖形,不具備實體造型能力。3DMAX擁有強大的造型功能,可以將由3DMAX生成的圖形文件通過轉(zhuǎn)換軟件將模型轉(zhuǎn)換為OpenGL顯示形式,再用OpenGL進行編程控制[4]。此仿真平臺導入*.3DS格式,再對其進行編程控制,由此可避免在OpenGL中用點、線和多邊形來建立三維立體模型的繁重勞動。3DS模型文件由許多Chunk組成,其中編輯Chunk、顏色Chunk、材質(zhì)Chunk、紋理Chunk起著關(guān)鍵的作用。因此,讀入以上的關(guān)鍵塊就可以實現(xiàn)模型的外部導入[5]。

        在MFC框架中定義一個名為LOAD3DS的類,用于3DS文件的讀入與重繪,該類中主要定義的幾個結(jié)構(gòu)體及主要函數(shù)如下:

        (1)主要結(jié)構(gòu)體:顏色結(jié)構(gòu)體,頂點結(jié)構(gòu),對象結(jié)構(gòu)體。

        (2)主要函數(shù):

        3DSObject·Load3DSObject();//讀取3DS文件函數(shù)

        void Draw3DSObject();//3DS模型重繪函數(shù)

        void Unitize3DSObject();//模型平移到原點,并縮放到立方體中。

        LOAD3DS類編寫完成后即可按下面的步驟導人3DS模型:

        (1)文檔類中添加成員變量用于存取導人的模型。

        (2)添加OnOpenDocument的消息響應(yīng)函數(shù),采用顯示列表的方法加載模型。

        (3)在視圖類中添加成員函數(shù)DrawWithOpenGL()重繪導入模型。

        (4)在視圖類中添加響應(yīng)OnPaint()函數(shù),并在該函數(shù)下調(diào)用DrawWithOpenGL()函數(shù)顯示3DS模型。

        3 碰撞檢測

        碰撞檢測是交互式場景漫游需要解決的一個關(guān)鍵環(huán)節(jié),針對三維漫游場景的情況,碰撞檢測主要解決的問題是隨著視點的移動,新的視點可能會穿越場景中設(shè)備對象或者進入物體內(nèi)部的情況。

        由于仿真場景中的設(shè)備大多是較為規(guī)則的模型,所以根據(jù)具體設(shè)備的形狀將設(shè)備盡可能簡化為簡單的三角形,同時將視點看作一個點。這樣碰撞檢測就轉(zhuǎn)化為一個點與三角形相交的問題,從而加快實時響應(yīng)速度,取得較好的漫游效果[6]。高層貨架的漫游效果如圖1所示。

        視點碰撞檢測的主要步驟:

        (1)確定并記錄下當前視點位置m_vPos,并記錄下用戶輸入的新視點位置m_vNewPos;

        (2)遍歷場景中的三角形,找到新舊視點之間的三角形平面;

        (3)判斷過兩視點的直線與三角形平面交點是否在三角形的內(nèi)部。若此點在其內(nèi)部,則發(fā)生碰撞;反之,按以下步驟繼續(xù);

        圖1 漫游效果圖

        (4)繼續(xù)判斷此點是否位于三角形邊上,若是,則碰撞發(fā)生;反之,不發(fā)生碰撞。

        碰撞檢測完成后,若碰撞發(fā)生,則將新的視點還原為原來視點的位置;若無碰撞,則視點原位置更新為用戶輸入的新視點。

        3.1 判斷視點移動與三角形面是否相交

        其判斷方法為:遍歷場景內(nèi)的三角形平面,并判斷新視點到原來視點的射線是否與場景中的三角形平面相交,且交點位于兩點之間。具體算法如下:

        確定兩視點變量:m_vPos和m_vNewPos,則此射線的方向向量為:m_v=m_vNewPos-m_vPos;

        (1)遍歷場景沒所有三角形并確定所在平面的法向量:m_vNormal;

        (2)求取上述的兩向量夾角,若小于90度則返回步驟(2),反之則繼續(xù)步驟(3);

        (3)計算得出與三角面的交點坐標;

        (4)判斷交點坐標是否在三角形的內(nèi)部,若在內(nèi)部,則碰撞發(fā)生,反之,無碰撞發(fā)生。

        3.2 判斷交點是否位于三角形的內(nèi)部

        判斷一個點是否位于三角形的內(nèi)部有許多方法,鑒于編程的方便,采用簡單易行的求交角的方法來進行判斷,如圖2所示。

        圖2 視點在三角形內(nèi)部

        當角α、β、γ 相加之和為360度時,則說明交點位于三角形內(nèi)部,則碰撞發(fā)生,除此之外的其他情況均為未發(fā)生碰撞。部分代碼段如下:

        For(int i=0;i<3;i++)

        {

        //當前頂點到交點的向量

        vA=Triangle[i]-vCutpoint;

        //下一個頂點到交點的向量

        vB=Triangle[(i+1)%3]-vCutpoint;

        //得出交點vCutpoint與三角形三個頂點夾角之和,并判斷是否為360度。

        Angle+=AngleBetween(vector vA,vector vB);

        為了提高碰撞檢測的效率,加快實時反應(yīng),在碰撞檢測之前在場景中建立了AABB包圍盒,這樣可以將距視點比較遠的不可能發(fā)生碰撞的物體排除,即將參與檢測的物體僅限于視點附近。進一步的精確檢測時,只需考慮所劃范圍內(nèi)的包圍盒對象即可,從而簡化程序的遍歷過程,提高程序運行過程。最終的碰撞檢測流程圖如圖3所示。

        圖3 碰撞檢測流程圖

        4 出入庫動畫模擬

        在自動化立體倉庫系統(tǒng)中,出入庫是物流系統(tǒng)的主要操作活動,本系統(tǒng)按照單入庫作業(yè)流程進行作業(yè),即:堆垛機從入庫臺取貨并運行至目的地;堆垛機將貨物送至貨架的貨格中;堆垛機返回原地等待下次作業(yè)。

        在MFC中添加數(shù)據(jù)庫連接類ADOcnn,結(jié)合windows系統(tǒng)中ado動態(tài)連接庫msado15.dll,實現(xiàn)數(shù)據(jù)庫與底層設(shè)備數(shù)據(jù)的連接。其中在入庫命令下達時,系統(tǒng)會通過數(shù)據(jù)庫查詢貨架存儲狀態(tài),貨架的數(shù)據(jù)庫結(jié)構(gòu)表見表1。

        表1 貨位的數(shù)據(jù)庫結(jié)構(gòu)表

        一旦用戶輸入入庫指令,目標貨位fram[j][k][l]就確定,貨物的行進路線也隨之確定:一級傳送帶ID,二級傳送帶ID,堆垛機的水平和垂直運動量都將確定。貨物從貨物發(fā)生器start出發(fā),經(jīng)過一級傳送帶,尋找距離最近的未滿的入庫緩沖區(qū)Trans[i],然后在貨物到達緩沖區(qū)最前端,且巷道堆垛機lift[m]處于I/O臺待命狀態(tài)時,貨物移到堆垛機上,之后的貨物同堆垛機一起運動,堆垛機將貨物送到指定貨格fram[j][k][l]。如圖4所示。出庫的流程與入庫流程類似,其出庫調(diào)度算法,同樣可以后期開發(fā)定制,并隨時更換,也可以對幾種不同的算法進行比較驗證。

        圖4 貨物入庫程序流程圖

        為了生成平滑的動畫,本仿真系統(tǒng)采用了OpenGL雙緩存技術(shù)(DoubleBuffering),即前臺緩存和后臺緩存,后臺緩存主要是計算場景、生成動畫,前臺緩存顯示后臺緩存已畫好的畫面,從而增強三維仿真動畫顯示的連續(xù)性和逼真感。動作函數(shù)

        void CMyPick1View::move (CLoadOBJ&a,CLoadOBJ&b,CLoadOBJ&c)實現(xiàn)出庫入庫等基本功能仿真動畫,該函數(shù)以三個設(shè)備對象為形參,其中對象b為運動的設(shè)備對象,對象a為對象b運動的起點,對象c為對象b運動的終點。

        5 交互式設(shè)計

        對于一個三維漫游場景來說,交互性是指用戶可以從不同的角度進行觀察和對模型的操作。

        5.1 視點轉(zhuǎn)換

        本平臺利用在OpenGL中的gluLookAt(g_eye[0],g_eye[1],g_eye[2],g_look[0],g_look[1],g_look[2],upx,upy,upz)函數(shù)實現(xiàn)視點的轉(zhuǎn)換,達到漫游效果,其中內(nèi)部函數(shù)變量(g_eye[0],g_eye[1],g_eye[2])決定初始視點空間位置,(g_look[0],g_look

        [1],g_look[2])表示目標點,(upx,upy,upz)表示視點運動的方向。該函數(shù)作用是可以改變用戶在虛擬世界中的觀察點,當視點的位置及視點的參考方向發(fā)生改變時,視景中的物體相對于觀察者的方位也發(fā)生了改變,同時系統(tǒng)定義了鍵盤上的‘↑’,‘↓’,‘←’,‘→’鍵來控制視點的前進后退左轉(zhuǎn)右轉(zhuǎn),Page Up,Page Down分別控制視點上仰下俯,從而達到場景的漫游效果。

        5.2 場景平移

        場景的平移是通過OpenGL的函數(shù)glTranslatef()來實現(xiàn)的。通過參考文獻[7]和文獻[8],利用鼠標選中模型,則可以在模型上確定一點,通過拖動鼠標移動此點,從而實現(xiàn)對模型的間接控制,平移或者旋轉(zhuǎn)。

        對于模型的旋轉(zhuǎn)是通過建立旋轉(zhuǎn)軸實現(xiàn)的,將兩個鼠標矢量所構(gòu)成平面的法向量作為旋轉(zhuǎn)軸,兩鼠標矢量的夾角作為旋轉(zhuǎn)角度。通過參考文獻[9],由旋轉(zhuǎn)軸和旋轉(zhuǎn)角度計算出四元旋轉(zhuǎn)向量,從而由旋轉(zhuǎn)向量構(gòu)造旋轉(zhuǎn)矩陣,實現(xiàn)模型的旋轉(zhuǎn)。

        6 三維仿真實驗

        在本仿真平臺下,搭建一個簡單的立體倉庫,并設(shè)置好各個設(shè)備的參數(shù)屬性:對象名稱、空間坐標、運動速度以及某些對象的特有屬性,比如傳送帶的功能分類:主傳送帶、入庫緩沖傳送帶、出庫緩沖傳送帶。貨架的基本元素:層數(shù)和列數(shù),并按照以下的平面方案布局搭建,該虛擬立體倉庫具備了一般自動化立體倉庫的主要功能,同時可以改變視角,并在場景中漫游。其主要模型和平面示意圖如圖5所示。

        其中:a-主傳送帶,b-入庫緩沖區(qū),c-貨物,d-出/入庫貨臺,e-巷道堆垛機,f-高層貨架。

        圖5 仿真場景平面示意圖

        三維仿真效果圖如圖6所示。

        圖6 立體倉庫三維仿真效果圖

        7 小結(jié)

        選用可視化編程語言VC作為仿真系統(tǒng)開發(fā)平臺,實現(xiàn)了自動化立體倉庫出入庫作業(yè)流程的模擬仿真,用戶可以更換布局方案,改變背景和視角,實現(xiàn)虛擬漫游,對自動化立體倉庫實際運行情況進行演示,同時此三維仿真系統(tǒng)具有友善的人機交互界面和簡便的操作方法,并兼顧系統(tǒng)功能擴充時易于修改和擴展?,F(xiàn)今我國自動化立體倉庫的系統(tǒng)仿真方面處于起步階段,本三維仿真平臺作為一個探索和嘗試,對今后的后續(xù)開發(fā)和拓展具有重要的實際意義。

        [1]劉臣宇,郭峰,李衛(wèi)靈.基于Creator的虛擬自動化立體倉庫的研究與實現(xiàn)[J].價值工程,2010,(29).

        [2]柳賽男.基于Web的制造業(yè)倉庫管理物流平臺關(guān)鍵技術(shù)及其應(yīng)用研究[D].杭州:浙江大學,2007.

        [3]朱小蓉.基于Flexsim的倉儲作業(yè)系統(tǒng)仿真及優(yōu)化[J].物流技術(shù),2012,(2).

        [4]張志剛,曹西京,劉昌祺,王棟生.自動化立體倉庫系統(tǒng)仿真的研究[J].計算機仿真,2005,(7).

        [5]高海芳,王天雷,邱杰,康獻民,王大承.基于OpenGL的3DS模型的導入與控制[J].五邑大學學報(自然科學版),2010,(3).

        [6]董晶晶,陳兵,王磊.虛擬場景漫游中基于視點的碰撞檢測研究及實現(xiàn)[J].海洋測繪,2011,(5).

        [7]張正波,牟彥,黃華,劉波.OPENGL實現(xiàn)3ds文件中的模型自由旋轉(zhuǎn)[J].計算機工程與應(yīng)用,2005,41(13):98-100.

        [8]馬新武,趙國群,王廣春.用虛擬球?qū)崿F(xiàn)交互式OpenGL 3D圖形的旋轉(zhuǎn)[J].計算機應(yīng)用,2001,21(8):169-170.

        [9]Terence JGrant,Jeff Molofee.ArcBall rotation control revisited[EB/OL].http://nehegame lev.net/tutorial/arcball_rotation/19003/.

        猜你喜歡
        立體倉庫碰撞檢測堆垛
        全新預(yù)測碰撞檢測系統(tǒng)
        搬易通推出MCC系列人上型三向堆垛車
        基于Flexsim的自動化立體倉庫仿真研究
        基于BIM的鐵路信號室外設(shè)備布置與碰撞檢測方法
        自動化立體倉庫用堆垛機的幾種換軌方式及應(yīng)用案例
        密集型自動化立體倉庫解析
        Unity3D中碰撞檢測問題的研究
        電子測試(2018年1期)2018-04-18 11:53:00
        基于B7A接口的鋼板立體倉庫控制系統(tǒng)設(shè)計
        BIM技術(shù)下的某辦公樓項目管線碰撞檢測
        自動化立體倉庫在現(xiàn)代制造企業(yè)中的應(yīng)用與優(yōu)勢
        美国又粗又长久久性黄大片| 亚洲人成人网站在线观看| 国产成年无码v片在线| 亚洲亚洲网站三级片在线| 91久久精品人妻一区二区| 一级内射免费观看视频| 红桃av一区二区三区在线无码av | 最新国产女主播在线观看| 91青草久久久久久清纯| 私人毛片免费高清影视院| 欧美黑人性暴力猛交喷水黑人巨大 | 视频在线亚洲视频在线| 少妇无套裸按摩呻吟无呜| 怡红院av一区二区三区| 亚洲欧美精品aaaaaa片| 久久久高清免费视频| 精品国产制服丝袜高跟| 久久久久人妻精品一区5555| 亚洲精品av一区二区日韩| 青青草大香蕉视频在线观看| 美女网站免费福利视频| 厨房玩丰满人妻hd完整版视频 | 激情综合一区二区三区| 久久精品国产亚洲一区二区| 狼人狠狠干首页综合网| 国产91清纯白嫩初高中在线观看| 免费无码中文字幕a级毛片| 妇女性内射冈站hdwwwooo| 少妇爽到爆视频网站免费| 美女脱了内裤洗澡视频| 黑人巨茎大战俄罗斯美女| 狠狠色狠狠色综合日日不卡| 亚洲人成网站在线播放小说| 一本色道久久88加勒比综合| 人妻中文字幕乱人伦在线| 日本少妇被黑人xxxxx| 国产91第一页| av免费在线国语对白| 国产又色又爽无遮挡免费软件| 亚洲xxxx做受欧美| 国产一级做a爱视频在线|