大學(xué)電腦作業(yè):大學(xué)論文

大學(xué)電腦作業(yè):大學(xué)論文

ID:83048147

大小:116.76 KB

頁數(shù):57頁

時(shí)間:2023-07-04

上傳者:無敵小子
大學(xué)電腦作業(yè):大學(xué)論文_第1頁
大學(xué)電腦作業(yè):大學(xué)論文_第2頁
大學(xué)電腦作業(yè):大學(xué)論文_第3頁
大學(xué)電腦作業(yè):大學(xué)論文_第4頁
大學(xué)電腦作業(yè):大學(xué)論文_第5頁
大學(xué)電腦作業(yè):大學(xué)論文_第6頁
大學(xué)電腦作業(yè):大學(xué)論文_第7頁
大學(xué)電腦作業(yè):大學(xué)論文_第8頁
大學(xué)電腦作業(yè):大學(xué)論文_第9頁
大學(xué)電腦作業(yè):大學(xué)論文_第10頁
資源描述:

《大學(xué)電腦作業(yè):大學(xué)論文》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

廣東技術(shù)師范學(xué)院

1摘要1Abstract1第一章緒論11.2虛擬樣機(jī)技術(shù)簡介11.2.1虛擬樣機(jī)的定義和特點(diǎn)11.2.2研究現(xiàn)狀和發(fā)展趨勢21.3視景仿真技術(shù)簡介31.3.1視景仿真的定義和特點(diǎn)31.3.2工業(yè)機(jī)器人視景仿真系統(tǒng)研究的意義31.4本文要研究的主要內(nèi)容3第二章機(jī)器人運(yùn)動學(xué)52.1空間點(diǎn)和坐標(biāo)系的表示52.1.1空間點(diǎn)的向量表示52.1.2坐標(biāo)系在固定參考坐標(biāo)系中的表示52.2坐標(biāo)系的變換62.2.1齊次變換62.2.2坐標(biāo)系相對于旋轉(zhuǎn)坐標(biāo)系的變換72.2.3變換矩陣的逆82.3機(jī)器人的正逆運(yùn)動學(xué)82.3.1正運(yùn)動學(xué)的D-H表示法92.3.2逆運(yùn)動學(xué)方程的求解102.4微分運(yùn)動10第三章基于ADAMS的機(jī)器人的虛擬樣機(jī)分析123.1ADAMS概述123.2ADAMS中機(jī)器人模型的建立123.2.1設(shè)置建模環(huán)境133.2.2機(jī)器人實(shí)體建模133.2.3機(jī)器人模型的設(shè)置133.3軌跡規(guī)劃仿真分析143.3.1軌跡規(guī)劃方法的理論分析143.3.2軌跡規(guī)劃仿真分析17第四章基于模型的視景仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)191.1.1OpenGL工作方式20

21.1.1OpenGL繪制過程204.2機(jī)器人三維可視化框架建立204.2.1利用MFC建立單文檔應(yīng)用程序框架204.2.2設(shè)置OpenGL繪圖環(huán)境214.3機(jī)械手三維模型的建立234.3.1導(dǎo)入機(jī)械手模型234.3.2在OpenGL中建立機(jī)械手的模型244.4建立仿真場景264.4.1紋理貼圖的實(shí)現(xiàn)264.4.2設(shè)置光照284.5基于模型的視景仿真的實(shí)現(xiàn)304.5.1數(shù)據(jù)的讀取314.5.2利用讀取的數(shù)據(jù)控制機(jī)械手的運(yùn)動324.5.3實(shí)現(xiàn)觀察視角的交互式鍵盤控制34結(jié)論36致謝52

3摘要摘要虛擬樣機(jī)技術(shù)就是在建造第一臺物理樣機(jī)之前,設(shè)計(jì)師利用計(jì)算機(jī)技術(shù)建立機(jī)械系統(tǒng)的數(shù)字化模型,進(jìn)行仿真分析并以圖形方式顯示該系統(tǒng)在真實(shí)工程條件下的各種特性,從而修改并得到最優(yōu)設(shè)計(jì)方案的技術(shù)。ADAMS軟件是目前國際上應(yīng)用最為廣泛的虛擬樣機(jī)分析軟件,用戶可以運(yùn)用該軟件非常方便地對虛擬機(jī)械系統(tǒng)進(jìn)行靜力學(xué)、運(yùn)動學(xué)和動力學(xué)分析。但針對復(fù)雜的機(jī)器人機(jī)械系統(tǒng),要想準(zhǔn)確的控制其運(yùn)動,僅依靠ADAMS軟件自身也很難做到;MATLAB軟是Mathworks公司開發(fā)的一種集計(jì)算、圖形可視化和編輯功能于一體的優(yōu)秀數(shù)學(xué)應(yīng)用軟件,具有強(qiáng)大的計(jì)算能力,能夠建立復(fù)雜的控制模型準(zhǔn)確控制復(fù)雜機(jī)器人系統(tǒng)的運(yùn)動;OpenGL(開放式圖形庫全稱)是SGI公司開發(fā)的底層三維圖形API,目前在圖形開發(fā)領(lǐng)域已成為工業(yè)標(biāo)準(zhǔn)。使用OpenGL可以創(chuàng)建視覺質(zhì)量接近射線跟蹤程序的精致漂亮的3D圖形。VisualC++6.0已經(jīng)成為集編輯、編譯。運(yùn)行、調(diào)試為一體的功能強(qiáng)大的集成編程環(huán)境,在Windows編程中占有重要地位。OpenGL和VisualC++6.0有緊密接口,利用二者可以開發(fā)出優(yōu)秀的視鏡仿真系統(tǒng)。ADAMS、MATLAB和VisualC++6.0由于定位不同,都有各自的優(yōu)勢和缺點(diǎn),但是三者之間又可以通過接口聯(lián)合控制或者混合編程。本文分別利用ADAMS對三自由度機(jī)器人的運(yùn)動學(xué)和軌跡優(yōu)化方案進(jìn)行研究,利用VisualC++6.0,OpenGL和從MATLAB里導(dǎo)出的控制模型的數(shù)據(jù)對三自由度機(jī)器人進(jìn)行了視景仿真的研究。論文首先通過建立坐標(biāo)系和矩陣變換,對剛體的空間表示進(jìn)行了闡述,然后采用通用的D-H法則,將機(jī)器人關(guān)節(jié)角度參數(shù)化,推導(dǎo)出其正運(yùn)動學(xué)方程和逆運(yùn)動關(guān)節(jié)角,并計(jì)算出機(jī)器人手部的初始坐標(biāo)。其次采用ADAMS軟件,詳細(xì)介紹了機(jī)器人三維建模過程,包括整體框架構(gòu)建,單個(gè)構(gòu)件繪圖和布爾運(yùn)算等,并對機(jī)器人關(guān)節(jié)點(diǎn)進(jìn)行了參數(shù)化設(shè)計(jì)。最后從機(jī)器人軌跡規(guī)劃的基本原理和方法出發(fā),比較分析了關(guān)節(jié)空間軌跡規(guī)劃和直角坐標(biāo)空間軌跡規(guī)劃的差別,并采用三次多項(xiàng)式和五次多項(xiàng)式對機(jī)器人進(jìn)行了軌跡規(guī)劃,利用ADAMS軟件中內(nèi)嵌的Step函數(shù)對運(yùn)動軌跡進(jìn)行了仿真分析。然后在WindowsXPProfessional的系統(tǒng)環(huán)境下,以VisuallC++6.0為開發(fā)工具,建立了三自由度機(jī)械手視景仿真系統(tǒng)模型,實(shí)現(xiàn)了仿真系統(tǒng)對MATLAB控制模型導(dǎo)出數(shù)據(jù)的讀取和利用。

4AbstractAbstractBeforemanufacturingthefirstphysicalprototype,thedesignersusedcomputertechnologytobuildamechanicalsystemofdigitalmodelforanalysissimulation,whichshowedthatthesystemworksinrealconditionsofthevariouscharacteristics,soastoberevisedandOptimaldesign.ThisprocessiscalledVirtualprototypingtechnology.NowADAMSsoftwareiswidelyusedinvirtualprototypinganalysisintheworld,itisveryconvenientfortheusertousethissoftwareotdothestatics,kinematicsanddynamicsanalysisforthevirtualmachinesystem.Buttothecomplicatedrobotmechanicalsystem,itisalsoveryhardtodotheaccuratecontrolofitsmovementonlyrelyonADAMSsoftwareitself;MATLABisoneoftheoutstandingmathematicsapplicationsoftwareintegratingcalculation,graphicalvisualizationandeditingfunctionsdevelopedbytheMathworkscompany,andithasstrongabilityincomplexcalculation,beingabletocreatethecontrolmodeltodoaccuratecontroloftherobotsystem'scomplicatedmovement.OpenGL(thefullnameofOpengraphicslibraries)isa3DgraphicsApplicationProgrammingInterfaceinthebottom,nowhavingbeentheindustrystandardintheareaofgraphicsdeveloping.Youcancreatedelicateandbeautiful3DgraphicsusingOpenGL,whosevisualqualityisclosetoraytracingprogram.VisualC++6.0hasbecomepowerfulintegratedprogrammingenvironmentwithediting,compiling.Operatinganddebugging,andoccupiesanimportantpositionintheWindowsprogramming.VisualC++6.0andOpenGLhascloseinterface,usingthemwecandevelopgoodendoscopicsimulationsystem.Becauseofthedifferentdue,ADAMS,VisualC++6.0andMATLABhavetheirownrespectiveadvantagesanddisadvantages,butwecanalsodothejointcontrolormixingprogrammingthroughtheinterfacebetweenthethree.Inthispaper,theauthordoresearchtokinematicsandtrackoptimizationschemeof3-dofrobotbasedonADAMS,alsodotheVisualsimulationresearchof3-dofrobotusingthedataofthecontrolmodelderivedfromtheMATLABbasedonVisualC++6.0andOpenGL.Firstofall,throughtheestablishmentofcoordinatesandmatrixtransformation,therigidbodyofthespacethatwaselaborated,andthenusetheD-Hrule,Robotparametersofthejointweregained,equationsofmotionweregiven,andthejointsanglewereknown,initialcoordinatesofRobothandcanbecalculated.FollowedbyADAMSsoftware,weprocesseddetailsoftherobotthree-dimensionalmodelingincludingtheoverallframeworkforbuilding,mappedasinglecomponentandBooleanoperation,designedparametersfortherobotandthekeypoints.Finally,weintroducedthebasicprinciplesandmethodsofrobottrajectoryplanning,andcompareddifferencesbetweenthejointspacetrajectoryplanningandrectangularcoordinatesspacetrajectoryplanning,thecubicpolynomialandfivepolynomialoftherobottrajectoryplanningwerecarriedout,theStepfunctionwereusedonatrajectorysimulationanalysisofADAMSsoftware.TheninWindowsXPsystemenvironment,usingVisualC++6.0asdevelopmenttool,theauthorestablisha3-dofmanipulatorvisualsimulationsystem,realizingtheaccessingandusingtothedataofcontrolmodelderivedfromMATLAB.Keywords:kinematicstrajectoryplanningADAMSvirtualprototypingtechnologyVisualsimulationTexturemappi

5第一章緒論1.1工業(yè)機(jī)器人的發(fā)展現(xiàn)狀1961年,美國的ConsolidedControlCorp和AMF公司聯(lián)合制造了第一臺實(shí)用的示教再現(xiàn)型工業(yè)機(jī)器人,迄今為止,世界上對工業(yè)機(jī)器人的研究已經(jīng)經(jīng)歷了四十余年的歷程,日本、美國、法國、德國的機(jī)器人產(chǎn)業(yè)已日趨成熟和完善。工業(yè)機(jī)器人由操作機(jī)(機(jī)械本體)、控制器、伺服驅(qū)動系統(tǒng)和檢測傳感裝置構(gòu)成,是一種仿人操作、自動控制、可重復(fù)編程、能在三維空間完成各種作業(yè)的機(jī)電一體化自動化生產(chǎn)設(shè)備。特別適合于多品種、變批量的柔性生產(chǎn)?!?】它對穩(wěn)定、提高產(chǎn)品質(zhì)量,提高生產(chǎn)效率改善勞動條件和產(chǎn)品的快速更新?lián)Q代起著十分重要的作用。采用工業(yè)機(jī)器人,不僅可提高產(chǎn)品的質(zhì)量與產(chǎn)量,而且對保障人身安全,改善勞動環(huán)境,減輕勞動強(qiáng)度,提高勞動生產(chǎn)率,節(jié)約原材料消耗以及降低生產(chǎn)成本,有著十分重要的意義。和計(jì)算機(jī)、網(wǎng)絡(luò)技術(shù)一樣,工業(yè)機(jī)器人的廣泛應(yīng)用正在日益改變著人類的生產(chǎn)和生活方式。在制造業(yè)中,尤其是在汽車產(chǎn)業(yè)中,工業(yè)機(jī)器人得到了廣泛的應(yīng)用。如在毛坯制造(沖壓、壓鑄、鍛造等)、機(jī)械加工、焊接、熱處理、表面涂覆、上下料、裝配、檢測及倉庫堆垛等作業(yè)中,機(jī)器人都一逐步取代了人工作業(yè)。如,2004年德國汽車制造業(yè)中每1萬名工人中擁有工業(yè)機(jī)器人的數(shù)量為1140臺?!?】在國外,工業(yè)機(jī)器人技術(shù)日趨成熟,已經(jīng)成為一種標(biāo)準(zhǔn)設(shè)備被工業(yè)界廣泛應(yīng)用。從而,相繼形成了一批具有影響力的、著名的工業(yè)機(jī)器人公司,它們包括:瑞典的ABBRobotics,日本的FANUC、Yaskawa,德國的KUKARoboter,美國的AdeptTechnology、AmericanRobot,意大利COMAU,英國的AutoTechRobotics公司,這些公司l2經(jīng)成為其所在地區(qū)的支柱性產(chǎn)業(yè)。在我國,工業(yè)機(jī)器人的真正使用到現(xiàn)在已經(jīng)接近20多年了,已經(jīng)基本實(shí)現(xiàn)了試驗(yàn)、引進(jìn)到自主開發(fā)的轉(zhuǎn)變,促進(jìn)了我國制造業(yè)、勘探業(yè)等行業(yè)的發(fā)展。2004年全年國產(chǎn)工業(yè)機(jī)器人數(shù)量(主要指在國內(nèi)生產(chǎn)和組裝的)突破1400臺,產(chǎn)值突破8億元人民幣。進(jìn)口機(jī)器人數(shù)量超過9000臺,進(jìn)口額達(dá)到2.6億美元。國內(nèi)各個(gè)工業(yè)機(jī)器人廠家都呈現(xiàn)出產(chǎn)銷兩旺的局面。截至2004年底,我國工業(yè)機(jī)器人市場已經(jīng)突破30億元人民幣?!?】現(xiàn)階段,我國工業(yè)機(jī)器人正逐步發(fā)展成為一種有影響力的產(chǎn)業(yè)。1.2虛擬樣機(jī)技術(shù)簡介1.2.1虛擬樣機(jī)的定義和特點(diǎn)虛擬樣機(jī)技術(shù)就是在建造第一臺物理樣機(jī)之前,設(shè)計(jì)師利用計(jì)算機(jī)技術(shù)建立機(jī)械系統(tǒng)的數(shù)字化模型,進(jìn)行仿真分析并以圖形方式顯示該系統(tǒng)在真實(shí)工程條件下的各種特性,從而修改并得到最優(yōu)設(shè)計(jì)方案的技術(shù)。該技術(shù)以機(jī)械系統(tǒng)運(yùn)動學(xué)、動力學(xué)和控制理論為核心,加上成熟的三維計(jì)算機(jī)圖形技術(shù)和基于圖形的用戶界面技術(shù),將分散的零部件設(shè)計(jì)和分析技術(shù)集成在一起,提供一個(gè)全新研發(fā)機(jī)械產(chǎn)品的設(shè)計(jì)方法。它是一種計(jì)算機(jī)模型,它能夠反映實(shí)際產(chǎn)品的特性,包括外觀、空間關(guān)系以及運(yùn)動學(xué)和動力學(xué)的特性。借助于

6這項(xiàng)技術(shù),設(shè)計(jì)師可以在計(jì)算機(jī)上建立機(jī)械系統(tǒng)的模型,伴之以三維可視化處理,模擬在真實(shí)環(huán)境下系統(tǒng)的運(yùn)動和動力特性,并根據(jù)仿真結(jié)果精化和優(yōu)化系統(tǒng)。虛擬樣機(jī)技術(shù)利用虛擬環(huán)境在可視化方面的優(yōu)勢以及可交互式地探索虛擬物體的功能,對產(chǎn)品進(jìn)行幾何、功能、制造等許多方面交互的建模與分析。它在CAD模型的基礎(chǔ)上,把虛擬技術(shù)與仿真方法相結(jié)合,為產(chǎn)品的研發(fā)提供了一個(gè)全新的設(shè)計(jì)方法。它具有以下特點(diǎn):A全新的研發(fā)模式虛擬樣機(jī)技術(shù)實(shí)現(xiàn)了系統(tǒng)性的產(chǎn)品優(yōu)化,使產(chǎn)品在概念設(shè)計(jì)階段就可以迅速地分析、比較多種設(shè)計(jì)方案,確定影響性能的敏感參數(shù),并通過可視化技術(shù)設(shè)計(jì)產(chǎn)品、預(yù)測產(chǎn)品在真實(shí)工況下的特征,從而獲得最優(yōu)工作性能。B研發(fā)成本低、周期短、產(chǎn)品質(zhì)量高通過計(jì)算機(jī)技術(shù)建立產(chǎn)品的數(shù)字化模型,可以完成無數(shù)次物理樣機(jī)無法進(jìn)行的虛擬試驗(yàn),不但減少了物理樣機(jī)的數(shù)量,降低了成本,而且縮短了研發(fā)周期、提高了產(chǎn)品質(zhì)量。C實(shí)現(xiàn)了動態(tài)聯(lián)盟廣泛地采用動態(tài)聯(lián)盟,通過Internet共享和交流,臨時(shí)締結(jié)成的一種虛擬企業(yè),適應(yīng)了快速變化的全球市場,克服單個(gè)企業(yè)資源的局限性。1.1.1研究現(xiàn)狀和發(fā)展趨勢虛擬樣機(jī)技術(shù)在一些較發(fā)達(dá)國家,如美國、德國、日本等已得到廣泛的應(yīng)用,應(yīng)用領(lǐng)域從汽車制造業(yè)、工程機(jī)械、航空航天業(yè)、到醫(yī)學(xué)以及工程咨詢等很多方面。美國航空航天局(NASA)的噴氣推進(jìn)實(shí)驗(yàn)室(JPL)研制的火星探測器“探路號”,就是JPL工程師利用虛擬樣機(jī)技術(shù)仿真研究研發(fā)的。美國波音飛機(jī)公司的波音777飛機(jī)是世界上首架以無圖方式研發(fā)及制造的飛機(jī),其設(shè)計(jì)、裝配、性能評價(jià)及分析就是采用了虛擬樣機(jī)技術(shù),不但縮短了研發(fā)周期、降低了研發(fā)成本,而且確保了最終產(chǎn)品一次接裝成功。我國從“九五”期間開始跟蹤和研究虛擬樣機(jī)的相關(guān)技術(shù),主要研究集中在虛擬樣機(jī)的概念、系統(tǒng)結(jié)構(gòu)以及相關(guān)的支撐技術(shù),應(yīng)用多集中在一些高精尖領(lǐng)域。近年來,才嘗試著將虛擬樣機(jī)技術(shù)用于一般機(jī)械的開發(fā)研制。天津大學(xué)與河北工業(yè)大學(xué)采用虛擬樣機(jī)技術(shù)聯(lián)合開發(fā)了沖擊式壓實(shí)機(jī),對其進(jìn)行了仿真計(jì)算,得到各部件的運(yùn)動規(guī)律曲線,驗(yàn)證了壓實(shí)機(jī)各部件參數(shù)值的合理性。【4】虛擬樣機(jī)概念正向廣度和深度發(fā)展,今后的虛擬樣機(jī)技術(shù)將更加強(qiáng)調(diào)部件、技術(shù)、知識的通用,強(qiáng)調(diào)便于虛擬樣機(jī)柔性協(xié)同的運(yùn)行管理的組織重構(gòu),強(qiáng)調(diào)跨領(lǐng)域技術(shù)的溝通支持,重點(diǎn)在以下幾個(gè)方面進(jìn)行研究:(1)基于虛擬樣機(jī)的優(yōu)化設(shè)計(jì):(2)以虛擬樣機(jī)為中心的并行設(shè)計(jì)設(shè)計(jì);(3)分析和仿真工具的集成;(4)虛擬樣機(jī)系統(tǒng)的容錯性研究。

713視景仿真技術(shù)簡介1.3.1視景仿真的定義和特點(diǎn)視景仿真又稱虛擬仿真虛擬現(xiàn)實(shí)仿真。它是21世紀(jì)最有前景的高科技技術(shù)之一,它是計(jì)算機(jī)技術(shù),圖形圖象技術(shù),光學(xué)技術(shù),控制技術(shù)等多種高科技的結(jié)合,是延伸人類感覺器官的一門科學(xué),通過對現(xiàn)實(shí)世界或者是人類想象的虛擬世界進(jìn)行三維建模并實(shí)時(shí)驅(qū)動,通過頭盔顯示器或者三維投影技術(shù)顯示出來。視景仿真(VisualSimulation)是一種基于可計(jì)算信息的沉浸式交互環(huán)境,具體地說,就是采用以計(jì)算機(jī)技術(shù)為核心的現(xiàn)代高科技生成逼真的視、聽、觸覺一體化的特定范圍的虛擬環(huán)境,用戶借助必要的設(shè)備以自然的方式與虛擬環(huán)境中的對象進(jìn)行交互作用、相互影響,從而產(chǎn)生“沉浸”于等同真實(shí)環(huán)境的感受和體驗(yàn)。其作為計(jì)算機(jī)技術(shù)中最為前沿的應(yīng)用領(lǐng)域之一,它已經(jīng)廣泛應(yīng)用于虛擬現(xiàn)實(shí)、模擬駕駛、場景再現(xiàn)、城市規(guī)劃及其它應(yīng)用領(lǐng)域。計(jì)算機(jī)仿真又稱全數(shù)字仿真,是根據(jù)相似原理,利用計(jì)算機(jī)來逼真模仿研究系統(tǒng)中的研究對象,將研究對象進(jìn)行數(shù)學(xué)描述,建模編程,并且在計(jì)算機(jī)中運(yùn)行實(shí)現(xiàn).作為計(jì)算機(jī)仿真的組成部分,視景仿真采用計(jì)算機(jī)圖形圖像技術(shù),根據(jù)仿真的目的.構(gòu)造仿真對象的三維模型并再現(xiàn)真實(shí)的環(huán)境,達(dá)到非常逼真的仿真效果.目前,視景仿真技術(shù)在我國已廣泛應(yīng)用于各種研究領(lǐng)域:軍事演練、城市規(guī)劃仿真、大型工程漫游、名勝古跡虛擬旅游、模擬訓(xùn)練以及交互式娛樂仿真等.視景仿真技術(shù)對作戰(zhàn)裝備的使用效果有很好的實(shí)時(shí)顯示,給人以強(qiáng)烈的視覺上的沖擊,對提高武器裝備的性能、研制效率有著重:要的作用1.3.2工業(yè)機(jī)器人視景仿真系統(tǒng)研究的意義由于機(jī)器人價(jià)格昂貴,以及機(jī)器人的作業(yè)空間需要較大而獨(dú)立的試驗(yàn)場地等諸多原因,不可能達(dá)到每個(gè)需要學(xué)習(xí)機(jī)器人的人都能親自操作機(jī)器人的要求。而可視化技術(shù)的出現(xiàn),使得人們能夠在三維圖形世界中觀察機(jī)器人,并通過計(jì)算機(jī)交互式對機(jī)器人進(jìn)行示教仿真。基于VC++6.0的OpenGL上的工業(yè)機(jī)器人的視景仿真系統(tǒng)可以提供?個(gè)真實(shí)的實(shí)驗(yàn)平臺,在不接觸實(shí)際機(jī)器人及其工作環(huán)境的情況下,通過圖形技術(shù),提供一個(gè)和機(jī)器人進(jìn)行交互的虛擬環(huán)境。此系統(tǒng)充分利用OpenGL的實(shí)時(shí)交互性,模擬工業(yè)機(jī)器人的示教/再現(xiàn)過程,可以在此系統(tǒng)上編輯工業(yè)機(jī)器人的程序并動態(tài)模擬工業(yè)機(jī)器人的運(yùn)動過程,觀察工業(yè)機(jī)器人的運(yùn)動結(jié)果,檢驗(yàn)所編寫工業(yè)機(jī)器人程序的正確性。進(jìn)行實(shí)物實(shí)驗(yàn)之前,可以先在仿真系統(tǒng)上進(jìn)行模擬仿真,觀察實(shí)驗(yàn)的運(yùn)動過程以及運(yùn)動結(jié)果,避免直接在現(xiàn)實(shí)中操作對工業(yè)機(jī)器人及周圍物體可能造成的傷害。另外,對于剛接觸工業(yè)機(jī)器人的操作員來說,此系統(tǒng)可以提供與現(xiàn)實(shí)工業(yè)機(jī)器人幾乎相同的操作步驟,在操作員真正操作工業(yè)機(jī)器人之前,可以增加其操作的熟練程度,增加安全系數(shù)。14本文要研究的主要內(nèi)容為了簡化研究,本文采用一個(gè)3自由度關(guān)節(jié)機(jī)器人,分別通過ADAMS軟件的建模和仿真,結(jié)合MATLAB的運(yùn)算功能,進(jìn)行了機(jī)器人運(yùn)動學(xué)分析和空間坐標(biāo)的軌跡規(guī)劃,實(shí)現(xiàn)運(yùn)動軌跡的最優(yōu)化。又在WindowsXP環(huán)境下,利用VisualC++6.0和OpenGL完

8成了基于模型的視景仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),具體工作如下:(1)進(jìn)行運(yùn)動學(xué)分析。按照通用的D-H法則,通過矩陣變換,得到了機(jī)器人的正運(yùn)動學(xué)方程和初始坐標(biāo),推導(dǎo)出機(jī)器人逆運(yùn)動學(xué)的關(guān)節(jié)角度。(2)在ADAMS/View中構(gòu)造機(jī)器人部件,運(yùn)用約束庫中的移動和旋轉(zhuǎn)副對部件進(jìn)行鏈接,添加驅(qū)動力,實(shí)現(xiàn)機(jī)器人的運(yùn)動,完成三維建模。(3)對機(jī)器人的運(yùn)行軌跡進(jìn)行多項(xiàng)式優(yōu)化,利用ADAMS/View的仿真和后處理模塊,繪制小臂末端處所取點(diǎn)的位置、速度、加速度、角速度和角加速度曲線,結(jié)合曲線進(jìn)行三次多項(xiàng)式和五次多項(xiàng)式軌跡規(guī)劃的仿真分析,并進(jìn)行比較分析。(4)利用VisualC++6.0和OpenGL導(dǎo)入并建立機(jī)械手模型,建立仿真場景,實(shí)現(xiàn)基于模型數(shù)據(jù)的運(yùn)動仿真,并實(shí)現(xiàn)視角的交互式鍵盤控制。

9第二章機(jī)器人運(yùn)動學(xué)機(jī)器人運(yùn)動學(xué)指研究機(jī)器人各個(gè)連桿相對運(yùn)動的空間幾何關(guān)系。在實(shí)際應(yīng)用中,最為感興趣的問題是機(jī)器人手部(即末端執(zhí)行器)相對于參考坐標(biāo)系的空間描述。機(jī)器人可以看成為?個(gè)開環(huán)的運(yùn)動鏈,該鏈?zhǔn)怯梢唤M桿件相連而成,其一端固定在基座上,另一端固定在機(jī)器人手部上。兩個(gè)桿件之間通過關(guān)節(jié)相連,關(guān)節(jié)由驅(qū)動器驅(qū)動,使桿件之間產(chǎn)生相對運(yùn)動,從而使機(jī)器人手部達(dá)到期望的位置和姿態(tài)。在機(jī)器人運(yùn)動學(xué)的研究過程中,又可以分為兩類基本問題,即機(jī)器人運(yùn)動學(xué)的正問題與逆問題。其中,機(jī)器人運(yùn)動學(xué)的正問題指在已知桿件幾何結(jié)構(gòu)參數(shù)和關(guān)節(jié)變量值的前提下,求解機(jī)器人手部相對于參考坐標(biāo)系的位置與姿態(tài)的問題;機(jī)器人運(yùn)動學(xué)的逆問題指根據(jù)機(jī)器人手部在笛卡爾坐標(biāo)系中的位置與姿態(tài)求解機(jī)器人各關(guān)節(jié)的關(guān)節(jié)變量值的問題?!?】2.1空間點(diǎn)和坐標(biāo)系的表示2.1.1空間點(diǎn)的向量表示在直角坐標(biāo)系中,可以用一個(gè)3X1的位置矢量來表示空間內(nèi)任意一點(diǎn)的位置。對于直角坐標(biāo)系中任意一點(diǎn)p的位置可以用3X1的位置矢量P表示為(2-1)如圖2-1所示,,和分別表示點(diǎn)P在當(dāng)前坐標(biāo)系中的三個(gè)坐標(biāo)軸方向的分量。這里P稱為位置矢量,這種表示法也可變化為如下形式:圖2-1空間點(diǎn)的位置表示(2-2)加入一個(gè)比例因子,使得,為的齊次坐標(biāo)?!?0】2.1.2坐標(biāo)系在固定參考坐標(biāo)系中的表示當(dāng)一個(gè)坐標(biāo)系位于另一個(gè)坐標(biāo)系中時(shí),如圖2-2所示,通常用三個(gè)互相垂直的單位向量n、o、a表示,這三個(gè)變量分別代表法線(normal)>指向(orientation)與接近(approach)向量(如圖2-2所示每一個(gè)單位向量都可以由它所在參考坐標(biāo)系中的三個(gè)分量表示,這樣,坐標(biāo)系F就可以表示為由四個(gè)向量組成的矩陣:

10(2-3)圖2-2一個(gè)坐標(biāo)系在另一個(gè)坐標(biāo)系中的表示式(2-3)中前三個(gè)列向量取w=0,表明該坐標(biāo)系三個(gè)單位向量n、o、a的方向。而第四個(gè)列向量中w=l,表示該坐標(biāo)系相對于參考坐標(biāo)系的位置。2.1坐標(biāo)系的變換坐標(biāo)系的變換包括繞固定參考坐標(biāo)系的變換和繞運(yùn)動參考坐標(biāo)系的變換。2.1.1齊次變換空間中一個(gè)坐標(biāo)系相時(shí)于固定的參考坐標(biāo)系的運(yùn)動稱為齊次變換。齊次變換可以是平移運(yùn)動,可以是旋轉(zhuǎn)運(yùn)動,也可以是平移與旋轉(zhuǎn)的復(fù)合運(yùn)動。(1)純平移齊次變換如果一個(gè)坐標(biāo)系(它可能表示的是一個(gè)物體)在空間運(yùn)動中相對于固定參考坐標(biāo)系的姿態(tài)不發(fā)生變化,即該坐標(biāo)系的三個(gè)單位向量方向不變,只改變它的坐標(biāo)原點(diǎn)位置,則稱這種運(yùn)動為平移運(yùn)動。如圖2-3所示,坐標(biāo)系{A}沿平移向量d平移到新的位置:(2-4)其中是平移向量d相對于固定參考系三個(gè)坐標(biāo)軸方向的分量。【7】圖2-3坐標(biāo)系的平移平移后新的坐標(biāo)系原點(diǎn)位置向量可以表示為原來坐標(biāo)系的原點(diǎn)位置向量與位移向量d的矢量和。若采用矩陣形式,新坐標(biāo)系的矩陣表示可以通過將坐標(biāo)系左乘變換矩陣。由于平移過程中方向向量保持不變,所以平移變換矩陣T可以簡單地表示為:(2-5)可以看到,矩陣的前三列沒有旋轉(zhuǎn)運(yùn)動(等同于單位矩陣),而最后一列表示平移運(yùn)動,這個(gè)方程可以用符號表示如下:(2-6)即(2-7)(2)繞軸純旋轉(zhuǎn)齊次變換為了簡化旋轉(zhuǎn)變換的推導(dǎo),假設(shè)坐標(biāo)系{B}位于坐標(biāo)系{A}的原點(diǎn)。純旋轉(zhuǎn)就是{B}坐標(biāo)系在空間中運(yùn)動中相對于固定參考坐標(biāo)系{A}的位置不發(fā)生變化,即只改變該坐標(biāo)系三個(gè)單位向量的方向而不改變其原點(diǎn)位置。這樣坐標(biāo)系{B}可以由坐標(biāo)系{A}經(jīng)過旋轉(zhuǎn)次變換后得到,由此可以推廣到其他旋轉(zhuǎn)情況。設(shè)向量x,y,z為坐標(biāo)系{A}的三個(gè)單位向量,空間任意一點(diǎn)p的位置可以用向量p表示。向量p在坐標(biāo)系{A}中的表示為:(2-8)向量p在坐標(biāo)系{B}中的表示為:

11(2-9)則向量在坐標(biāo)系{A}中的投影分別為(2-10)(2-11)(2-12)寫成齊次矩陣形式則為:(2-13)(2-14)當(dāng)坐標(biāo)系{B}只相對于坐標(biāo)系{A}單個(gè)軸轉(zhuǎn)動時(shí)稱為基本變換矩陣。如坐標(biāo)系{B}只繞坐標(biāo)系{A}的x軸轉(zhuǎn)動角度0時(shí),基本轉(zhuǎn)動變換矩陣記為Rot(x,。),由式(2-14)可以計(jì)算得:(2-15)可以用同樣的方法來分析坐標(biāo)系{B}繞坐標(biāo)系{A}的y軸和z軸旋轉(zhuǎn)的情況,結(jié)果如下:(2-16)(2-17)(3)復(fù)合齊次變換復(fù)合齊次變換是有由固定坐標(biāo)系或當(dāng)前運(yùn)動坐標(biāo)系的一系列沿軸平移和繞軸旋轉(zhuǎn)變換所組成的,此時(shí)該固定坐標(biāo)系在參考系中不僅原點(diǎn)位置發(fā)生變化,同時(shí)它的三個(gè)坐標(biāo)軸單位向量的方向也發(fā)生變化。此時(shí)的變換順序很重要,變換順序不同,結(jié)果不同。我們假設(shè)坐標(biāo)系(n,o,a)相對于參考坐標(biāo)系(x,y,z)依次進(jìn)行了下列四個(gè)變換:繞z軸旋轉(zhuǎn)9度繞z軸平移d繞x軸平移a繞x軸旋轉(zhuǎn)a度則復(fù)合齊次變換可由下式求解:(2-18)可見,齊次變換矩陣是由一組平移和旋轉(zhuǎn)矩陣依次左乘獲得,矩陣書寫的順序和進(jìn)行變換的順序正好相反,而且變換的順序不能更改,否則結(jié)果會隨之改變?!?】2.1.1坐標(biāo)系相對于旋轉(zhuǎn)坐標(biāo)系的變換前面我們所討論的所有變換都是相對于固定參考坐標(biāo)系的。也就是說,所有平移和旋轉(zhuǎn)都是相對于參考坐標(biāo)系的軸來測量的。然而事實(shí)上,也有可能相對于運(yùn)動坐標(biāo)系或當(dāng)前坐標(biāo)系的軸的變換。例如,相對于運(yùn)動坐標(biāo)系(當(dāng)前坐標(biāo)系)的n軸而不是參考坐標(biāo)系的x軸旋轉(zhuǎn)0度。為了計(jì)算當(dāng)前坐標(biāo)系中點(diǎn)的坐標(biāo)相對于參考坐標(biāo)系的變化,我們需要右乘變換矩陣而不是左乘。由于運(yùn)動坐標(biāo)系中的點(diǎn)或剛體的位置總是相時(shí)于運(yùn)動坐標(biāo)系測量的,所以必須右乘來表示該點(diǎn)或剛體的位置矩陣。

122.1.1變換矩陣的逆在分析機(jī)器人時(shí),如果已知坐標(biāo)系{B}相對于坐標(biāo)系{A}的值,為了得到{A}相對于{B}的描述,需要求這個(gè)矩陣的逆。一個(gè)直接求逆的方法就是將44齊次變換求逆。同樣,我們還可以通過變換的性質(zhì)求逆。下面是關(guān)于x軸簡單旋轉(zhuǎn)矩陣的求逆過程。旋轉(zhuǎn)矩陣如下:(2-19)我們采用以下的步驟來計(jì)算旋轉(zhuǎn)矩陣的逆:1)計(jì)算矩陣的行列式2)將矩陣轉(zhuǎn)置3)將轉(zhuǎn)置矩陣的每個(gè)元素用它的子行列式代替4)用轉(zhuǎn)置后的矩陣除以行列式通過以上步驟我們得到:(2-20)關(guān)于x軸的旋轉(zhuǎn)矩陣的逆與它的轉(zhuǎn)置矩陣相同,即:(2-21)2.2機(jī)器人的正逆運(yùn)動學(xué)對于一個(gè)已知構(gòu)型的機(jī)器人,當(dāng)它的連桿長度和關(guān)節(jié)角度都已知時(shí),計(jì)算機(jī)器人手的位姿就稱為正運(yùn)動學(xué)。也就是說,如果已知機(jī)器人所有的關(guān)節(jié)變量,用正運(yùn)動學(xué)方程就能計(jì)算任一瞬間機(jī)器人的位置和姿態(tài)。如果要將機(jī)器人的手放到一個(gè)期望的位姿,就必須知道機(jī)器人所有關(guān)節(jié)的長度和角度。由機(jī)器人手的位姿來求關(guān)節(jié)和連桿變量的過程就稱為機(jī)器人的逆運(yùn)動學(xué)。對于正運(yùn)動學(xué),必須推導(dǎo)出一組特定方程,我們只要將己知的關(guān)節(jié)和連桿變量代入方程就能計(jì)算出機(jī)器人的位姿,然后再根據(jù)這些方程求解出逆運(yùn)動學(xué)方程。在空間中,要確定一個(gè)物體的幾何狀態(tài)需要確定其3個(gè)位移坐標(biāo)(位置)和三個(gè)旋轉(zhuǎn)坐標(biāo)(姿態(tài))。機(jī)器人手部的空間位置和姿態(tài)的表示可以借助一個(gè)固連在它上面的參考坐標(biāo)系來表示,只要這個(gè)坐標(biāo)系可以在基座的參考坐標(biāo)系的空間中表示出來,那么該機(jī)器人手部相對于基座的位姿就是已知的了,可采用齊次坐標(biāo)變換的方法完成這兩個(gè)坐標(biāo)系的坐標(biāo)轉(zhuǎn)化。圖2-3機(jī)器人手的位置和姿態(tài)描述機(jī)器人手部的位姿如圖2-3所示,可由固接在機(jī)器人手部的坐標(biāo)系{B}來表示。該坐標(biāo)系由其原點(diǎn)位置和三個(gè)單位矢量(n,o,a)唯一確定。坐標(biāo)系{A}表示固連在機(jī)器人基座上的固定參考坐標(biāo)系。向量P為坐標(biāo)系{B}原點(diǎn)在坐標(biāo)系{A}中的位置矢量。前面已經(jīng)討論過了一個(gè)坐標(biāo)系在固定坐標(biāo)系的表示故這里直接給出坐標(biāo)系{B}在坐標(biāo)系{A}中的位姿的表示:(2-22)

132.1.1正運(yùn)動學(xué)的D-H表示法機(jī)器人建模采用的是Denavit和Hartenberg提出來的標(biāo)準(zhǔn)方法,我們簡稱為D-H模型,該模型可用于任何復(fù)雜的機(jī)器人構(gòu)型。假設(shè)機(jī)器人由一系列的關(guān)節(jié)和連桿構(gòu)成,這些關(guān)節(jié)包括滑動的和旋轉(zhuǎn)的,連桿長度任意,確保在空間能構(gòu)成任意想要的機(jī)器人模型。為了表示這個(gè)模型,我們需要為每個(gè)關(guān)節(jié)指定一個(gè)參考坐標(biāo)系,然后再考慮從一個(gè)關(guān)節(jié)到下一個(gè)關(guān)節(jié)的變換。假設(shè)一個(gè)機(jī)器人由任意多的連桿和關(guān)節(jié)以任意形式構(gòu)成。如圖24所示,任意三個(gè)順序連接的關(guān)節(jié)和連桿,每個(gè)關(guān)節(jié)都可以平移或旋轉(zhuǎn)。指定第一個(gè)關(guān)節(jié)為關(guān)節(jié)n,第二個(gè)第三個(gè)關(guān)節(jié)分別為n+1和n+2,連桿n位于關(guān)節(jié)n和n+1之間,連桿n+1位于關(guān)節(jié)n+1和關(guān)節(jié)n+2之間,這些關(guān)節(jié)和連桿前后還有其他連桿和關(guān)節(jié)。圖2-4關(guān)節(jié)-連桿組合的通用D-H表示法D-H表示法建模的第一步是為每個(gè)關(guān)節(jié)指定本地參考坐標(biāo)系,每個(gè)關(guān)節(jié)都必須指定x軸和軸,由于D-H法不用y軸,一般不指定y軸。具體步驟如下:所有關(guān)節(jié)用軸表示,如果關(guān)節(jié)是旋轉(zhuǎn),軸位于按右手規(guī)則旋轉(zhuǎn)的方向,如果關(guān)節(jié)是滑動的,軸為沿直線運(yùn)動的方向。關(guān)節(jié)n處軸的下標(biāo)記作n-屋對于旋轉(zhuǎn)關(guān)節(jié),繞軸的旋轉(zhuǎn)(角)是關(guān)節(jié)變量,對于滑動關(guān)節(jié),沿軸的連桿長度d是關(guān)節(jié)變量。如圖24所示,通常關(guān)節(jié)不一定平行或相交,因此z軸通常是斜線,但總有一條公垂線,正交于任意兩條斜線。通常在公垂線方向上定義本地參考坐標(biāo)系的x軸。例如表示和之間的公垂線,的方向即沿方向。如果兩個(gè)關(guān)節(jié)的軸平行,那么它們之間就有無數(shù)條公垂線,我們可以挑選與前一公垂線共線的公垂線,從而簡化模型。若兩相鄰的關(guān)節(jié)軸相交,則不存在公垂線,我們選擇垂直于兩軸平面的任意直線,同樣簡化了模型。在圖24中,角表示繞軸的旋轉(zhuǎn),表示軸上兩相鄰公垂線之間的距離,表示每一條公垂線的長度,角表示相鄰兩軸的夾角。通常只有和是變量。從一個(gè)參考坐標(biāo)系變換到另一個(gè)參考坐標(biāo)系(例如從-到-),可以通過以下四步標(biāo)準(zhǔn)運(yùn)動實(shí)現(xiàn):繞軸旋轉(zhuǎn),使得和相互平行且共面。沿軸平移距離,使得和共線。沿軸平移距離,使得的原點(diǎn)重合,此時(shí)兩個(gè)坐標(biāo)系的原點(diǎn)在同一位置。將軸繞旋轉(zhuǎn),使得和對準(zhǔn)。至此,坐標(biāo)系和坐標(biāo)系+1完全一致,變換結(jié)束。在+1和+2坐標(biāo)系間按照同樣的運(yùn)動順序也可以實(shí)現(xiàn)坐標(biāo)系間的變換。我們可以從參考坐標(biāo)系開始,轉(zhuǎn)換到機(jī)器人底座,再到第一個(gè)關(guān)節(jié),依次下去直至末端執(zhí)行器。每個(gè)變換矩陣(記作A)都是由上述四個(gè)矩陣依次右乘的結(jié)果:(2-23)(2-24)從機(jī)器人基座到手(末端執(zhí)行器)之間的總變換可以表示為:(2-25)為了簡化計(jì)算,我們?yōu)殛P(guān)節(jié)和連桿參數(shù)制作一個(gè)表格,每個(gè)參數(shù)可以從機(jī)器人的原理圖上讀出,計(jì)算時(shí)再這些參數(shù)代入A矩陣。在本文中設(shè)計(jì)的簡單三自由度機(jī)器人模型參數(shù)如圖2-5所示。所有鏈接采用旋轉(zhuǎn)關(guān)節(jié),D-H參數(shù)如表2-1所示。圖2-5簡單三自由度機(jī)器人(單位:英寸)

14表2-1機(jī)器人D-H參數(shù)表(逆轉(zhuǎn)為正,順轉(zhuǎn)為負(fù))連桿ida190°000°200650-90°3-30002000°4-30001500°將上述角度值代入式(2-25),運(yùn)用MATLAB進(jìn)行計(jì)算出機(jī)器人初始位置坐標(biāo):2.1.1逆運(yùn)動學(xué)方程的求解為了讓機(jī)器人處于適當(dāng)?shù)奈蛔?,我們需要求解每個(gè)關(guān)節(jié)的角度值,這就是機(jī)器人的逆運(yùn)動學(xué)。我們可以通過矩陣左乘來求解,如下:(2-26)為了求解角度,我們從開始,依次左乘上述矩陣,得到每個(gè)關(guān)節(jié)角度表達(dá)式:(2-27)因此,我們的三自由度機(jī)器人逆運(yùn)動關(guān)節(jié)角度表達(dá)(2-28)24微分運(yùn)動微分運(yùn)動即機(jī)器人的微小運(yùn)動,可以用它來推導(dǎo)不同部件之間的速度關(guān)系。圖2-6(a)具有兩自由度平面結(jié)構(gòu)(b)速度圖如圖所示的兩個(gè)自由度的簡單機(jī)構(gòu),表示第一個(gè)連桿相對于參考坐標(biāo)系的旋轉(zhuǎn)角度,表示第二個(gè)連桿相對于第一個(gè)連桿的旋轉(zhuǎn)角度。B點(diǎn)的速度可以計(jì)算如下:(2-29)將速度方程寫成矩陣形式得到如下結(jié)果:(2-30)方程左邊表示B點(diǎn)速度的x,y分量。B點(diǎn)的位置我們可以用下述方程表示:(2-31)對方程中的和微分,寫成矩陣形式如下:

15(2-32)我們看到,(2-29)和(2-31)式在形式上很相像,只是前者表示的是速度關(guān)系,后者表示的是微分運(yùn)動的關(guān)系。因此在機(jī)器人運(yùn)動中,我們可以將關(guān)節(jié)的微分運(yùn)動與速度聯(lián)系起來。

16第三章基于ADAMS的機(jī)器人的虛擬樣機(jī)分析3.1ADAMS概述美國MSC.Software公司在2003年3月收購了全球最大機(jī)構(gòu)的仿真軟件、咨詢服務(wù)、系統(tǒng)集成供應(yīng)商MDI/ADAMSoMSC.Software公司的ADAMS軟件是虛擬樣機(jī)領(lǐng)域內(nèi)廣泛使用的軟件,可以使工程師、設(shè)計(jì)人員能夠在物理樣機(jī)構(gòu)造前,建立機(jī)械系統(tǒng)的“模擬樣機(jī)”,預(yù)估出機(jī)器的工作性能。ADAMS軟件具有如下特點(diǎn):(1)分析類型包括運(yùn)動學(xué)、靜力學(xué)分析以及線性和非線性動力學(xué)分析(2)具有二維和三維建模能力(3)具有50余種聯(lián)結(jié)副、力和發(fā)生器組成的庫和強(qiáng)大的函數(shù)庫(4)具有組裝、分析和動態(tài)顯示模型的功能,包含剛體和柔體分析(5)具有與CAD、UG、Pro/E,Matlab、ANSYS等軟件的專用接口(6)具有開放式結(jié)構(gòu),允許用戶集成自己的子程序基于ADAMS的虛擬樣機(jī)技術(shù)是在制造物理樣機(jī)前,利用計(jì)算機(jī)技術(shù)建立該產(chǎn)品的數(shù)學(xué)模型,通過基于實(shí)體的可視化仿真分析,模擬該系統(tǒng)在實(shí)際工作環(huán)境中的運(yùn)動學(xué)和動力學(xué)特性,并反復(fù)修改設(shè)計(jì),從而得到最優(yōu)方案。A創(chuàng)建模型創(chuàng)建機(jī)械系統(tǒng)模型時(shí),首先要創(chuàng)建構(gòu)成模型的各個(gè)零部件。零部件創(chuàng)建完后,需要使用運(yùn)動關(guān)節(jié)約束庫創(chuàng)建零部件之間的約束副,確定部件之間的連接情況以及仿真過程中構(gòu)件之間的位置關(guān)系。最后,施加運(yùn)動及各種載荷使樣機(jī)按照設(shè)計(jì)要求進(jìn)行仿真。B測試驗(yàn)證模型并細(xì)化模型創(chuàng)建過程中和完成后,都可以對模型進(jìn)行運(yùn)動仿真測試。通過對?模型的性能測試,驗(yàn)證設(shè)計(jì)方案的正確性,然后,在模型中增加更復(fù)雜的因素,進(jìn)一步細(xì)化模型。為便于不同方案的比較,通過設(shè)計(jì)變量不同取值的迭代仿真,求出設(shè)計(jì)變量的最優(yōu)值。C優(yōu)化設(shè)計(jì)采用設(shè)計(jì)和優(yōu)化分析的研究手段,確定各個(gè)設(shè)計(jì)變量相對于解算結(jié)果的靈敏度并最終確定目標(biāo)函數(shù)的最優(yōu)值?!?】3.2ADAMS中機(jī)器人模型的建立本文機(jī)械手模型參考了PUMA機(jī)器人的結(jié)構(gòu),建模過程中依照模塊化的思想先繪制各個(gè)部件,然后通過布爾運(yùn)算和參數(shù)的調(diào)整,完成建模?!?5】

173.2.1設(shè)置建模環(huán)境打開ADAMS/View,選擇創(chuàng)建新模型,將機(jī)械手模型命名為model_2jixieshou,其他采用系統(tǒng)默認(rèn)值,進(jìn)入建模界面。在建模界面中,首先要設(shè)定工作柵格,點(diǎn)擊菜單Settings中的WorkingGird.如圖3-1所示,根據(jù)建模需要,柵格范圍設(shè)置為1000X1000(mm),大小為50X50(mm).圖3-1工作柵格設(shè)置設(shè)置完工作柵格就可以開始建模。3.2.2機(jī)器人實(shí)體建模ADAMS/View中集成了很多圖形模板,包括點(diǎn),線,面,體各方面。我們構(gòu)建的是機(jī)器人的三維立體模型,其主要部件都是剛體。ADAMS中的剛體模板包括圓柱,圓錐,長方體,球體,拉伸體,平板等。我們選擇圓柱體(圓盤)作為機(jī)器人的底座,圓柱體作為機(jī)器人的腰部,拉伸體作為機(jī)器人的手臂。在建模過程中,作者一直根據(jù)模塊化的原則,在建立每一個(gè)部件的過程中都同時(shí)通過布爾運(yùn)算等對模塊進(jìn)行優(yōu)化,很好的美化了模型,并且是模型更加合理。這種工作方法為最后的總裝提供和很大的便利和好處,節(jié)省了很多時(shí)間,提高了工作效率,值得在其他工作中借鑒。由于建模過程主要是ADAMS軟件的操作過程,如果對ADAMS比較熟悉這個(gè)過程就很簡單。本文不再對建模過程做詳細(xì)介紹。建立好的機(jī)械手實(shí)體模型如下圖3-2所示:圖3-2機(jī)械手實(shí)體模型3.2.3機(jī)器人模型的設(shè)置機(jī)器人實(shí)體模型建好以后,應(yīng)對其屬性進(jìn)行修改。我們設(shè)計(jì)用的機(jī)器人材料為鋁材,初始位移為各個(gè)點(diǎn)的初始位置,初始速度設(shè)置為零。選定材料后,物體的密度就自動確定了,同時(shí)系統(tǒng)會自動計(jì)算構(gòu)件的質(zhì)量。然后對關(guān)節(jié)添加相應(yīng)的約束和驅(qū)動力。如果我們要模擬某些特殊的工作過程,我們還應(yīng)該在相應(yīng)的位置處添加力和力矩。如我們模擬提升物體的操作過程,那么我們就在小臂(PART6)的端部PART6_MARKER_6處添加一個(gè)大小為10N方向向下的力。完成這個(gè)設(shè)置后機(jī)器人的模型如下圖3-3所示:圖3-3機(jī)器人最終模型至此,我們已經(jīng)完成了三自由度機(jī)器人的建模過程,通過軟件自檢功能,可以判定模型正確與否,建模完成以后就可以進(jìn)行運(yùn)動學(xué)仿真分析。

183.3軌跡規(guī)劃仿真分析完成建模過程后,我們就可以運(yùn)用軟件的仿真功能對模型的運(yùn)動學(xué),靜力學(xué),動力學(xué)進(jìn)行分析,本文對所建立的模型進(jìn)行了運(yùn)動學(xué)的理論分析,然后又結(jié)合軌跡規(guī)劃進(jìn)行了仿真分析。軌跡規(guī)劃一般分為兩種:一種是在關(guān)節(jié)空間進(jìn)行規(guī)劃,將關(guān)節(jié)變量表示成時(shí)間的函數(shù),并規(guī)劃它的一階和二階時(shí)間導(dǎo)數(shù):另一種是在直角空間(笛卡爾空間)進(jìn)行規(guī)劃,將末端位姿、速度、加速度表示為時(shí)間的函數(shù),而相應(yīng)的關(guān)節(jié)位移、速度和加速度由末端信息導(dǎo)出?!?2】本文分別給出了對模型進(jìn)行關(guān)節(jié)空間和直角空間軌跡規(guī)劃方法的理論分析,并在ADAMS/View的仿真和后處理模塊中利用ADAMS內(nèi)嵌的step函數(shù)對關(guān)節(jié)空間內(nèi)三次多項(xiàng)式和五次多項(xiàng)式軌跡規(guī)劃進(jìn)行了分析比較。3.3.1軌跡規(guī)劃方法的理論分析(1)關(guān)節(jié)空間內(nèi)三次多項(xiàng)式軌跡規(guī)劃假設(shè)機(jī)器人的初始位姿是已知的,通過逆運(yùn)動學(xué)方程可以求得期望位姿對應(yīng)的關(guān)節(jié)角。若考慮其中某一關(guān)節(jié)在運(yùn)動開始時(shí)刻的角度,希望該關(guān)節(jié)在時(shí)刻運(yùn)動到新的角度,使用多項(xiàng)式函數(shù)可以保證初始和末端的邊界條件與已知條件相匹配,這些條件信息可以求解下面的三次多項(xiàng)式方程。(3-1)這里的初始條件和末端條件是:(3-2)對4-1式求導(dǎo),得:(3-3)將4-2式分別代入4-1和4-3式得:(3-4)聯(lián)立求解這四個(gè)方程就可以得到任意時(shí)刻的關(guān)節(jié)位置,控制器則據(jù)此來驅(qū)動關(guān)節(jié)。每個(gè)關(guān)節(jié)分別規(guī)劃,同步運(yùn)行。如果要求機(jī)器人依次通過多個(gè)點(diǎn),則每一段末端求解出的速度和位置都可用作F一段的初始條件,每一段的軌跡都可采用上述的三次多項(xiàng)式來規(guī)劃。針對本文設(shè)計(jì)的三自由度機(jī)器人,在其初始位置基礎(chǔ)下,我們要求機(jī)器人手臂在6s后分別運(yùn)動=180°,=60°,=30°。

19表4.1三次多項(xiàng)式規(guī)劃關(guān)節(jié)角度00.00000.00000.0000113.33334.44442.2222246.666715.55567.7778390.000030.000015.00004133.333344.444422.22225166.666755.555627.77786180.000060.000030.0000將上述邊界條件代入44式,解得第一個(gè)關(guān)節(jié)軌跡參數(shù)為=0,=0,=15,=-5/3軌跡方程為:;同樣可得出第二個(gè)關(guān)節(jié)軌跡參數(shù)=0,=0,=5,=-5/9軌跡方程為:;第三個(gè)關(guān)節(jié)參數(shù)=0,=0,=5/2,=-5/18軌跡方程為:我們將運(yùn)動過程分為5段,則每秒鐘機(jī)器人運(yùn)動的關(guān)節(jié)角度如表4-1所示。(2)關(guān)節(jié)空間內(nèi)五次多項(xiàng)式軌跡規(guī)劃在三次多項(xiàng)式規(guī)劃中,我們采用的邊界條件是起點(diǎn)和終點(diǎn)的位置與速度,如果同時(shí)指定起點(diǎn)和終點(diǎn)的加速度,這樣邊界條件就增加到6個(gè),可以用同樣的方法進(jìn)行五次多項(xiàng)式的規(guī)劃:(3-5)(3-6)(3-7)(3)關(guān)節(jié)空間內(nèi)拋物線過渡的線性運(yùn)動軌跡規(guī)劃在關(guān)節(jié)空間軌跡規(guī)劃的另一種方法就是讓關(guān)節(jié)以恒定的速度在起點(diǎn)和終點(diǎn)之間運(yùn)動,軌跡方程相當(dāng)于一次多項(xiàng)式,速度為常數(shù),加速度為零。這樣意味著在起點(diǎn)和終點(diǎn)的加速度必須為無窮大,為避免這一情況,線性運(yùn)動在起點(diǎn)和終點(diǎn)可以用拋物線來過渡。如圖4-6,拋物線與直線過渡段在時(shí)間和處是對稱的,由此得到:(3-8)圖4-6拋物線過渡的線性段規(guī)劃方法此時(shí)拋物線運(yùn)動段的加速度為一常數(shù),在A點(diǎn)和B點(diǎn)速度連續(xù),將邊界條件代入得:從而得出拋物線的方程為:(3-9)將零初速度,線性段常值速度以及零末端速度代入上式,得到:(3-10)從而可求出過渡時(shí)間:

20(3-11)顯然,不能大于總時(shí)間的一半,否則整個(gè)過程中只有加減速而沒有直線運(yùn)動。終點(diǎn)的拋物線段與起點(diǎn)是時(shí)稱的,只是加速度為負(fù)而已。我們依然用設(shè)計(jì)的三自由度機(jī)器人來進(jìn)行規(guī)劃。在其初始位置基礎(chǔ)上,我們要求機(jī)器人手臂在6s后分別運(yùn)動=180°,=60°,=30°中間勻速運(yùn)動的速度分別為,,,那么過渡時(shí)間分別為:勻加速,勻速,勻減速運(yùn)動方程分別如下:第一個(gè)關(guān)節(jié)角:第二個(gè)關(guān)節(jié)角:第三個(gè)關(guān)節(jié)角:則在0s到6s關(guān)節(jié)的角度分別如表4-2所示:表4-2拋物線過渡規(guī)劃關(guān)節(jié)角度0000140/3632501893903015413042215500/35461806030(4)直角空間軌跡規(guī)劃直角坐標(biāo)空間軌跡與機(jī)器人相對于直角坐標(biāo)系的運(yùn)動有關(guān),機(jī)器人末端執(zhí)行器的位姿就是沿循直角坐標(biāo)空間的軌跡。實(shí)際上所有的關(guān)節(jié)空間軌跡規(guī)劃的方法都可用于直角坐標(biāo)空間的軌跡規(guī)劃。其差別在于:對于關(guān)節(jié)空間的軌跡規(guī)劃,規(guī)劃函數(shù)生成的值就是關(guān)節(jié)值,而直角坐標(biāo)空間軌跡規(guī)劃函數(shù)生成的值是機(jī)器人末端執(zhí)行器的位姿,必須通過反復(fù)求解逆運(yùn)動學(xué)方程來計(jì)算關(guān)節(jié)角。其過程可以綜合如下:將時(shí)間增加一個(gè)增量;

21利用所選擇的軌跡函數(shù)計(jì)算末端執(zhí)行器的位姿;利用機(jī)器人逆運(yùn)動學(xué)方程計(jì)算位姿對應(yīng)的關(guān)節(jié)量;將關(guān)節(jié)信息傳遞給控制幫;重復(fù)以上循環(huán)過程。3.3.1軌跡規(guī)劃仿真分析(1)三次多項(xiàng)式軌跡規(guī)劃仿真分析我們在ADAMS里進(jìn)行三次多項(xiàng)式軌跡仿真時(shí),用的是STEP函數(shù)。[13]STEP函數(shù)利用的是三次多項(xiàng)式逼近海賽階躍函數(shù)。STEP階躍函數(shù)有連續(xù)的一階導(dǎo),但在起點(diǎn)處的二階導(dǎo)不連續(xù),在速度圖像上表現(xiàn)為速度連續(xù)但加速度不連續(xù)。我們設(shè)定機(jī)器人三個(gè)部分在6s時(shí)間內(nèi)分別轉(zhuǎn)動180。,60°,30。,為了分析其運(yùn)動特性,我們分別選取機(jī)器人小臂PART6末端的PART6_MARKER_6點(diǎn)的運(yùn)動參數(shù)進(jìn)行分析。機(jī)器人小臂末端的PART6_MARKER_6在X,Y,Z三個(gè)方向上的位移曲線如下:圖4-7PART6_MARKER_6在X,Y,Z三個(gè)方向上的位移圖從上圖中我們看到,在三次多項(xiàng)式規(guī)劃條件下,X,Y,Z三個(gè)方向上的點(diǎn)都呈現(xiàn)出起伏變化,與勻速驅(qū)動條件下情況不同。PART6_MARKER_6點(diǎn)從(248.2051,70.0962,-40.0)運(yùn)動到(-303.1089,475.0,40.0)處。PART6_MARKER_6速度和加速度曲線如圖4-8所示,我們可以看到,速度由Omm/s增大到297.6708mm/s,然后又逐漸下降到Omm/s,而加速度最大值達(dá)到了253.6641mm/,并且在0.012s和5.988/s處存在突變。圖4-8PART6_MARKER_6速度和加速度圖像PART6_MARKER_6角速度和角加速度曲線如圖4-9所示,PART6_MARKER_6角速度和角加速度變化與速度變化類似,最大角速度為50.3512d/s,角加速度最大為33.4069〃,在0.012s和5.988/s處存在突變。圖4-9PART6_MARKER_6角速度和角加速度圖像(2)五次多項(xiàng)式軌跡規(guī)劃仿真分析我們運(yùn)用ADAMS內(nèi)嵌的steP5函數(shù)對機(jī)器人關(guān)節(jié)進(jìn)行五次多項(xiàng)式軌跡規(guī)劃,step5函數(shù)是通過五次多項(xiàng)式逼近海塞階躍函數(shù)。同樣選取我們分別選取機(jī)器人小臂PART6末端PART6_MARKER_6點(diǎn)的運(yùn)動參數(shù)進(jìn)行分析。PART6_MARKER_6在X,Y,Z三個(gè)方向上的位移曲線如圖4-16所示:圖4-16PART6_MARKER_6在X,Y,Z三個(gè)方向上的位移圖像從上圖中我們可以看出,三次多項(xiàng)式和五次多項(xiàng)式軌跡規(guī)劃相比,機(jī)器人手臂末端的始末位置不變,都是從(248.2051,70.0962,-40.0)運(yùn)動到(-303.1089,475.0,40.0),中間點(diǎn)的位移也沒太大變化。但是其速度和加速度等運(yùn)動參數(shù)變化卻比較大。五次多項(xiàng)式軌跡規(guī)劃條件下PART6_MARKER_6的速度和加速度曲線如圖4-17所示:

22圖4-17PART6_MARKER_6的速度和加速度圖像PART6_MARKER_6的角速度和角加速度曲線如圖4-18所示:圖4-18PART6_MARKER_6的角速度和角加速度圖像從上面的圖像中我們可以看到,PART6_MARKER_6的速度先增后減,加速度變化也一樣。速度從開始時(shí)刻的Omm/s增大到中間時(shí)刻的370.1791mm/s再減小到終點(diǎn)時(shí)刻的Omm/s,加速度變化較三次多項(xiàng)式規(guī)劃時(shí)平緩,不存在突變點(diǎn)。在Os時(shí)最小,為0mm/,中間時(shí)刻達(dá)到最大值396.2381mm/,然后逐漸下降到終點(diǎn)時(shí)的0mm/.角速度和角加速度的變化情況如下:最大角速度為62.8912d/s,最大角加速度為32.826d/,角加速度不存在明顯突變。(3)軌跡規(guī)劃比較分析從上面的兩種軌跡仿真結(jié)果中可以看出,三次多項(xiàng)式軌跡規(guī)劃和五次多項(xiàng)式軌跡規(guī)劃最大的區(qū)別就在前者的加速度和角加速度在中間點(diǎn)存在跳變,而后者的加速度和角加速度的變化則趨于平緩。我們對兩種情況下PART6_MARKER_6點(diǎn)的運(yùn)動參數(shù)變化情況進(jìn)行比較,如下表所示:表4-3PART3_MARKER_12點(diǎn)的運(yùn)動參數(shù)比較比較項(xiàng)目三次多項(xiàng)式五次多項(xiàng)式最大速度mm/s297.6708370.1791最大加速度mm/253.6641396.2381加速度突變有無最大角速度d/s50.351262.8912最大角加速度d/33.406932.826角加速度突變有無之所以有這種區(qū)別,原因在于三次多項(xiàng)式軌跡規(guī)劃中,我們的邊界條件只有四個(gè),初始位移和速度,終點(diǎn)的位移和速度:而在五次多項(xiàng)式軌跡規(guī)劃中,我們的初始條件中包含了加速度,分別為初始位移、速度和加速度,終點(diǎn)位移、速度和加速度。因此在一般的三次多項(xiàng)式軌跡規(guī)劃中,我們應(yīng)該加入最大速度變化的限制條件,從而保證機(jī)器人的運(yùn)動更平穩(wěn)。

23第四章基于模型的視景仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)隨著機(jī)器人研究的不斷深入,機(jī)器人三維可視化技術(shù)作為機(jī)器人設(shè)計(jì)和研究中安全可靠、靈活方便的工具,越來越受到重視。機(jī)器人的三維圖形仿真,就是要建立一個(gè)精確、逼真的機(jī)器人模型以及機(jī)器人工作環(huán)境。三維可視化是數(shù)學(xué)模擬和科學(xué)計(jì)算可視化技術(shù)相結(jié)合的產(chǎn)物,它一般包括兩方面內(nèi)容:一是將傳統(tǒng)數(shù)字仿真計(jì)算的結(jié)果轉(zhuǎn)換為圖形和圖像形式;二是仿真交互界面可視化,即具有可視化交互和動畫展示能力,要求能夠?qū)崟r(shí)跟蹤顯示仿真計(jì)算結(jié)果??梢暬夹g(shù)的出現(xiàn),使得人們能夠在三維圖形世界中觀察機(jī)器人,并通過計(jì)算機(jī)交互式對機(jī)器人進(jìn)行示教仿真。i般來說,機(jī)器人可視化仿真系統(tǒng)主要由三個(gè)模塊組成:工業(yè)機(jī)器人的三維模型模塊(實(shí)現(xiàn)仿真系統(tǒng)的基礎(chǔ))、示教和再現(xiàn)模塊(實(shí)現(xiàn)示教和再現(xiàn)的功能)、離線編程模塊,見圖4-1。但是由于時(shí)間和知識限制,本文只研究了后兩個(gè)模塊的實(shí)現(xiàn),對離線編程并沒有采取通常的做法,根據(jù)老師的建議想將Matlab軟件和VC++結(jié)合起來,用在Matlab里建立的控制模型來控制OpenGL里機(jī)械手的運(yùn)動,本章按照這個(gè)思路實(shí)現(xiàn)了利用Matlab里建立的控制模型導(dǎo)出的數(shù)據(jù)來控制機(jī)械手的運(yùn)動。圖4-1通用機(jī)器人可視化仿真系統(tǒng)模塊本章將通過VC++6.0和OpenGL來完成機(jī)械手的三維可視化仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),它提供一個(gè)真實(shí)的實(shí)驗(yàn)平臺,在不接觸實(shí)際機(jī)器人及其工作環(huán)境的情況下,通過圖形技術(shù),提供一個(gè)和機(jī)械手進(jìn)行交互的虛擬環(huán)境。本章主要內(nèi)容為:(1)建立程序框架;(2)建立機(jī)械手三維模型;(3)建立仿真場景:(4)實(shí)現(xiàn)基于模型的視景仿真。4.1。廊1概述OpenGL即開放性圖形庫(opengraphiclibary)是美國高級圖形和高性能計(jì)算機(jī)系統(tǒng)公司SGI所開發(fā)的三維圖形標(biāo)準(zhǔn)庫,具有繪制三維圖形的各項(xiàng)功能,它是處理專用圖形硬件的軟件接口,支持可視化的實(shí)現(xiàn),它是三維計(jì)算機(jī)圖形和模型庫,獨(dú)立于窗口系統(tǒng)和操作系統(tǒng)。從開發(fā)人員角度看,OpenGL是一些繪圖指令或函數(shù)的集合。這些指令允許用戶對二維幾何對象或三維幾何對象進(jìn)行說明,允許用戶對對象實(shí)施操作以便把這些對象著色到幀存上。OpenGL可以方便地實(shí)現(xiàn)三維圖形的交互操作。對■于OpenGL的實(shí)現(xiàn)者而言,OpenGL是影響硬件操作的指令集合。如果硬件僅僅包括一個(gè)可以尋址的幀存,那么OpenGL就不得不在CPU上實(shí)現(xiàn)對象的描繪,OPenGL可以保存數(shù)量較大的狀態(tài)信息,這些狀態(tài)信息可以用來指示OpenGL如何往幀存中畫物體。有一些狀態(tài),用戶可以直接使用,通過調(diào)用就可得到狀態(tài)值;而另一些狀態(tài)只有作用在所畫物體上,才能使其產(chǎn)生的影響可見。

244.1.1OpenGL工作方式OpenGL在Windows環(huán)境卜的工作過程如圖4-2所示。OpenGL的庫函數(shù)被封裝在OPengl犯.dll動態(tài)鏈接庫中,從客戶應(yīng)用程序發(fā)布的對openGL函數(shù)的調(diào)用首先被Opengl32處理,在傳給服務(wù)器后,被winsry.dll進(jìn)一步進(jìn)行處理,然后傳給DDx(nivieeDriverinterface),最后傳遞給視屏驅(qū)動程序。【18】圖4-2OpenGL在Windows環(huán)境下的工作過程4.1.2OpenGL繪制過程OpenGL具有較強(qiáng)的圖形繪制能力,包括繪制物體、啟動光照、管理位圖、紋理映射、動畫、圖形增強(qiáng)及交互技術(shù)等功能。綜合以上功能,作為圖形硬件的軟件接口,OpenGL主要是將三維的物體投影到一個(gè)二維平面上,之后處理得到像素,進(jìn)行顯示。OpenGL首先將物體轉(zhuǎn)化為可以描述物體幾何性質(zhì)的頂點(diǎn)(Vertex)與描述圖像的像素(Pixel),在執(zhí)行一系列操作后,最終將這些數(shù)據(jù)轉(zhuǎn)化成像素?cái)?shù)據(jù)。也就是說,OpenGL是基于點(diǎn)的。有一組頂點(diǎn)定義的圖元(Pirmitive)執(zhí)行完繪制操作后,后繼圖元才能作用。簡單的圖形生成過程如圖4-3所示。圖4-3OpenGL中簡單圖形的繪制過程對圖元的定義:圖元由一組頂點(diǎn)定義,這一組頂點(diǎn)可以是一個(gè)或是多個(gè)頂點(diǎn)。每個(gè)頂點(diǎn)信息可以是二維的也可以是三維的。頂點(diǎn)信息可以山位置坐標(biāo)、顏色值、法向量、紋理坐標(biāo)組成。法線、紋理、顏色值會在處理每個(gè)頂點(diǎn)的過程中被使用。OpenGL將點(diǎn)、線段、多邊形等通過在函數(shù)glBegin()和glEnd()之間一系列頂點(diǎn)的數(shù)據(jù)繪制出圖形。對圖元的操作:OpenGL用交換矩陣、光照、反走樣、像素操作等方法控制圖元的繪制。圖元的操作處理過程結(jié)束后,只留下圖元可見部分,準(zhǔn)備進(jìn)行光柵化(投影)處理。像素處理比較特殊:對像素、位圖、影像直接進(jìn)行像素操作,然后進(jìn)行光柵化,后者是有些數(shù)據(jù)被存儲在紋理中供頂點(diǎn)使用。光柵化過程:將圖元轉(zhuǎn)化為二維圖像,完成每個(gè)圖像點(diǎn)的顏色與深度的計(jì)算,生成結(jié)果為基片,即各圖元的二維結(jié)果?;僮鳎禾幚磉^程包括基片是否遮擋、測試、融合等,最后得到像素,存入顯示幀緩沖中,完成整個(gè)繪制過程。4.2機(jī)器人三維可視化框架建立4.2.1利用MFC建立單文檔應(yīng)用程序框架VC++6.0能夠創(chuàng)建多種類型的MFC應(yīng)用程序,不同的應(yīng)用程序具有不同的應(yīng)用程序框架,VC++6.0系統(tǒng)的設(shè)計(jì)者創(chuàng)建了程序框架生成工具Appwizard,用它來建立開發(fā)各種MFC應(yīng)用程序所需要的程序框架,通過APpwizard就可移動生成包含基本程序框架

25的應(yīng)用程序包,這樣就可以在此基礎(chǔ)上進(jìn)行程序設(shè)計(jì)。在參考許多數(shù)字處理、圖像處理軟件的基礎(chǔ)上,決定采用單文檔的應(yīng)用程序框架。[16]創(chuàng)建工程:啟動VC++6.0進(jìn)入VC++的集成開發(fā)環(huán)境,新建一個(gè)工程,選擇MFCAppwizard選項(xiàng),在應(yīng)用程序類型中選擇singledocument(單文檔)類型。設(shè)置編譯環(huán)境:設(shè)置編譯環(huán)境主要包括設(shè)置包含文件和設(shè)置庫文件路徑。加入OpenGL庫:選擇菜單ProjectSetting,將彈出Projectsettings對話框,在該對話框選擇Link標(biāo)簽頁,如圖4-4所示。在該對話框中的Object/LibraryModule文本框中力口入opengl32.1ib、glu32.1ib>glaux.lib三個(gè)函數(shù)庫文件。在頭文件中加入gl/glu.h(OpenGL核心函數(shù)的頭文件)和gl/glut.h(使用函數(shù)的頭文件),這樣就可以調(diào)用openGL軟件包了。圖4-4加入OpenGL庫函數(shù)這樣,我們就很容易的建立了一個(gè)在Windows環(huán)境下進(jìn)行OpenGL編程開發(fā)的框架,按快捷鍵F7進(jìn)行編譯,按快捷鍵F5執(zhí)行就會彈出一個(gè)窗口,包含一個(gè)主菜單、一個(gè)工具條和一個(gè)狀態(tài)條等部件。如下圖4-5所示:圖4-5程序框架4.1.1設(shè)置OpenGL繪圖環(huán)境1)創(chuàng)建RC在windows環(huán)境下建立OpenGL繪制窗口是通過建立設(shè)備描述衣(DC)和繪制描述表(RC)來實(shí)現(xiàn)的,而RC和DC是連接在一塊的。因此,為了建立RC,先要建立DC。用ChoosePixelFormat。選擇系統(tǒng)中與pfd描述的像素格式最為匹配的返回;本文現(xiàn)在消息響應(yīng)函數(shù)OnCreate里調(diào)用InitializeOpenGL(m_pDC)函數(shù),然后又通過后者調(diào)用SetupPixelFormat。函數(shù)來設(shè)置DC像素格式完成繪圖環(huán)境的設(shè)置工作;intCMyView::OnCreate(LPCREATESTRUCTIpCreateStruct){if(CView::OnCreate(lpCreateStruct)==-1)return-1;m_pDC=newCClientDC(this);InitializeOpenGL(m_pDC);〃調(diào)用函數(shù)return0;)BOOLCMyView::InitializeOpenGL(CDC*pDC)(m_pDC=pDC;

26SetupPixelFormat。;〃設(shè)置像素格式m_hRC=::wglCreateContext(m_pDC->GetSafeHdc());::wglMakeCurrent(m_pDC->GetSafeHdc(),m_hRC);〃選擇像素格式returnTRUE;)2)設(shè)置坐標(biāo)變化方式每次窗口創(chuàng)建或改變大小的時(shí)候,都要重新設(shè)置視口大小,因此我們在OnsizeO中進(jìn)行視口設(shè)置。而投影變換和視點(diǎn)一模型變換的初始設(shè)置也可以放在里面進(jìn)行。voidCMyView::OnSize(UINTnType,intex,intcy)(CView::OnSize(nType,ex,cy);if(cy==O)//防止被零除{cy=l;}glViewport(0,0,cx,cy);//重置當(dāng)前視口glMatrixMode(GL_PROJECTlON);//選擇投影矩陣glLoadldentityO;//重置投影矩陣gluPerspective(45.0f,(float)cx/(float)cy,0.1f,2000.0f);〃設(shè)置透視投影矩陣glMatrixMode(GL_MODELVIEW);//選擇模型觀察矩陣glLoadldentityO;//重置觀察模型矩陣)3)繪圖顯示完成上面的設(shè)置以后我們就可以利用OpenGL進(jìn)行繪圖了。本文為了程序的簡約,先在OnDraw()里調(diào)用RenderScene。函數(shù),然后在RenderScene。里調(diào)用所有繪圖顯示函數(shù)。代碼如下:voidCMyView::OnDraw(CDC*pDC){CMyDoc*pDoc=GetDocument();ASSERT_VALlD(pDoc);RenderSceneO;〃調(diào)用繪圖函數(shù)}4)程序結(jié)束,釋放資源。調(diào)用消息響應(yīng)函數(shù)OnDesgy(),在函數(shù)里完成相關(guān)資源的釋放。voidCMyView::OnDestroy(){CView::OnDestroy();::wglMakeCurrent(O,O);

27::wglDeleteContext(m_hRC);if(m_hPalette)DeleteObject(m_hPalette);if(m_pDC)(deletem_pDC;}最后按照參考書上的方法設(shè)置了全屏顯示按鈕,可以實(shí)現(xiàn)全屏顯示,同時(shí)可以進(jìn)行屏幕工具欄的顯示縮放?!?6】編譯運(yùn)行結(jié)果如圖4-6所示:圖4-6設(shè)置完成的機(jī)器人三維場景框架13機(jī)械手三維模型的建立OpenGL中模型的建立一般有兩種思路,一種通過一個(gè)是用3dsMax繪制出模型并將其轉(zhuǎn)換成特定格式的文件,然后導(dǎo)入到程序中;另一個(gè)是直接用OpenGL的函數(shù)繪制出所需要的模型。導(dǎo)入的模型比較美觀漂亮,但是實(shí)現(xiàn)起來技術(shù)難度比較大,而OpenGL的函數(shù)繪制出的模型則比較粗糙,但是靈活性好,實(shí)現(xiàn)起來也比較容易。4.3.1導(dǎo)入機(jī)械手模型利用openGL建立復(fù)雜物體的三維模型是一件比較麻煩和枯燥的事情,因?yàn)镺PenGL并沒有提供三維模型的高級命令,它也是通過基本的幾何圖元一點(diǎn)、線及多邊形來建立三維立體模型的。而利用3dsMax建立復(fù)雜物體的模型則顯得輕松的多。可是,用3dsMax制作的動畫沒有交互性,無法實(shí)時(shí)控制,而這正是OpenGL的優(yōu)勢所在。把這些模型轉(zhuǎn)換成OpenGL程序,再對其進(jìn)行控制是一種比較理想的方法。所以,如果可以把OpenGL與3dsMax結(jié)合起來實(shí)現(xiàn)三維仿真則可以事半功倍。但是由于時(shí)間和知識的限制,無法完成對3D模型的讀取工作,所以查找了一些讀取3D模型文件的代碼,利用這些代碼將機(jī)械手模型轉(zhuǎn)換成了OpenGL程序,將模型導(dǎo)入進(jìn)了OpenGL里。為了節(jié)約時(shí)間作者沒有在3dsMax里建立機(jī)械手的模型,而是在比較熟悉的AutoCAD里建立了機(jī)械手的模型,然后通過3dsMax軟件模型文件導(dǎo)出成接口程序可識別的*.ASE格式的文件,再通過接口程序?qū)脒M(jìn)OpenGL里。導(dǎo)入前的在3dsMax里的模型如圖4-7所示:圖4-73dsMax里的機(jī)械手模型導(dǎo)入后的機(jī)械手模型經(jīng)過坐標(biāo)變換、縮放、改變顏色并加入光照照亮后如下圖4-8所示:圖4-8導(dǎo)入的機(jī)械手模型

284.3.1在OpenGL中建立機(jī)械手的模型雖然實(shí)現(xiàn)了模型的導(dǎo)入,但是只實(shí)現(xiàn)了整體導(dǎo)入,未能實(shí)現(xiàn)分塊導(dǎo)入機(jī)械手的模型,所以在OpenGL只實(shí)現(xiàn)了整體模型的控制,很顯然滿足不了機(jī)械手運(yùn)動的要求,所以導(dǎo)入的模型只能作為仿真場景的一部分做靜態(tài)顯示。為了繼續(xù)進(jìn)行后續(xù)工作,作者直接在OpenGL中通過基本的幾何圖元一點(diǎn)、線及多邊形建立了機(jī)械手的三維立體模型。機(jī)械手模型主要由底座、腰部、關(guān)節(jié)、手臂這幾個(gè)部分組成,由于底座、腰部和關(guān)節(jié)都是圓柱型的,所以作者先利用glu庫函數(shù)(gluCylinder和gluDisk)【17】畫出一個(gè)共用的圓柱,然后通過不同的縮放(glScalef)、轉(zhuǎn)移(glTranslatef)>旋轉(zhuǎn)(glRotatef)變換繪制出了底座,腰部和關(guān)節(jié)的模型。這里取繪制關(guān)節(jié)的函數(shù)作為例子介紹繪制過程,代碼如下:voidCMyView::joint()|glPushMatrix();〃模型入棧GLUquadricObj*obj1;objl二gluNewQuadric();〃創(chuàng)建一個(gè)描述當(dāng)前繪圖模式、定位、光照模式、紋理模式和回調(diào)函數(shù)的不透明的狀態(tài)變量glTranslatef(0.0,0.0,?5.0);〃向Z軸負(fù)方向即屏幕里移動5個(gè)像素的距離glPushMatrix();gk)Cylinder(objl,10.0,10.0,10.0,360.0,2);〃繪制一個(gè)頂面半徑、底面半徑和高度都為10的圓柱面glPopMatrix();glPushMatrix();gluDisk(obj1,0.0,10.0,360,1);//繪制一個(gè)半徑為10的圓片堵住上述圓柱面的底面glPopMatrix();giPushMatrix();glTranslatef(0.0,0.0,10);〃向Z軸正方向即屏幕外移動10個(gè)距離gluDisk(objl,0.0,10.0,360,1),繪制一個(gè)半徑為10的圓片堵住上述圓柱面的頂面glPopMatrix();glPopMatrixOH模型出棧)繪制手臂也很簡單,手臂其實(shí)在這里同樣是通過對一個(gè)立方體進(jìn)行不同的然后通過不同的縮放(glScalef)>轉(zhuǎn)移(glTranslatef)、旋轉(zhuǎn)(glRotatef)變換來完成繪制。OpenGL里也有對應(yīng)畫立方體的庫函數(shù),但是由于不太清楚怎么對用庫函數(shù)繪制的模型進(jìn)行紋理貼圖,所以選用了一種比較熟悉和簡單的方式來繪制,就是通過6個(gè)面來組合成一個(gè)立方體。對每個(gè)面都可以進(jìn)行不同的紋理貼圖。在后面的仿真場景建立過程中同樣利用這個(gè)四方體也完成了實(shí)驗(yàn)室房間、木質(zhì)方桌、大理石長桌、凳子和儲物箱的繪制。繪制立方體的代碼如下:voidCMyView::shoubi(){glPushMatrix();

29glColor4f(1.Of,I.Of,I.Of,I.Of);〃定義面的顏色為白色glBegin(GL_QUADS),開始繪制//前面glTexCoord2f(0.0f,O.Of);glVertex3f(-lOO,Of,O.Of,-lOO.Of);//紋理和四邊形的左下glTexCoord2f(1.0fO.Of);glVertex3f(lOO.Of,O.Of,-lOO.Of);//紋理和四邊形的右下glTexCoord2f(1.0f,l.Of);glVertex3f(100.0f,lOO,Of,-lOO.Of);//紋理和四邊形的右上glTexCoord2f(0.0f,l.Of);glVertex3f(-lOO.Of,lOO.Of,-lOO.Of);//紋理和四邊形的左上glEnd();glBegin(GL_QUADS);//后面glTexCoord2f(1.0f,O.Of);glVertex3f(-1OO.Of,O.Of,lOO.Of);〃紋理和四邊形的右下glTexCoord2f(1.0f,1.00;glVertex3f(-lOO.Of,lOO.Of,lOO.Of);//紋理和四邊形的右上glTexCoord2f(0.0f,l.Of);glVertex3f(lOO,Of,lOO.Of,lOO.Of);//紋理和四邊形的左上glTexCoord2f(0.0f,O.Of);glVertex3f(lOO.Of,O.Of,lOO.Of);//紋理和四邊形的左下glEnd();glPopMatrix();}繪制完機(jī)械手的各個(gè)部件以后就可以通過縮放(glScalef)、轉(zhuǎn)移(glTranslatef)、旋轉(zhuǎn)(glRotatef)變換來完成整個(gè)機(jī)械手模型的繪制。代碼如下:voidCMyView::manipulator(){glPushMatrix();glTranslatef(0.0,-80.0,-20.0);〃分別沿Y和X軸負(fù)方向移動80和20//glRotatef(0.0,1.0,0.0,0.0);glRotatef(?hand[i].rotl,0QL0,0.0);〃繞Y軸旋轉(zhuǎn)-hand[i].rotl(第一個(gè)關(guān)節(jié)角第i時(shí)刻的值)glPushMatrix();glTranslatef(O.O,-15.0,0.0);glRotatef(-90,1.0,0.0,0.0);//yftX軸逆時(shí)針旋轉(zhuǎn)90°glPushMatrix();glTranslatef(O.0,0.0,20.0);glColor3f(L0,0.0,0.0);〃設(shè)置為紅色glScalef(1.01.0,5.0);〃沿新的Z軸方向擴(kuò)大5倍joint。;//繪制腰部glPopMatrix();

30glTranslatef(0.0,0.0,-5.0);glScalef(3.O,3.O,O.5);〃沿新的丫和X軸擴(kuò)大3倍,新的Z軸方向縮小0.5倍[Color3f(0.0,1.0,0.0);〃設(shè)置為綠色joint();〃繪制底座glPopMatrix();…〃同樣的方法繪制關(guān)節(jié)和兩個(gè)手臂,這里不再敘述}在RenderScene。里調(diào)用manipulator(),編譯運(yùn)行后的結(jié)果如圖4-9所示:圖4-9OpenGL中繪制的機(jī)械手模型44建立仿真場景場景中模型的繪制和上節(jié)機(jī)械手模型的繪制很類似,所以在這里不再做介紹,這一節(jié)主要介紹紋理貼圖的實(shí)現(xiàn)和設(shè)置光照。4.4.1紋理貼圖的實(shí)現(xiàn)OpenGL體系內(nèi)有一塊紋理內(nèi)存,在有硬件加速的情況下,可能是位于顯卡的VRAM里,否則會是OpenGL庫管理的一塊內(nèi)存。在這個(gè)紋理內(nèi)存里圖片是以特定的內(nèi)部格式保存的,有的顯卡還支持壓縮紋理技術(shù),所以將紋理像素從應(yīng)用程序內(nèi)存?zhèn)鞯郊y理內(nèi)存需要進(jìn)行格式轉(zhuǎn)換。這在OpenGL中是通過分別描述像素在應(yīng)用程序內(nèi)存和紋理內(nèi)存的格式來完成的,真正轉(zhuǎn)換工作OpenGL會在內(nèi)部完成。定義紋理的命令是glTexImage2/lD(GL_TEX_IMAGE_2/lD,level,components,width,height,border,format,type,*pixels);OpenGL術(shù)語稱應(yīng)用程序內(nèi)存讀出像素的過程為解碼(UNPACK),而向紋理內(nèi)存寫像素的過程為編碼(PACK)。用glPixelStore*(GL」UN]PACK_*,參數(shù)值);命令設(shè)定編碼[解碼]格式。對于貼紋理過程我們只需關(guān)心解碼過程。如今的顯卡通常都有比較大的顯存,其中有一部份是專門的紋理存儲區(qū),有的卡還可以將最多64M系統(tǒng)內(nèi)存映射為紋理內(nèi)存,所以我們有可能把經(jīng)常要用的紋理就保留在紋理內(nèi)存里以提高程序性能。OpenGL從1.2開始提供了紋理對象技術(shù),可以把在管道內(nèi)放多個(gè)紋理,每個(gè)紋理對應(yīng)一個(gè)數(shù)字(名字),需要用到是把這個(gè)名字的紋理Bind為當(dāng)前紋理就可以了。用glGenTextures(n,*textures)命令取得可用的紋理名字的。在3D圖形中,紋理映射是廣泛使用的。紋理映射也是相當(dāng)復(fù)雜的過程:1、定義紋理;2、控制濾波;3、說明映射方式;4、繪制場景給出頂點(diǎn)的紋理坐標(biāo)和幾何坐標(biāo)。(注意??!紋理映射只能在RGBA模式下使用,不適用于顏色索引模式)1.紋理定義voidglTexImage2D(GLenumtarget,GLintlevel,GLintcomponents,GLsizeiwidth,GLsizeiheight,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixels);定義一個(gè)二維紋理映射,target是常數(shù)GL_TEXTURE_2D;level表示多級分辨率的紋理圖象的級數(shù),若只有一種分辨率,level為0;components是從1到4的整數(shù),1:選擇R;2:選擇RA;3:選擇RGB;4:選擇RGBA;

31widthheight是紋理的尺寸。format和type描述映射格式和數(shù)據(jù)類型。它們與前面講glDrawPixels。中GL_NEAREST_MIPMAP_NEAREST,GL_NEAREST_MIPMAP_LINEAR,GL_LINEAR_MIPMAP_NEAREST,GL_LINEAR_MIPMAP_LINEAR1.1濾波原始紋理圖象是個(gè)方形圖象,把它映射到奇形怪狀的物體上,一般不可能圖象上的一個(gè)象素對應(yīng)屏幕的一個(gè)象素。因此局部放大縮小時(shí),就要定義合適的濾波方式(以2D為例):voidglTexParameter(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);voidglTexParameter(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);前者是放大濾波(GL_TEXTURE_MAG_FILTER),后者是縮小濾波(GL_TEXTURE_MIN_FILTER);另外,GL_NEAREST是利用最坐標(biāo)最靠近象素中心的紋理元素,這有可能使圖樣走型,但計(jì)算速度快;GL_LINEAR利用線形插值,效果好但計(jì)算量大。2.2重復(fù)與縮限紋理映射可以重復(fù)映射或者縮限映射,重復(fù)映射時(shí)紋理可以在自己的坐標(biāo)ST方向重復(fù)。對■于重復(fù)映射:voidglTexParameterfv(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);voidglTexParameterfv(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);參數(shù)GL_REPEAT改為GL_CLAMP,則縮限,所有大于1的紋理元素值置為1。所有小于。的紋理元素值置為0,0的紋理元素值置為0。3.映射方式處理紋理本身圖案顏色和物體本身顏色的關(guān)系:voidglTexEnv{if}[v](GLenumtarget,GLenumpname,TYPEparam);target必須是GL_TEXTURE_ENV;pname是GL_TEXTURE_ENV_MODE,則param可以是GL_DECALGL_MODULATE或GL_BLEND,說明紋理值與原來顏色不同的處理方式。pname是GL_TEXTURE_ENV_COLOR,則參數(shù)param是包含4個(gè)浮點(diǎn)數(shù)(R、G、B、A)的數(shù)組。這些值只在采用GL_BLEND紋理函數(shù)時(shí)才采用。4.紋理坐標(biāo)坐標(biāo)的定義:紋理圖象是方形的,紋理坐標(biāo)可定義成s,t,r,q坐標(biāo),仿照齊次坐標(biāo)系的x,y,z,w坐標(biāo)。voidglTexCoord{1234}{sifd}[v](TYPEcoords);設(shè)置當(dāng)前紋理坐標(biāo),此后調(diào)用glVertex*。所產(chǎn)生的頂點(diǎn)都賦予當(dāng)前的紋理坐標(biāo)。5.坐標(biāo)自動產(chǎn)生有時(shí)不需要為每個(gè)物體頂點(diǎn)賦予紋理坐標(biāo),可以使用voidglTexGen{if}(GLenumcoord,GLenumpname.TYPEparam);coord為:GL_SGL_TGL_R或GL_Q,指明哪個(gè)坐標(biāo)自動產(chǎn)生pname為GL_TEXTURE_GEN_MODE時(shí)param為常數(shù):GL_OBJECT_LINEARGL_EYE_LINEAR或GL_SPHERE_MAP,它們決定用哪個(gè)函數(shù)來產(chǎn)生紋理坐標(biāo)pname為GL_OBJECT_PLANE或GL_EYE_PLANE,param時(shí)一個(gè)指向參數(shù)數(shù)組的指針。【16】下面就本文中紋理貼圖的例子做介紹:苜先定義了一個(gè)讀入位圖的函數(shù)BOOLLoadBMP(TCHAR*szFileName),在位圖函數(shù)中完成了紋理的定義;然后又定義了一個(gè)函數(shù)GLLoadTextures(GLuint*ptList)完成了對紋理的濾波、重復(fù)和縮限的控制,最后在場景模型的繪制中將紋理坐標(biāo)賦給了模型頂點(diǎn)坐標(biāo)。下面是本文中紋理貼圖的部分代碼:CLoadBMP::GLLoadTextures(GLuint*ptList){glGenTextures(18,ptList);〃生成16個(gè)紋理名字

32glBindTexture(GL_TEXTURE_2D,ptList[GRESS]);〃將紋理名字GRESS綁定到紋理目標(biāo)上glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT)〃在S方向紋理重復(fù)glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);〃在T方向紋理重復(fù)glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);〃放大濾波glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);〃縮/卜濾波LoadBMP("gress.bmp");//投入位圖)繪制實(shí)驗(yàn)室房間的代碼:voidCMyView::creatskybox(){glPushMatrix();glDisable(GL_BLEND);glEnable(GL_TEXTURE_2D);啟動紋理映射glBindTexture(GL_TEXTURE_2D,tList[GRASS2]);選擇紋理GRASS2glColor4f(l.Of,1.Of,l.Of,1.Of);glBegin(GL_QUADS);glTexCoord2f(0.0f,O.Of);glVertex3f(-1OO.Of,-lOO.Of,-lOO.Of);//紋理和四邊形的左下glTexCoord2f(1.0f,O.Of);glVertex3f(lOO,Of,-lOO.Of,-lOO.Of);//紋理和四邊形的右下glTexCoord2f(1.0f,1.0D;glVertex3f(lOO.Of,lOO.Of,-100.0D;//紋理和四邊形的右上glTexCoord2f(0.0f,1.0D;glVertex3f(-lOO.Of,lOO.Of,-lOO.Of);//紋理和四邊形的左上glEnd();編譯運(yùn)行后的結(jié)果如下圖4-10所示:圖4-10題圖后的仿真場景效果圖3.4.2設(shè)置光照從圖5-7可以看出,如果能使場景變的亮一些效果肯定很好,這是因?yàn)槲覀冞€沒有設(shè)置光照的效果,下面我們對?場景進(jìn)行光照設(shè)置。首先讓我們了解一下OpenGL中光照的知識。在觀察物體的表面時(shí),人眼睛對顏色的感知取決于進(jìn)入眼內(nèi)視維細(xì)胞的光子的能量分布。這些光子來自于光源或發(fā)光物體,一些被表面吸收,而另一些則被反射。而且,不同表面的反射特性的差別是非常大的:對于較光滑的表面,入射光線在某個(gè)方向上將

33完全反射,在另外的方向上則完全散射。大部分表面處于全反射與散射之間。OpenGL近似地將光線分解成紅、綠、藍(lán)三種成分。光源的顏色取決于它所發(fā)出的紅、綠、藍(lán)光的和。表面的材質(zhì)特征則是由這個(gè)表面在各個(gè)方向反射的紅、綠、藍(lán)光的百分比決定。雖然OpenGL的光照方程僅是一種近似算法,但與實(shí)際是十分接近的,并且可以達(dá)到很快的計(jì)算速度。在OpenGL的光照模型中,場景中的光線來自不同光源,這些光源的開關(guān)相互獨(dú)立,有的從特定的方向、位置射出,還有一些在場景中散射。OpenGL的光照模型將光照分成四個(gè)獨(dú)立的成分:發(fā)射光,環(huán)境光,散射光,鏡面反射光。四種成分獨(dú)立地計(jì)算,然后疊加到一起。發(fā)射光是最簡單的,它由物體發(fā)出,并且不受任何光源的影響。背景光成分是從某個(gè)光源發(fā)出并由環(huán)境經(jīng)多次散射得到的,難以確定其最初的方向,看起來好像來自于四面八方。散射光來自于一個(gè)固定方向,所以當(dāng)光線垂直照射到物體表面上時(shí)要比斜照時(shí)亮一些。然而,一旦光線照到表面上就均勻地在各個(gè)方向都發(fā)生散射,因此不論觀察點(diǎn)處在哪個(gè)位置,其亮度都是一樣的。來自于特定位置與方向的任何光線都可能帶有散射光成分。鏡面反射光也來自于特定方向,但它幾乎全部反射到對稱的方向上。盡管光源發(fā)出的光是按單一頻率分布的,但其中的環(huán)境光、散射光和鏡面反射光分量是有區(qū)別的。對光線來說,每種顏色的數(shù)值對應(yīng)于它所占光強(qiáng)的百分比。如果光線的R,G和B值都是1.0,這種光就是最強(qiáng)的白光。如果三個(gè)值都是0.5,顏色仍然是白色,但亮度只有原來的一半,所以這種光看起來是灰色的。如果R=G=1而B=0(全紅和全綠,沒有藍(lán)),此時(shí)光是黃色的。OpenGL的光照模型進(jìn)行了這樣的近似處理:材料的顏色,是由它對紅、綠、藍(lán)光各反射百分比的檢加結(jié)果決定的。為光線指定額色成分意味著光的顏色與材料的顏色是不同的。對村質(zhì)來說,其R、G、B值對應(yīng)著材質(zhì)對這些顏色光的反射比例。所以,若某材料R=l,G=0.5,B=0,說明這種材質(zhì)反射全部紅光,一半的綠光,不反射藍(lán)光。換句話說,在OpenGL中,若光線的RGB值為(LR,LG,LB),材料的RGB值為(MR.MG,MB),如果其他的反射影響可以忽略,那么最后進(jìn)入人眼中光的RGB值則為(LRXMR,LGXMG,LBXMB),類似地,如果有兩束光(RI,Gl,B1)和(R2,G2,B2)進(jìn)入人眼,OpenGL將它們合成為(R1+R2,G1+G2,B1+B2)下面列出的是向場景中增加光照需要的步驟:為所有物體的頂點(diǎn)定義法線向量。這些法線決定了物體相對于光源的方位。創(chuàng)建、選擇光源,并為光源定位。通過傳遞給函數(shù)glLight()以參數(shù)GL_POSITION來指定光源的位置,并通過模型視圖變換得到光源的最終位置??梢允褂么撕瘮?shù)在場景中設(shè)置八個(gè)不同顏色的光源。此函數(shù)有三個(gè)參數(shù),通過設(shè)置十個(gè)不同的參數(shù),可以得到不同的效果,如參數(shù)為GL_AMBIENT設(shè)置光源的環(huán)境光亮度,GL_DIFFUSE對應(yīng)光源的散射光亮度等。定義了期望的光源特征之后,便可以使用參數(shù)GL_LIGHTING調(diào)用函數(shù)g]Enable(),讓OpenGL開始執(zhí)行光照計(jì)算。創(chuàng)建并選擇光照模型,定義全局環(huán)境光的等級、觀察點(diǎn)的有效位置(用于光照計(jì)算)和正面和背面是否采取相同光照計(jì)算。函數(shù)glLightModel。描述了光照模型的參數(shù)。為場景中的物體定義材料屬性。一種物體的材質(zhì)屬性決定了它如何反射光線,也山此決定了該物體表現(xiàn)出來的材質(zhì)屬性。函數(shù)glMaterial。指定用于執(zhí)行光照計(jì)算的當(dāng)前材料屬性。此函數(shù)可以通過設(shè)置七個(gè)不同的參數(shù),得到不同的效果。如設(shè)置材質(zhì)的環(huán)境顏色、設(shè)置材質(zhì)的散射顏色等。本文中設(shè)置光照的代碼如下:voidCMyView::lm()(GLfloatlAmb[4];GLfloatlDif[4];GLfloatlSpe[4];GLfloatlPos[4];〃分別定義了環(huán)境光、漫反射光、鏡面反射光和光的位置的參數(shù)數(shù)組GLfloatmAmb[4J;GLfloatmDif[4J;GLfloatmSpe[4];GLfloatmEmil4];GLfloatmShininess;〃分別定義了材質(zhì)反射環(huán)境光、反

34射漫反射光、反射鏡面反射光、輻射光和光強(qiáng)度的參數(shù)數(shù)組〃對各個(gè)參數(shù)數(shù)組的初始化賦值1Amb[0]=0.2f;lAmb[1]=0.2f;lAmb[2]=0.2f;lAmb[3]=O.lf;lDif[0]=0.2f;lDif[l]=0.2f;lDif[2]=0.2f;lDif[3]=l.Of;lSpe[0]=0.5f;lSpe[1]=0.5f;lSpe[2]=0.5f;lSpe[3]=1.0f;lPos[0]=0.0f;!Pos[l]=1000.0f;lPos[2]=-1000.0f;lPos[3]=0.0f;mAmb[0]=0.0f;mAmb[1]=0.0f;mAmb[2]=0.0f;mAmb[3]=1.0f;mDif[0]=0.0f;mDif[1]=0.0f;mDif[2]=0.0f;mDif[3]=1.0f;mSpe[0]=1.0f;mSpe[l]=1.0f;mSpe[2]=l.Of;mSpe[3]=1.0f;mEmi[0]=0.3f;mEmi[l]=0.3f;mEmi⑵=0.3f;mEmi[3]=1.0f;mShininess=6.80f;〃定義光照屬性glLightfv(GL_LIGHTl,GL_AMBIENT,lAmb);glLightfv(GL_LIGHTl,GL_DIFFUSE,lDiD;glLightfv(GL_LIGHTl,GL_SPECULAR,lSpe);glLightfv(GL_LIGHTl,GL_POSITIONJPos);〃定義材質(zhì)屬性glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT,mAmb);glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mDif);glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mSpe);glMaterialfv(GL_FRONT_AND_BACK,GL_EMISSION,mEmi);設(shè)置光照后的結(jié)果如圖4?11所示:圖4-11設(shè)置光照后仿真場景效果圖4.5基于模型的視景仿真的實(shí)現(xiàn)本節(jié)是實(shí)現(xiàn)基于模型的視景仿真系統(tǒng)的核心環(huán)節(jié)。系統(tǒng)中機(jī)械手的運(yùn)動應(yīng)該受到指定的控制模型的控制,控制模型的任何參數(shù)的改變都應(yīng)該在視景仿真系統(tǒng)中得到反應(yīng)。本系統(tǒng)的初始目標(biāo)是實(shí)現(xiàn)控制模型對系統(tǒng)中機(jī)械手模型的實(shí)時(shí)控制,這需要完成Matlab和VC++的混合編程技術(shù)也就是建立一個(gè)Matlab和VC++的接口來實(shí)現(xiàn)Matlab中的控制模型對OpenGL中的機(jī)械手模型運(yùn)動的實(shí)時(shí)控制。但是由于時(shí)間的限制,在本系統(tǒng)中未能實(shí)現(xiàn)這一技術(shù)。本文實(shí)現(xiàn)了通過控制模型生成的數(shù)據(jù)來控制機(jī)械手模型的運(yùn)動,相比前一技術(shù)缺乏實(shí)時(shí)性控制,但是卻相應(yīng)的擴(kuò)大了應(yīng)用范圍,因?yàn)楸鞠到y(tǒng)讀入的數(shù)據(jù)沒有模型的限制,可以讀入任何模型導(dǎo)入的數(shù)據(jù)。本系統(tǒng)實(shí)現(xiàn)的技術(shù)思路是首先獲取控制模型導(dǎo)出的數(shù)據(jù)(這個(gè)數(shù)據(jù)可以以不同的文件形式給出,本系統(tǒng)采用的是文本文件(TXT)

35的格式),然后將獲取的數(shù)據(jù)以數(shù)組的形式存儲在計(jì)算機(jī)的內(nèi)存里,在機(jī)械手模型運(yùn)動的時(shí)候調(diào)用這些數(shù)據(jù)。4.5.1數(shù)據(jù)的讀取本系統(tǒng)采用的數(shù)據(jù)文件為TXT格式,文件中存儲了每個(gè)時(shí)刻三個(gè)關(guān)節(jié)角的度數(shù)值,讀取實(shí)現(xiàn)思路是先定義一個(gè)數(shù)組結(jié)構(gòu)體,然后讀取數(shù)據(jù)并存進(jìn)數(shù)組里。代碼如F:〃先定義一個(gè)結(jié)構(gòu)體,存放角度值typedefstruct{floatroti;//floatrot2;//floatrot3;//}HHand;HHandhand"10];〃存儲各個(gè)時(shí)刻對應(yīng)三個(gè)角度的值,可以根據(jù)時(shí)間步數(shù)改變?nèi)萘看笮∪缓笪覀円獙?shí)現(xiàn)讀取文件對話框的建立和數(shù)據(jù)文件的讀取工作:首先我們要建立讀取菜單按鈕:(1)選擇頁面ResourceView,雙擊Menu文件夾中的IDR_MAINFRAME工具欄顯示圖如圖4-12所示。單擊工具欄最右邊的灰色圖標(biāo),創(chuàng)建一個(gè)新的圖標(biāo)工具。圖4-12工具欄頁面選擇新建的圖標(biāo)工具,選擇菜單“查看”,在彈出的對話框中按圖4-13所示進(jìn)行操作。圖4-13工具欄屬性頁面選擇新建的圖標(biāo)工具,選擇菜單“建立類向?qū)А?,在彈出的對話框中按圖5-14所示進(jìn)行操圖4-14工具欄命令向?qū)ы撁嬖谏傻南㈨憫?yīng)函數(shù)OnFileOpenl。添加代碼完成讀取文件對話框的顯示和數(shù)據(jù)的讀取。代碼如下:voidCMyView::OnFileOpen1(){CFileDialogdlg(TRUE,_T(MtxtH),NULL,OFN_HIDEREADONLYIOFN_OVERWRITEPROMPTIOFN_ALLOWMULTISELECT,_T("(*.txt)l*.txtr));〃建立打開對話框if(dlg.DoModal()!=IDOK){return;}CComboBoxm_cFileList;m_cFileList.AddString(dlg.GetPathName());〃列表添加文件路徑ShellExecute(NULL,_T("openH),_T(dlg.GetPathName()),NULL,NULL,SW_SHOW);〃顯示打開的文件FILE*fp,*fw;〃定義文件指針fp=fopen(dlg.GetPathName()Jrb");〃以讀的方式打開所選擇的數(shù)據(jù)文件inti;

36for(i=0;i<101;i++)(//fseek(fp,OL,1);fscanf(fp,"%f',&hand[i].rotl);//i$|X的值fseek(fp,3L,l);〃向后移動4個(gè)空格fscanf(fp,"%f",&hand[i].rot2);〃讀取的值fseek(fp,3L,l);//向后移動4個(gè)空格fscanf(fp,"%f",&hand[i].rot3);〃讀取的值fseek(fp,2L,1);〃移到下一行開始處)fw=fopen("temp.txt","w");以寫的方式打開文件,若沒有則新建一個(gè)for(i=0;i<101;i++)(fprintf(fw,"%f,%f,%f

37”,hand[i].rotl,hand[i].rot2,hand[i].rot3);〃將讀入數(shù)組中的數(shù)據(jù)在文件中打印出來,檢測是不是正確讀取的數(shù)據(jù))fclose(fp);〃關(guān)閉文件指針}這樣就將數(shù)據(jù)從文件中讀入到數(shù)組中存儲在計(jì)算機(jī)內(nèi)存中以供下一步調(diào)用來控制機(jī)械手的運(yùn)動。4.5.1利用讀取的數(shù)據(jù)控制機(jī)械手的運(yùn)動首先我們要建立時(shí)間定時(shí)器的消息響應(yīng)函數(shù)OnTimer(),并在OnCreate。里加入SetTimer(l,20,NULL);設(shè)置時(shí)間定時(shí)器,在OnDestroyO里加如KillTimer(1);關(guān)閉時(shí)間定時(shí)器。然后我們要將實(shí)現(xiàn)用數(shù)組變量來控制機(jī)械手模型三個(gè)自由度的運(yùn)動即腰部、大臂和小臂的轉(zhuǎn)動。在前面的建模過程中我們已經(jīng)將數(shù)組變量加入到控制模型變化的坐標(biāo)變換當(dāng)中來實(shí)現(xiàn)對機(jī)械手模型三個(gè)轉(zhuǎn)動的控制,代碼為:voidCMyView::manipulator()glRotatef(hand[i].rot1,0.0,1.0,0.0);〃實(shí)現(xiàn)對腰部轉(zhuǎn)動的變量控制glRotatef(hand[i].rot2,0.0,0.0,L0);〃實(shí)現(xiàn)對大臂轉(zhuǎn)動的變量控制glRotatef(hand[i].rot3-hand[i].rot2,0.0,0.0,1.0);〃實(shí)現(xiàn)對小臂轉(zhuǎn)動的變量控制

38建立控制機(jī)械手運(yùn)動的工具按鈕,建立方法和菜單按鈕相似,這里不再做詳細(xì)介紹。定義一個(gè)布爾變量key和一個(gè)整型變量congtrolkey來控制運(yùn)動的開始和停止,分別初始化為false和0。然后在工具按鈕消息響應(yīng)函數(shù)OnBUTTONmove()和時(shí)間消息響應(yīng)函數(shù)OnTimer()里控制變量的變化來實(shí)現(xiàn)控制機(jī)械手的運(yùn)動。代碼如下:voidCMyView::OnBUTTONmove(){key=true;〃控制運(yùn)動的總開關(guān)controlkey++;〃變量累加}voidCMyView::OnTimer(UINTnIDEvent)(if(i==101)(i=O;key=false;}〃如果讀到數(shù)組最后?組值即機(jī)械手運(yùn)動到最后則回復(fù)到初始狀態(tài),停止運(yùn)動elseif(((controlkey%2)!=0)&&key){i++;}〃實(shí)現(xiàn)在運(yùn)動過程中點(diǎn)擊控制按鈕運(yùn)動停止,再點(diǎn)擊控制按鈕又開始運(yùn)動的控制Invalidate(FALSE);CView::OnTimer(nIDEvent);}這樣我們就實(shí)現(xiàn)了通過控制模型生成的數(shù)據(jù)來控制機(jī)械手模型的運(yùn)動的過程。由于沒有找到合適的控制模型,所以本文通過五次多項(xiàng)式軌跡規(guī)劃改變不同的邊界條件產(chǎn)生不同的空間運(yùn)動軌跡對仿真系統(tǒng)進(jìn)行了驗(yàn)證.為了簡便,本文定義機(jī)械手運(yùn)動都從同一初始位置開始運(yùn)動,首先點(diǎn)擊''讀取機(jī)械手?jǐn)?shù)據(jù)”選擇文件,彈出一個(gè)對話框如圖4-15所示:圖4-15選擇數(shù)據(jù)文件選擇數(shù)據(jù)文件“shujvl.txt",點(diǎn)擊綠色的機(jī)械手運(yùn)動控制按鈕,機(jī)械手按照文件中的數(shù)據(jù)開始運(yùn)動,在Mallab中繪制的小臂末端的空間運(yùn)動軌跡圖和系統(tǒng)中運(yùn)動仿真最后時(shí)刻效果圖分別如圖4-16和4-17所R<:圖4-16按第一組數(shù)據(jù)運(yùn)動的空間軌跡圖圖4-17讀取“shujvl.txt”選擇數(shù)據(jù)文件“shujv2.txt",空間軌跡圖和仿真運(yùn)動最后效果圖分別如圖4-18、4-19所示:圖4-18按第二組數(shù)據(jù)運(yùn)動的空間軌跡圖

39圖4-19讀取"shujv2.txt”選擇數(shù)據(jù)文件“shujv3.txt",空間軌跡圖和仿真運(yùn)動最后效果圖分別如圖4-20、4-21所示:圖4-19按第二組數(shù)據(jù)運(yùn)動的空間軌跡圖圖4-20讀取“shujv3.txt”時(shí)比空間軌跡圖和系統(tǒng)仿真運(yùn)動的過程,系統(tǒng)準(zhǔn)確的按照預(yù)定的軌跡進(jìn)行了仿真,驗(yàn)證了系統(tǒng)的準(zhǔn)確性和穩(wěn)定性,從而說明系統(tǒng)實(shí)現(xiàn)了基于模型數(shù)據(jù)的運(yùn)動仿真。讀取的三組數(shù)據(jù)和對應(yīng)的多項(xiàng)式附錄。4.5.1實(shí)現(xiàn)觀察視角的交互式鍵盤控制原理和機(jī)械手運(yùn)動的鍵盤控制一樣,將相機(jī)函數(shù)的參數(shù)設(shè)置成變量,通過鍵盤消息響應(yīng)函數(shù)來控制各個(gè)參數(shù)的變化從而實(shí)現(xiàn)觀察視角的鍵盤控制。部分代碼如下:視角函數(shù):gluLookAt(cam.x,cam.y,cam.z,0.0,0,0,upv.x,upv.y,upv.z);//(cam.x,cam.y,cam.z)為相機(jī)坐標(biāo),(0.0,0,0)為目標(biāo)點(diǎn)坐標(biāo),(upv.x,upv.y,upv.z)控制觀察的方向鍵盤消息響應(yīng)函數(shù)代碼:voidCMyView::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags){switch(nChar)(caseVK_UP:〃方向鍵上鍵,相機(jī)右轉(zhuǎn){cam.y++;cam.x++;Invalidate(false);break;)caseVK_D0WN:〃方向鍵下鍵,相機(jī)左轉(zhuǎn)(cam.y—;cam.x-;Invalidate(false);

40break;caseVK_LEFT:〃方向鍵左鍵,相機(jī)拉遠(yuǎn)(cam.z++;Invalidate(false);break;}caseVK_RIGHT:〃方向鍵右鍵,相機(jī)靠近(cam.z—;Invalidate(false);break;))CView::OnKeyDown(nChar,nRepCnt,nFlags);}改變相機(jī)位置可以得到不同的效果。拉近相機(jī)和左轉(zhuǎn)相機(jī)的效果分別如圖如圖4-19和4-20所示:圖4-19拉近相機(jī)圖4-20左轉(zhuǎn)相機(jī)至此我們完成了基于模型的視景仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。

41本文以簡單的三自由度機(jī)器人為研究對象,通過ADAMS虛擬樣機(jī)建模,建立起運(yùn)動學(xué)方程,進(jìn)行工作路徑的軌跡規(guī)劃,對機(jī)器人進(jìn)行運(yùn)動學(xué)仿真和分析。主要進(jìn)行了以下幾個(gè)方面的工作:(1)進(jìn)行了運(yùn)動學(xué)分析。按照通用的D-H法則,通過矩陣變換,得到了機(jī)器人的正運(yùn)動學(xué)方程和初始坐標(biāo),推導(dǎo)出機(jī)器人逆運(yùn)動學(xué)的關(guān)節(jié)角度。(2)運(yùn)用ADAMS虛擬樣機(jī)軟件對機(jī)器人進(jìn)行建模。通過模塊化設(shè)計(jì)和布爾運(yùn)算,對機(jī)器人模型進(jìn)行了結(jié)構(gòu)優(yōu)化。(3)進(jìn)行了軌跡規(guī)劃和仿真。通過ADAMS中內(nèi)嵌的Step和Step5函數(shù),分別進(jìn)行了三次多項(xiàng)式和五次多項(xiàng)式的軌跡規(guī)劃,在ADAMS的后處理程序中對規(guī)劃后的曲線進(jìn)行了仿真分析。(4)利用VisualC++6.0和OpenGL導(dǎo)入并建立了機(jī)械手模型,建立了仿真場景,實(shí)現(xiàn)了基于模型數(shù)據(jù)的運(yùn)動仿真,并實(shí)現(xiàn)了視角的交互式鍵盤控制。通過上述工作,我們得到以下結(jié)論:(1)通過D-H法則建立的機(jī)器人正逆運(yùn)動學(xué)方程是正確的,能夠計(jì)算出機(jī)器人在任意角度時(shí)的坐標(biāo)和任意位置的關(guān)節(jié)角度。(2)ADAMS虛擬樣機(jī)軟件可以進(jìn)行機(jī)器人三維建模,并家打折管理系統(tǒng)需要滿足來自三方面的需求,這三個(gè)方面分別是系統(tǒng)管理員、各商家管理員和消費(fèi)者。系統(tǒng)管理員是維護(hù)整個(gè)系統(tǒng),對各商家管理員、消費(fèi)者、后臺數(shù)據(jù)庫進(jìn)行管理、維護(hù),以及對整個(gè)系統(tǒng)進(jìn)行更改和完善;各商家管理員及時(shí)發(fā)布、更新自家的商品打折的相關(guān)信息:消費(fèi)者的需求是瀏覽到全面的、及時(shí)的商家打折的詳細(xì)信息。系統(tǒng)管理員主要負(fù)責(zé)設(shè)計(jì)系統(tǒng),以及長期地不斷更新、完善系統(tǒng),管理和維護(hù)后臺數(shù)據(jù)庫,他們有權(quán)力批準(zhǔn)哪個(gè)商家加入,給其一個(gè)賬號,讓其注冊、添加、修改信息,對于不合法的商家或已經(jīng)不存在的商家撤消其資格。各商家管理員根據(jù)已經(jīng)申請并獲得批準(zhǔn)的賬號登錄到系統(tǒng),發(fā)布自家的信息,并及時(shí)進(jìn)行更改,尤其是打折商品的信息,還可以瀏覽、刪除、添加、保存、打印相關(guān)信息。他們要本著誠信的原則,不能欺騙消費(fèi)者,否則系統(tǒng)管理員會根據(jù)調(diào)查和消費(fèi)者的反映,取消其資格。本系統(tǒng)的目的就是讓消費(fèi)者在第一時(shí)間,全面的、準(zhǔn)確的瀏覽到詳細(xì)的各個(gè)商家打折信息。消費(fèi)者如果是第一次使用本系統(tǒng),只需申請一個(gè)合法的賬號和密碼就可以登錄進(jìn)去,進(jìn)入系統(tǒng)后,消費(fèi)者可以添加、修改、刪除自己的信息,也可以不添加,就可以免費(fèi)使用本系統(tǒng)提供的信息。在第二次登在PowerBuilder中,窗口是應(yīng)用程序與用戶交互的界面,是非常重要的一類對象,用戶通過窗口響應(yīng)程序提供必要的數(shù)據(jù),提示所需要完成的工作,應(yīng)用程序通過窗口顯示運(yùn)行狀態(tài)和執(zhí)行結(jié)果。幾乎每個(gè)PowerBuilder應(yīng)用程序都要使用窗口,因此創(chuàng)建窗口成為開發(fā)應(yīng)用程序必不可少的。窗口的創(chuàng)建方式有兩種:普通方式和繼承方式。本系統(tǒng)的所有窗口都是使用普通方式創(chuàng)建的。PowerBuilder提供了六種窗口類型,它們的表現(xiàn)風(fēng)格和使用環(huán)境各不相同。主窗口是一種方式,是獨(dú)立于其他窗口的單獨(dú)窗口,能覆蓋其他的窗口,同時(shí)也能被其他的窗口所覆蓋。用戶可用一個(gè)主窗口作為用戶與應(yīng)用的交互界面,通常應(yīng)用打開的第一個(gè)窗口就是主窗口,除非用戶指定此窗口為MDI風(fēng)格。主窗口可以帶有菜單,能夠被最大化、最小化或改變大?。?Jo本系統(tǒng)的應(yīng)用程序的主要功能都是在主窗口及在其下打開的眾多窗口中完成的。由于本系錄時(shí)則不用重新申請,只需輸入已經(jīng)申請的賬號和密碼,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限判斷出是消費(fèi)者而非管理員,讓其進(jìn)入相應(yīng)的窗口,瀏覽系統(tǒng)提供的信息。

42在本系統(tǒng)的登錄窗口設(shè)置里有權(quán)限設(shè)置,主要判斷是管理員還是消費(fèi)者,對于有些商家不想公開和保密的信息,消費(fèi)者是看不到的,也是不能修改的,消費(fèi)者只能修改自己的個(gè)人信息。本系統(tǒng)還提供打印功能,管理員或消費(fèi)者可以把自己有用的信息打印出來。對其進(jìn)行運(yùn)動學(xué)分析,運(yùn)動學(xué)分析是針對相關(guān)設(shè)計(jì)點(diǎn)的運(yùn)動參數(shù)進(jìn)行的。ADAMS軟件強(qiáng)大的函數(shù)功能可以實(shí)現(xiàn)所需要的參數(shù)關(guān)聯(lián),后處理程序中的仿真功能可以實(shí)現(xiàn)機(jī)器人的運(yùn)動學(xué)和動力學(xué)分析。(3)軌跡規(guī)劃中我們可以看出三次多項(xiàng)式軌跡規(guī)劃只能規(guī)劃位移和速度,而五次多項(xiàng)式規(guī)劃可以規(guī)劃位移,速度和加速度,規(guī)劃效果優(yōu)于前者。這是因?yàn)槲宕味囗?xiàng)式軌跡規(guī)劃的邊界條件中包含了加速度信息,因此我們可以推斷:規(guī)劃次數(shù)越高,效果越好。(4)VC++6.0和OpenGL能夠很好的實(shí)現(xiàn)可視化視景仿真系統(tǒng)的開發(fā),功能擴(kuò)展性很強(qiáng),能夠很好的實(shí)現(xiàn)交互式仿真,實(shí)現(xiàn)對模型的實(shí)時(shí)控制。后續(xù)工作展望:(1)通過對簡單的三自由度機(jī)器人運(yùn)動學(xué)分析,我們可以進(jìn)行復(fù)雜的機(jī)器人運(yùn)動學(xué)推導(dǎo),比如六自由度關(guān)節(jié)機(jī)器人的運(yùn)動學(xué)分析。(2)在運(yùn)動學(xué)分析后,可以進(jìn)行動力學(xué)分析,通過ADAMS和MATLAB的聯(lián)合仿真,對機(jī)器人關(guān)節(jié)的驅(qū)動進(jìn)行控制?!?4】(3)本文僅對機(jī)器人進(jìn)行了三次多項(xiàng)式和五次多項(xiàng)式軌跡規(guī)劃,我們還可以嘗試關(guān)節(jié)坐標(biāo)空間和直角坐標(biāo)空間的其它軌跡規(guī)劃方法。(4)由于時(shí)間關(guān)系,本文只是實(shí)現(xiàn)了視景仿真根據(jù)調(diào)查研究做出的需求分析,然后對系統(tǒng)的整個(gè)功能做出分析,并劃分出具體的模塊。系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。根據(jù)需求分析本系統(tǒng)需要完成的功能主要有:(1)登錄窗口的設(shè)置,已經(jīng)有賬號和口令的用戶只需正確真寫這兩項(xiàng)就可以登錄,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限,判斷是否管理員還是一般用戶,然后進(jìn)入不同的窗口,提供不同的信息和服務(wù)。(2)注冊設(shè)置,新用戶可以單擊注冊按鈕,申請一個(gè)新的合法的賬號和口令,就可以進(jìn)入系統(tǒng),首先是添加個(gè)人信息,包括用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期幾項(xiàng),用戶也可以不添加,只接進(jìn)入使用本系統(tǒng),在系統(tǒng)內(nèi),可以再進(jìn)行信息的修改、添加、刪除。(3)口令修改,不管是管理員還是一般用戶,為了安全或根據(jù)個(gè)人喜好,對自己的口令進(jìn)行修改。(4)用戶信息的添加,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期。(5)用戶信息的刪除,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email,注冊日期。(6)用戶信息的保存,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期。(7)用戶信息的檢索,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、EmaiL(8)商品信息的添加,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(9)商品信息的刪除,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(10)商品信息的修改,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(11)商品信息的檢索,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)系統(tǒng)的簡單建模和基于模型數(shù)據(jù)的運(yùn)動仿真,模型建立很粗糙,場景材質(zhì)、光照等設(shè)置不是很理想,還具有當(dāng)今社會是一個(gè)信息社會,一個(gè)知識經(jīng)濟(jì)時(shí)代。自世界上第一臺計(jì)算機(jī)ENINC(Electronicnumericalintegratorandcalculator)于1946年在美國問世到現(xiàn)在,計(jì)算機(jī)業(yè)飛速發(fā)展,技術(shù)淘汰指標(biāo)高的驚人,價(jià)格下降以及軟件應(yīng)用的快速擴(kuò)展引發(fā)了以信息處理計(jì)算機(jī)化為標(biāo)志的“微機(jī)革命”,隨之而來的是以全球信息網(wǎng)絡(luò)普及和全球信息共享為標(biāo)志的“全球信息網(wǎng)絡(luò)革命”的蓬勃興起??梢?,世界已進(jìn)入在計(jì)算機(jī)信息管理領(lǐng)域中激烈競爭的時(shí)代,計(jì)算機(jī)」經(jīng)

43變得普通的不能再普通的工具,如同我們離不開的自行車、汽車、電腦一樣。我們應(yīng)該承認(rèn),誰掌握的知識多,信息量大,信息處理速度快,批量大,誰的效率就高,誰就能在各種競爭中立于不敗之地。1.1管理信息系統(tǒng)概述管理信息系統(tǒng)(MIS)的概念是1961年美國人J.D.GALLAGHER首先提出來的,是一門新興的、集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)及計(jì)算機(jī)科學(xué)為一體的綜合性學(xué)科,是一個(gè)不斷發(fā)展的新型學(xué)科,MIS的定義隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的進(jìn)步也在不斷更新,在現(xiàn)階段普遍認(rèn)為MIS是人為或計(jì)算機(jī)設(shè)備以及其他信息處理手段合成并用于管理信息的系統(tǒng)。MIS包括計(jì)算機(jī)、網(wǎng)絡(luò)通信設(shè)備等硬件成分,也包括操作系統(tǒng)、應(yīng)用軟件包等軟件成分,隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展還會出現(xiàn)更多的內(nèi)容。MIS的結(jié)構(gòu)由信源、信宿、信息處理、信息用戶和信息管理者等五個(gè)部分組成。完善的MIS具有以下四個(gè)標(biāo)準(zhǔn):確定的信息需求、信息的可采集性與可加工性、可以通過程序?yàn)楣芾砣藛T提供信息、可以對信息進(jìn)行管理。管理信息系統(tǒng)是企業(yè)的信息系統(tǒng),通過研究企業(yè)中信息管理活動的全過程,以便有效的管理信息,提供各類管理決策信息,輔助企業(yè)進(jìn)行現(xiàn)代化管理。具體作用如下:(1)用統(tǒng)?標(biāo)準(zhǔn)處理和提供信息,排除使用前后矛盾的不完整的數(shù)據(jù)。(2)完整、及時(shí)地提供在管理及決策中需要的數(shù)據(jù)。(3)利用指定的數(shù)據(jù)關(guān)系式分析數(shù)據(jù),客觀預(yù)測未來。(4)向各級管理機(jī)構(gòu)提供不同詳細(xì)程度的報(bào)告,縮短分析和解釋時(shí)間。(5)用最低的費(fèi)用最短的時(shí)間提供盡可能精確、可靠的信息,以便使決策者選擇最佳的實(shí)施方案,以提高企業(yè)的經(jīng)濟(jì)效益[1]。1.2本系統(tǒng)開發(fā)的目的和研究意義目前,在商務(wù)網(wǎng)站中,網(wǎng)頁上用到的數(shù)據(jù)都是從后臺數(shù)據(jù)庫獲取的。這些數(shù)據(jù)大多是根據(jù)商家提供的信息或是從其他媒體中截取,甚至是派人親自去打聽的,然后由錄入員逐條分類錄入。由于要處理的數(shù)據(jù)量巨大,更新速度要求頻繁,尤其是打折商品的信息,時(shí)更新的要求更大,時(shí)效性強(qiáng)。此外,從消費(fèi)者方面來說,他們從網(wǎng)頁上瀏覽到的商家的打折信息由于沒有系統(tǒng)的管理,比較零散,給他們帶來了很大的不便,他們不能快速得得知最新的、全面的、真實(shí)的打折信息?;谏碳液拖M(fèi)者的利益,我們決定開發(fā)這個(gè)用于商務(wù)網(wǎng)站中管理后臺數(shù)據(jù)庫的商家打折管理信息系統(tǒng),就是將各個(gè)商家的有關(guān)打折商品的信息存到數(shù)據(jù)庫中,并對其進(jìn)行有效的管理、維護(hù)、處理與分析,為消費(fèi)者提供及時(shí)、齊全、準(zhǔn)確、可靠的打折信息,同時(shí)極大保證商家的利潤。1.3本文的主要工作本文的主要工作有:第一,對系統(tǒng)作詳細(xì)的分析,包括系統(tǒng)的需求分析、功能分析和數(shù)據(jù)庫需求分析。第二,對系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì),包括系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)功能模塊設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì);其中功能模塊設(shè)計(jì)主要完成了對系統(tǒng)管理模塊、用戶安全管理模塊和商品信息管理模塊的設(shè)計(jì)。第三,實(shí)現(xiàn)系統(tǒng),完成了相應(yīng)的數(shù)據(jù)庫連接和應(yīng)用程序編寫,生成可執(zhí)行文件,并對系統(tǒng)進(jìn)行維護(hù)。2商家打折管理信息系統(tǒng)的系統(tǒng)分析

44所謂系統(tǒng)分析,就是指在整個(gè)系統(tǒng)開發(fā)工程中,解決“做什么”的問題,把要解決哪些問題,滿足用戶哪些具體的信息需求調(diào)查分析清楚,從邏輯上或說從信息處理的功能需求上提出系統(tǒng)的方案,即邏輯模型,為下一階段進(jìn)行物理方案設(shè)計(jì),解決怎么辦提供依據(jù)。它是信息開發(fā)系統(tǒng)中的一個(gè)重要階段,是建立系統(tǒng)模型的第一步。其核心是目標(biāo)分析與需求分析,最后提出系統(tǒng)的邏輯方案⑵。2.1系統(tǒng)需求分析商家打折管理系統(tǒng)需要滿足來自三方面的需求,這三個(gè)方面分別是系統(tǒng)管理員、各商家管理員和消費(fèi)者。系統(tǒng)管理員是維護(hù)整個(gè)系統(tǒng),對各商家管理員、消費(fèi)者、后臺數(shù)據(jù)庫進(jìn)行管理、維護(hù),以及對整個(gè)系統(tǒng)進(jìn)行更改和完善;各商家管理員及時(shí)發(fā)布、更新自家的商品打折的相關(guān)信息;消費(fèi)者的需求是瀏覽到全面的、及時(shí)的商家打折的詳細(xì)信息。系統(tǒng)管理員主要負(fù)責(zé)設(shè)計(jì)系統(tǒng),以及長期地不斷更新、完善系統(tǒng),管理和維護(hù)后臺數(shù)據(jù)庫,他們有權(quán)力批準(zhǔn)哪個(gè)商家加入,給其一個(gè)賬號,讓其注冊、添加、修改信息,對于不合法的商家或已經(jīng)不存在的商家撤消其資格。各商家管理員根據(jù)一經(jīng)申請并獲得批準(zhǔn)的賬號登錄到系統(tǒng),發(fā)布自家的信息,并及時(shí)進(jìn)行更改,尤其是打折商品的信息,還可以瀏覽、刪除、添加、保存、打印相關(guān)信息。他們要本著誠信的原則,不能欺騙消費(fèi)者,否則系統(tǒng)管理員會根據(jù)調(diào)查和消費(fèi)者的反映,取消其資格。本系統(tǒng)的目的就是讓消費(fèi)者在第一時(shí)間,全面的、準(zhǔn)確的瀏覽到詳細(xì)的各個(gè)商家打折信息。消費(fèi)者如果是第一次使用本系統(tǒng),只需申請一個(gè)合法的賬號和密碼就可以登錄進(jìn)去,進(jìn)入系統(tǒng)后,消費(fèi)者可以添加、修改、刪除自己的信息,也可以不添加,就可以免費(fèi)使用本系統(tǒng)提供的信息。在第二次登錄時(shí)則不用重新申請,只需輸入已經(jīng)申請的賬號和密碼,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限判斷出是消費(fèi)者而非管理員,讓其進(jìn)入相應(yīng)的窗口,瀏覽系統(tǒng)提供的信息。在本系統(tǒng)的登錄窗口設(shè)置里有權(quán)限設(shè)置,主要判斷是管理員還是消費(fèi)者,對于有些商家不想公開和保密的信息,消費(fèi)者是看不到的,也是不能修改的,消費(fèi)者只能修改自己的個(gè)人信息。本系統(tǒng)還提供打印功能,管理員或消費(fèi)者可以把自己有用的信息打印出來。2.2系統(tǒng)功能分析根據(jù)調(diào)查研究做出的需求分析,然后對系統(tǒng)的整個(gè)功能做出分析,并劃分出具體的模塊。系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。根據(jù)需求分析本系統(tǒng)需要完成的功能主要有:(1)登錄窗口的設(shè)置,已經(jīng)有賬號和口令的用戶只需正確真寫這兩項(xiàng)就可以登錄,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限,判斷是否管理員還是一般用戶,然后進(jìn)入不同的窗口,提供不同的信息和服務(wù)。(2)注冊設(shè)置,新用戶可以單擊注冊按鈕,申請一個(gè)新的合法的賬號和口令,就可以進(jìn)入系統(tǒng),首先是添加個(gè)人信息,包括用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期幾項(xiàng),用戶也可以不添加,只接進(jìn)入使用本系統(tǒng),在系統(tǒng)內(nèi),可以再進(jìn)行信息的修改、添加、刪除。(3)口令修改,不管是管理員還是一般用戶,為了安全或根據(jù)個(gè)人喜好,對自己的口令進(jìn)行修改。(4)用戶信息的添加,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系用話、Email、注冊日期。(5)用戶信息的刪除,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email,注冊日期。(6)用戶信息的保存,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系用話、Emaik注冊日期。(7)用戶信息的檢索,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、EmaiL(8)商品信息的添加,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(9)商品信息的刪除,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。

45(10)商品信息的修改,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(11)商品信息的檢索,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。2.1數(shù)據(jù)庫需求分析在仔細(xì)調(diào)查分析有關(guān)網(wǎng)上購物信息和商家打折管理信息折和用戶需求的基礎(chǔ)上,得出用戶的需求具體體現(xiàn)在各商家及其各種商品尤其是打折商品的信息的查詢、瀏覽和保存;管理員的需求具體體現(xiàn)在各商家及其商品尤其是打折商品信息的提供、保存、更新和查詢。因此要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成?份詳盡的數(shù)據(jù)字典。據(jù)此,我們得到如圖2.1所示的本系統(tǒng)處理的數(shù)據(jù)流程圖。否是圖2.1商家打折信息管理系統(tǒng)數(shù)據(jù)流程圖針對對商家打折信息管理系統(tǒng)的需求,通過系統(tǒng)工作過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)出如下所述的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):(1)用戶安全管理信息,包括的數(shù)據(jù)項(xiàng)有:用戶賬號、用戶口令、用戶姓名、用戶級別、用戶性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期等。(2)商品管理信息,包括的數(shù)據(jù)項(xiàng)有:商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、生產(chǎn)日期、出銷商場、商場出銷數(shù)量等。

463商家打折管理信息系統(tǒng)的系統(tǒng)設(shè)計(jì)3.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是為實(shí)現(xiàn)需求目標(biāo)而對軟件的系統(tǒng)結(jié)構(gòu)進(jìn)行的總體設(shè)計(jì)。系統(tǒng)結(jié)構(gòu)是系統(tǒng)的高層次結(jié)構(gòu)形式。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)需要在時(shí)間和空間之間、硬件和軟件之間、簡單化和一般化之間、效率和可維護(hù)性之間做出權(quán)衡,其策略取決于具體的應(yīng)用目標(biāo)。本系統(tǒng)的模塊劃分如下:(1)用戶安全管理模塊:不管是系統(tǒng)管理員、各商家管理員,還是消費(fèi)者,都統(tǒng)稱為用戶。木模塊主要是維護(hù)各用戶的信息安全。(2)商品信息管理模塊:各商家管理員輸入其出銷商品的信息供消費(fèi)者瀏覽;系統(tǒng)管理員可監(jiān)督其準(zhǔn)確性,是否欺騙消費(fèi)者;消費(fèi)者主要是瀏覽商家的商品,按需購買。3.2系統(tǒng)功能模塊設(shè)計(jì)對系統(tǒng)的各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,可得到如圖3.1所示的系統(tǒng)功能模塊圖。圖3.1系統(tǒng)功能模塊圖3.2.1建立應(yīng)用程序主窗口在PowerBuilder中,窗口是應(yīng)用程序與用戶交互的界面,是非常重要的一類對象,用戶通過窗口響應(yīng)程序提供必要的數(shù)據(jù),提示所需要完成的工作,應(yīng)用程序通過窗口顯示運(yùn)行狀態(tài)和執(zhí)行結(jié)果。幾乎每個(gè)PowerBuilder應(yīng)用程序都要使用窗口,因此創(chuàng)建窗口成為開發(fā)應(yīng)用程序必不可少的。窗口的創(chuàng)建方式有兩種:普通方式和繼承方式。本系統(tǒng)的所有窗口都是使用普通方式創(chuàng)建的。PowerBuilder提供了六種窗口類型,它們的表現(xiàn)風(fēng)格和使用環(huán)境各不相同。主窗口是一種方式,是獨(dú)立于其他窗口的單獨(dú)窗口,能覆蓋其他的窗口,同時(shí)也能被其他的窗口所覆蓋。用戶可用一個(gè)主窗口作為用戶與應(yīng)用的交互界面,通常應(yīng)用打開的第一個(gè)窗口就是主窗口,除非用戶指定此窗口為MDI風(fēng)格。主窗口可以帶有菜單,能夠被最大化、最小化或改變大?。?]。本系統(tǒng)的應(yīng)用程序的主要功能都是在主窗口及在其下打開的眾多窗口中完成的。由于本系統(tǒng)有不同的用戶,包括不同的管理員和消費(fèi)者使用,他們的需求不同,為方便使用,建立了兩個(gè)主窗口,針對兩種管理員的主窗口是w_main,針對消費(fèi)者的主窗口是w_main1,主:窗口w_main的設(shè)置如下圖所示:圖3.2主窗口w_main主窗口w_main1的設(shè)置如下圖所示:圖3.3主窗口w_mainl3.2.2菜單設(shè)計(jì)菜單和窗口一樣是圖形用戶界面的一個(gè)基本要素。菜單與窗口結(jié)合在一起,既增加了程序的功能,又方便了用戶的操作。除了

47簡單情況外,絕大多數(shù)應(yīng)用程序都使用菜單,它己經(jīng)成為商業(yè)化程序的標(biāo)準(zhǔn)界面元素。菜單能夠有效地把程序功能組織起來,在有限的屏幕空間中分組展示應(yīng)用程序的功能。[4]菜單由一系列菜單項(xiàng)構(gòu)成,用戶通過菜單項(xiàng)發(fā)出命令,指示程序完成期待的任務(wù)。除了子窗口和響應(yīng)窗口外,其他類型的窗口都可以擁有菜單。PowerBuilder中,菜單也是一種對象,在應(yīng)用設(shè)計(jì)過程中,隨時(shí)都可以創(chuàng)建和修改菜單。所以在本系統(tǒng)中設(shè)計(jì)并使用了菜單。根據(jù)需求,在本系統(tǒng)中設(shè)計(jì)了兩個(gè)菜單,分別是m_manage、m_user,其主要功能是分別連接到兩個(gè)主窗口中,在打開主窗口后,可以根據(jù)需要完成相應(yīng)的操作。為了美觀,也為了快捷操作,可以為每個(gè)菜單添加與其功能相近的圖標(biāo),直接點(diǎn)擊圖標(biāo)也可在主窗口打開相應(yīng)菜單。3.1.1系統(tǒng)管理模塊的設(shè)計(jì)系統(tǒng)管理模塊主要的功能有:實(shí)現(xiàn)用戶登錄,用戶重新登錄,修改口令,退出系統(tǒng)。主要有登錄窗口、重新登錄窗口、口令修改窗口、退出按鈕。(1)登錄窗口的設(shè)計(jì)用戶要使用系統(tǒng),首先要登錄。要進(jìn)入本系統(tǒng)需要申請一個(gè)合法的賬號,不管是管理員還是消費(fèi)者。對于第一次使用本系統(tǒng)的商家管理員,系統(tǒng)管理員會給其一個(gè)賬號和權(quán)限,讓其進(jìn)入管理員窗口,然后可以修改他們的相關(guān)信息,但權(quán)限是不能修改的,已經(jīng)是不可變的了,除非這個(gè)商家退出系統(tǒng),不再加入使用本系統(tǒng)。對于第一次使用本系統(tǒng)的和消費(fèi)者,也要進(jìn)行注冊,申請一個(gè)合法的賬號,輸入合法的口令,申請成功后,系統(tǒng)會讓其先填寫個(gè)人信息,點(diǎn)擊保存,將其保存在數(shù)據(jù)里,然后再進(jìn)入系統(tǒng),否則系統(tǒng)不會保存?zhèn)€人信息,在下次登錄時(shí)當(dāng)今社會是?個(gè)信息社會,一個(gè)知識經(jīng)濟(jì)時(shí)代。自世界上第一臺計(jì)算機(jī)ENINC(Electronicnumericalintegratorandcalculator)于1946年在美國問世到現(xiàn)在,計(jì)算機(jī)業(yè)飛速發(fā)展,技術(shù)淘汰指標(biāo)高的驚人,價(jià)格下降以及軟件應(yīng)用的快速擴(kuò)展引發(fā)了以信息處理計(jì)算機(jī)化為標(biāo)志的“微機(jī)革命”,隨之而來的是以全球信息網(wǎng)絡(luò)普及和全球信息共享為標(biāo)志的“全球信息網(wǎng)絡(luò)革命”的蓬勃興起??梢姡澜缫堰M(jìn)入在計(jì)算機(jī)信息管理領(lǐng)域中激烈競爭的時(shí)代,計(jì)算機(jī)已經(jīng)變得普通的不能再普通的工具,如同我們離不開的自行車、汽車、電腦一樣。我們應(yīng)該承認(rèn),誰掌握的知識多,信息量大,信息處理速度快,批量大,誰的效率就高,誰就能在各種競爭中立于不敗之地。1.1管理信息系統(tǒng)概述管理信息系統(tǒng)(MIS)的概念是1961年美國人J.D.GALLAGHER首先提出來的,是一門新興的、集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)及計(jì)算機(jī)科學(xué)為一體的綜合性學(xué)科,是一個(gè)不斷發(fā)展的新型學(xué)科,MIS的定義隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的進(jìn)步也在不斷更新,在現(xiàn)階段普遍認(rèn)為MIS是人為或計(jì)算機(jī)設(shè)備以及其他信息處理手段合成并用于管理信息的系統(tǒng)。MIS包括計(jì)算機(jī)、網(wǎng)絡(luò)通信設(shè)備等硬件成分,也包括操作系統(tǒng)、應(yīng)用軟件包等軟件成分,隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展還會出現(xiàn)更多的內(nèi)容。MIS的結(jié)構(gòu)由信源、信宿、信息處理、信息用戶和信息管理者等五個(gè)部分組成。完善的MIS具有以下四個(gè)標(biāo)準(zhǔn):確定的信息需求、信息的可采集性與可加工性、可以通過程序?yàn)楣芾砣藛T提供信息、可以對信息進(jìn)行管理。管理信息系統(tǒng)是企業(yè)的信息系統(tǒng),通過研究企業(yè)中信息管理活動的全過程,以便有效的管理信息,提供各類管理決策信息,輔助企業(yè)進(jìn)行現(xiàn)代化管理。具體作用如下:(1)用統(tǒng)一標(biāo)準(zhǔn)處理和提供信息,排除使用前后矛盾的不完整的數(shù)據(jù)。(2)完整、及時(shí)地提供在管理及決策中需要的數(shù)據(jù)。(3)利用指定的數(shù)據(jù)關(guān)系式分析數(shù)據(jù),客觀預(yù)測未來。

48(4)向各級管理機(jī)構(gòu)提供不同詳細(xì)程度的報(bào)告,縮短分析和解釋時(shí)間。(5)用最低的費(fèi)用最短的時(shí)間提供盡可能精確、可靠的信息,以便使決策者選擇最佳的實(shí)施方案,以提高企業(yè)的經(jīng)濟(jì)效益[1]。1.1本系統(tǒng)開發(fā)的目的和研究意義目前,在商務(wù)網(wǎng)站中,網(wǎng)頁上用到的數(shù)據(jù)都是從后臺數(shù)據(jù)庫獲取的。這些數(shù)據(jù)大多是根據(jù)商家提供的信息或是從其他媒體中截取,甚至是派人親自去打聽的,然后由錄入員逐條分類錄入。由于要處理的數(shù)據(jù)量巨大,更新速度要求頻繁,尤其是打折商品的信息,時(shí)更新的要求更大,時(shí)效性強(qiáng)。此外,從消費(fèi)者方面來說,他們從網(wǎng)頁上瀏覽到的商家的打折信息由于沒有系統(tǒng)的管理,比較零散,給他們帶來了很大的不便,他們不能快速得得知最新的、全面的、真實(shí)的打折信息?;谏碳液拖M(fèi)者的利益,我們決定開發(fā)這個(gè)用于商務(wù)網(wǎng)站中管理后臺數(shù)據(jù)庫的商家打折管理信息系統(tǒng),就是將各個(gè)商家的有關(guān)打折商品的信息存到數(shù)據(jù)庫中,并對其進(jìn)行有效的管理、維護(hù)、處理與分析,為消費(fèi)者提供及時(shí)、齊全、準(zhǔn)確、可靠的打折信息,同時(shí)極大保證商家的利潤。1.2本文的主要工作本文的主要工作有:第一,對系統(tǒng)作詳細(xì)的分析,包括系統(tǒng)的需求分析、功能分析和數(shù)據(jù)庫需求分析。第二,對系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì),包括系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)功能模塊設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì):其中功能模塊設(shè)計(jì)主耍完成了對系統(tǒng)管理模塊、用戶安全管理模塊和商品信息管理模塊的設(shè)計(jì)。第三,實(shí)現(xiàn)系統(tǒng),完成了相應(yīng)的數(shù)據(jù)庫連接和應(yīng)用程序編寫,生成可執(zhí)行文件,并對系統(tǒng)進(jìn)行維護(hù)。2商家打折管理信息系統(tǒng)的系統(tǒng)分析所謂系統(tǒng)分析,就是指在整個(gè)系統(tǒng)開發(fā)工程中,解決“做什么”的問題,把要解決哪些問題,滿足用戶哪些具體的信息需求調(diào)查分析清楚,從邏輯上或說從信息處理的功能需求上提出系統(tǒng)的方案,即邏輯模型,為下一階段進(jìn)行物理方案設(shè)計(jì),解決怎么辦提供依據(jù)。它是信息開發(fā)系統(tǒng)中的一個(gè)重要階段,是建立系統(tǒng)模型的第一步。其核心是目標(biāo)分析與需求分析,最后提出系統(tǒng)的邏輯方案⑵。2.1系統(tǒng)需求分析商家打折管理系統(tǒng)需要滿足來自三方面的需求,這三個(gè)方面分別是系統(tǒng)管理員、各商家管理員和消費(fèi)者。系統(tǒng)管理員是維護(hù)整個(gè)系統(tǒng),對各商家管理員、消費(fèi)者、后臺數(shù)據(jù)庫進(jìn)行管理、維護(hù),以及對整個(gè)系統(tǒng)進(jìn)行更改和完善;各商家管理員及時(shí)發(fā)布、更新自家的商品打折的相關(guān)信息;消費(fèi)者的需求是瀏覽到全面的、及時(shí)的商家打折的詳細(xì)信息。系統(tǒng)管理員主要負(fù)責(zé)設(shè)計(jì)系統(tǒng),以及長期地不斷更新、完善系統(tǒng),管理和維護(hù)后臺數(shù)據(jù)庫,他們有權(quán)力批準(zhǔn)哪個(gè)商家加入,給其一個(gè)賬號,讓其注冊、添加、修改信息,對于不合法的商家或已經(jīng)不存在的商家撤消其資格。各商家管理員根據(jù)已經(jīng)申請并獲得批準(zhǔn)的賬號登錄到系統(tǒng),發(fā)布自家的信息,并及時(shí)進(jìn)行更改,尤其是打折商品的信息,還可以瀏覽、刪除、添加、保存、打印相關(guān)信息。他們要本著誠信的原則,不能欺騙消費(fèi)者,否則系統(tǒng)管理員會根據(jù)調(diào)查和消費(fèi)者的反映,取消其資格。本系統(tǒng)的目的就是讓消費(fèi)者在第一時(shí)間,全面的、準(zhǔn)確的瀏覽到詳細(xì)的各個(gè)商家打折信息。消費(fèi)者如果是第一次使用本系統(tǒng),只需申請一個(gè)合法的賬號和密碼就可以登錄進(jìn)去,進(jìn)入系統(tǒng)后,消費(fèi)者可以添加、修改、刪除自己的信息,也可以不添加,就可以免費(fèi)使用本系統(tǒng)提供的信息。在第二次登錄時(shí)則不用重新申請,只需輸入已經(jīng)申請的賬號和密碼,系統(tǒng)會根據(jù)一經(jīng)設(shè)置的權(quán)限判

49斷出是消費(fèi)者而非管理員,讓其進(jìn)入相應(yīng)的窗口,瀏覽系統(tǒng)提供的信息。在本系統(tǒng)的登錄窗口設(shè)置里有權(quán)限設(shè)置,主要判斷是管理員還是消費(fèi)者,對于有些商家不想公開和保密的信息,消費(fèi)者是看不到的,也是不能修改的,消費(fèi)者只能修改自己的個(gè)人信息。本系統(tǒng)還提供打印功能,管理員或消費(fèi)者可以把自己有用的信息打印出來。2.1系統(tǒng)功能分析根據(jù)調(diào)查研究做出的需求分析,然后對系統(tǒng)的整個(gè)功能做出分析,并劃分出具體的模塊。系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。根據(jù)需求分析本系統(tǒng)需要完成的功能主要有:(1)登錄窗口的設(shè)置,已經(jīng)有賬號和口令的用戶只需正確真寫這兩項(xiàng)就可以登錄,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限,判斷是否管理員還是一般用戶,然后進(jìn)入不同的窗口,提供不同的信息和服務(wù)。(2)注冊設(shè)置,新用戶可以單擊注冊按鈕,申請一個(gè)新的合法的賬號和口令,就可以進(jìn)入系統(tǒng),首先是添加個(gè)人信息,包括用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期幾項(xiàng),用戶也可以不添加,只接進(jìn)入使用本系統(tǒng),在系統(tǒng)內(nèi),可以再進(jìn)行信息的修改、添加、刪除。(3)口令修改,不管是管理員還是一般用戶,為了安全或根據(jù)個(gè)人喜好,對自己的口令進(jìn)行修改。(4)用戶信息的添加,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期。(5)用戶信息的刪除,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email,注冊日期。(6)用戶信息的保存,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期。(7)用戶信息的檢索,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、EmaiL(8)商品信息的添加,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(9)商品信息的刪除,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(10)商品信息的修改,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(11)商品信息的檢索,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。2.3數(shù)據(jù)庫需求分析在仔細(xì)調(diào)查分析有關(guān)網(wǎng)上購物信息和商家打折管理信息折和用戶需求的基礎(chǔ)上,得出用戶的需求具體體現(xiàn)在各商家及其各種商品尤其是打折商品的信息的查詢、瀏覽和保存;管理員的需求具體體現(xiàn)在各商家及其商品尤其是打折商品信息的提供、保存、更新和查詢。因此要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典。據(jù)此,我們得到如圖2.1所示的本系統(tǒng)處理的數(shù)據(jù)流程圖。

50圖2.1商家打折信息管理系統(tǒng)數(shù)據(jù)流程圖針對對商家打折信息管理系統(tǒng)的需求,通過系統(tǒng)工作過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)出如下所述的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):(1)用戶安全管理信息,包括的數(shù)據(jù)項(xiàng)有:用戶賬號、用戶口令、用戶姓名、用戶級別、用戶性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期等。(2)商品管理信息,包括的數(shù)據(jù)項(xiàng)有:商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、生產(chǎn)日期、出銷商場、商場出銷數(shù)量等。3商家打折管理信息系統(tǒng)的系統(tǒng)設(shè)計(jì)3.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是為實(shí)現(xiàn)需求目標(biāo)而對軟件的系統(tǒng)結(jié)構(gòu)進(jìn)行的總體設(shè)計(jì)。系統(tǒng)結(jié)構(gòu)是系統(tǒng)的高層次結(jié)構(gòu)形式。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)需要在時(shí)間和空間之間、硬件和軟件之間、簡單化和一般化之間、效率和可維護(hù)性之間做出權(quán)衡,其策略取決于具體的應(yīng)用目標(biāo)。本系統(tǒng)的模塊劃分如下:(1)用戶安全管理模塊:不管是系統(tǒng)管理員、各商家管理員,還是消費(fèi)者,都統(tǒng)稱為用戶。本模塊主要是維護(hù)各用戶的信息安全。(2)商品信息管理模塊:各商家管理員輸入其出銷商品的信息供消費(fèi)者瀏覽;系統(tǒng)管理員可監(jiān)督其準(zhǔn)確性,是否欺騙消費(fèi)者:消費(fèi)者主要是瀏覽商家的商品,按需購買。3.2系統(tǒng)功能模塊設(shè)計(jì)對系統(tǒng)的各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,可得到如圖3.1所示的系統(tǒng)功能模塊圖。圖3.1系統(tǒng)功能模塊圖3.2.1建立應(yīng)用程序主窗口

51在PowerBuilder中,窗口是應(yīng)用程序與用戶交互的界面,是非常重要的一類對象,用戶通過窗口響應(yīng)程序提供必要的數(shù)據(jù),提示所需要完成的工作,應(yīng)用程序通過窗口顯示運(yùn)行狀態(tài)和執(zhí)行結(jié)果。幾乎每個(gè)PowerBuilder應(yīng)用程序都要使用窗口,因此創(chuàng)建窗口成為開發(fā)應(yīng)用程序必不可少的。窗口的創(chuàng)建方式有兩種:普通方式和繼承方式。本系統(tǒng)的所有窗口都是使用普通方式創(chuàng)建的。PowerBuilder提供了六種窗口類型,它們的表現(xiàn)風(fēng)格和使用環(huán)境各不相同。主窗口是一種方式,是獨(dú)立于其他窗口的單獨(dú)窗口,能覆蓋其他的窗口,同時(shí)也能被其他的窗口所覆蓋。用戶可用一個(gè)主窗口作為用戶與應(yīng)用的交互界面,通常應(yīng)用打開的第一個(gè)窗口就是主窗口,除非用戶指定此窗口為MDI風(fēng)格。主窗口可以帶有菜單,能夠被最大化、最小化或改變大小[3]o本系統(tǒng)的應(yīng)用程序的主要功能都是在主窗口及在其下打開的眾多窗口中完成的。由于本系統(tǒng)有不同的用戶,包括不同的管理員和消費(fèi)者使用,他們的需求不同,為方便使用,建立了兩個(gè)主窗口,針對兩種管理員的主窗口是w_main,針對消費(fèi)者的主窗口是w_main1o主窗口w_main的設(shè)置如下圖所示:圖3.2主窗口w_main主窗口w_mainl的設(shè)置如下圖所示:圖3.3主窗口w_main13.1.1菜單設(shè)計(jì)菜單和窗口一樣是圖形用戶界面的一個(gè)基本要素。菜單與窗口結(jié)合在一起,既增加了程序的功能,又方便了用戶的操作。除了簡單情況外,絕大多數(shù)應(yīng)用程序都使用菜單,它已經(jīng)成為商業(yè)化程序的標(biāo)準(zhǔn)界面元素。菜單能夠有效地把程序功能組織起來,在有限的屏幕空間中分組展示應(yīng)用程序的功能。[4]菜單由一系列菜單項(xiàng)構(gòu)成,用戶通過菜單項(xiàng)發(fā)出命令,指示程序完成期待的任務(wù)。除了子窗口和響應(yīng)窗口外,其他類型的窗口都可以擁有菜單。PowerBuilder菜單也是一種對象,在應(yīng)用設(shè)計(jì)過程中,隨時(shí)都可以創(chuàng)建和修改菜單。所以在本系統(tǒng)中設(shè)計(jì)并使用了菜單。根據(jù)需求,在本系統(tǒng)中設(shè)計(jì)了兩個(gè)菜單,分別是m_manage、m_user,其主要功能是分別連接到兩個(gè)主窗口中,在打開主窗口后,可以根據(jù)需要完成相應(yīng)的操作。為了美觀,也為了快捷操作,可以為每個(gè)菜單添加與其功能相近的圖標(biāo),直接點(diǎn)擊圖標(biāo)也可在主窗口打開相應(yīng)菜單。3.1.2系統(tǒng)管理模塊的設(shè)計(jì)系統(tǒng)管理模塊主要的功能有:實(shí)現(xiàn)用戶登錄,用戶重新登錄,修改口令,退出系統(tǒng)。主要有登錄窗口、重新登錄窗口、口令修改窗口、退出按鈕。(1)登錄窗口的設(shè)計(jì)用戶要使用系統(tǒng),首先要登錄。要進(jìn)入本系統(tǒng)需要申請一個(gè)合法的賬號,不管是管理員還是消費(fèi)者。對于第一次使用本系統(tǒng)的商家管理員,系統(tǒng)管理員會給其一個(gè)賬號和權(quán)限,讓其進(jìn)入管理員窗口,然后可以修改他們的相關(guān)信息,但權(quán)限是不能修改的,已經(jīng)是不可變的了,除非這個(gè)商家退出系統(tǒng),不再加入使用本系統(tǒng)。對于第一次使用本系統(tǒng)的和消費(fèi)者,也要進(jìn)行注冊,申請一個(gè)合法的賬號,輸入合法的口令,申請成功后,系統(tǒng)會讓其先填寫個(gè)人信息,點(diǎn)擊保存,將其保存在數(shù)據(jù)里,然后再進(jìn)入系統(tǒng),否則系統(tǒng)不會保存?zhèn)€人信息,在下次登錄時(shí)還得申請賬號。對于填寫的信息,可以在系統(tǒng)內(nèi)進(jìn)入修改。對于已經(jīng)有賬號和口令的用

52戶,只需耍填寫正確的賬號和口令,系統(tǒng)會在內(nèi)部根據(jù)權(quán)限判斷是管理員還是消費(fèi)者,分別讓其進(jìn)入管理員窗口和消費(fèi)者使用窗□o當(dāng)今社會是,個(gè)信息社會,一個(gè)知識經(jīng)濟(jì)時(shí)代。自世界上第一臺計(jì)算機(jī)ENINC(Electronicnumericalintegratorandcalculator)于1946年在美國問世到現(xiàn)在,計(jì)算機(jī)業(yè)飛速發(fā)展,技術(shù)淘汰指標(biāo)高的驚人,價(jià)格下降以及軟件應(yīng)用的快速擴(kuò)展引發(fā)了以信息處理計(jì)算機(jī)化為標(biāo)志的“微機(jī)革命”,隨之而來的是以全球信息網(wǎng)絡(luò)普及和全球信息共享為標(biāo)志的“全球信息網(wǎng)絡(luò)革命”的蓬勃興起。可見,世界已進(jìn)入在計(jì)算機(jī)信息管理領(lǐng)域中激烈競爭的時(shí)代,計(jì)算機(jī)已經(jīng)變得普通的不能再普通的工具,如同我們離不開的自行車、汽車、電腦一樣。我們應(yīng)該承認(rèn),誰掌握的知識多,信息量大,信息處理速度快,批量大,誰的效率就高,誰就能在各種競爭中立于不敗之地。1.1管理信息系統(tǒng)概述管理信息系統(tǒng)(M1S)的概念是1961年美國人J.D.GALLAGHER首先提出來的,是一門新興的、集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)及計(jì)算機(jī)科學(xué)為一體的綜合性學(xué)科,是一個(gè)不斷發(fā)展的新型學(xué)科,MIS的定義隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的進(jìn)步也在不斷更新,在現(xiàn)階段普遍認(rèn)為MIS是人為或計(jì)算機(jī)設(shè)備以及其他信息處理手段合成并用于管理信息的系統(tǒng)。MIS包括計(jì)算機(jī)、網(wǎng)絡(luò)通信設(shè)備等硬件成分,也包括操作系統(tǒng)、應(yīng)用軟件包等軟件成分,隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展還會出現(xiàn)更多的內(nèi)容。MIS的結(jié)構(gòu)由信源、信宿、信息處理、信息用戶和信息管理者等五個(gè)部分組成。完善的MIS具有以下四個(gè)標(biāo)準(zhǔn):確定的信息需求、信息的可采集性與可加工性、可以通過程序?yàn)楣芾砣藛T提供信息、可以對信息進(jìn)行管理。管理信息系統(tǒng)是企業(yè)的信息系統(tǒng),通過研究企業(yè)中信息管理活動的全過程,以便有效的管理信息,提供各類管理決策信息,輔助企業(yè)進(jìn)行現(xiàn)代化管理。具體作用如下:(1)用統(tǒng)一標(biāo)準(zhǔn)處理和提供信息,排除使用前后矛盾的不完整的數(shù)據(jù)。(2)完整、及時(shí)地提供在管理及決策中需要的數(shù)據(jù)。(3)利用指定的數(shù)據(jù)關(guān)系式分析數(shù)據(jù),客觀預(yù)測未來。(4)向各級管理機(jī)構(gòu)提供不同詳細(xì)程度的報(bào)告,縮短分析和解釋時(shí)間。(5)用最低的費(fèi)用最短的時(shí)間提供盡可能精確、可靠的信息,以便使決策者選擇最佳的實(shí)施方案,以提高企業(yè)的經(jīng)濟(jì)效益口]。1.2本系統(tǒng)開發(fā)的目的和研究意義目前,在商務(wù)網(wǎng)站中,網(wǎng)頁上用到的數(shù)據(jù)都是從后臺數(shù)據(jù)庫獲取的。這些數(shù)據(jù)大多是根據(jù)商家提供的信息或是從其他媒體中截取,甚至是派人親自去打聽的,然后由錄入員逐條分類錄入。由于要處理的數(shù)據(jù)量巨大,更新速度要求頻繁,尤其是打折商品的信息,對更新的要求更大,時(shí)效性強(qiáng)。此外,從消費(fèi)者方面來說,他們從網(wǎng)頁上瀏覽到的商家的打折信息由于沒有系統(tǒng)的管理,比較零散,給他們帶來了很大的不便,他們不能快速得得知最新的、全面的、真實(shí)的打折信息?;谏碳液拖M(fèi)者的利益,我們決定開發(fā)這個(gè)用于商務(wù)網(wǎng)站中管理后臺數(shù)據(jù)庫的商家打折管理信息系統(tǒng),就是將各個(gè)商家的有關(guān)打折商品的信息存到數(shù)據(jù)庫中,并對其進(jìn)行有效的管理、維護(hù)、處理與分析,為消費(fèi)者提供及時(shí)、齊全、準(zhǔn)確、可靠的打折信息,同時(shí)極大保證商家的利潤。1.3本文的主要工作本文的主要工作有:第一,對系統(tǒng)作詳細(xì)的分析,包括系統(tǒng)的需求分析、功能分析和數(shù)據(jù)庫需求分析。第二,對系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì),包括系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)功能模塊設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì);其中功能模塊設(shè)計(jì)主要完成了對系統(tǒng)管理模塊、用戶安全管理模塊和商品信息管理模塊的設(shè)計(jì)。

53第三,實(shí)現(xiàn)系統(tǒng),完成了相應(yīng)的數(shù)據(jù)庫連接和應(yīng)用程序編寫,生成可執(zhí)行文件,并對系統(tǒng)進(jìn)行維護(hù)。2商家打折管理信息系統(tǒng)的系統(tǒng)分析所謂系統(tǒng)分析,就是指在整個(gè)系統(tǒng)開發(fā)工程中,解決“做什么”的問題,把要解決哪些問題,滿足用戶哪些具體的信息需求調(diào)查分析清楚,從邏輯上或說從信息處理的功能需求上提出系統(tǒng)的方案,即邏輯模型,為下一階段進(jìn)行物理方案設(shè)計(jì),解決怎么辦提供依據(jù)。它是信息開發(fā)系統(tǒng)中的一個(gè)重要階段,是建立系統(tǒng)模型的第一步。其核心是目標(biāo)分析與需求分析,最后提出系統(tǒng)的邏輯方案⑵。2.1系統(tǒng)需求分析商家打折管理系統(tǒng)需要滿足來自三方面的需求,這三個(gè)方面分別是系統(tǒng)管理員、各商家管理員和消費(fèi)者。系統(tǒng)管理員是維護(hù)整個(gè)系統(tǒng),對各商家管理員、消費(fèi)者、后臺數(shù)據(jù)庫進(jìn)行管理、維護(hù),以及對整個(gè)系統(tǒng)進(jìn)行更改和完善;各商家管理員及時(shí)發(fā)布、更新自家的商品打折的相關(guān)信息;消費(fèi)者的需求是瀏覽到全面的、及時(shí)的商家打折的詳細(xì)信息。系統(tǒng)管理員主要負(fù)責(zé)設(shè)計(jì)系統(tǒng),以及長期地不斷更新、完善系統(tǒng),管理和維護(hù)后臺數(shù)據(jù)庫,他們有權(quán)力批準(zhǔn)哪個(gè)商家加入,給其一個(gè)賬號,讓其注冊、添加、修改信息,對于不合法的商家或已經(jīng)不存在的商家撤消其資格。各商家管理員根據(jù)已經(jīng)申請并獲得批準(zhǔn)的賬號登錄到系統(tǒng),發(fā)布自家的信息,并及時(shí)進(jìn)行更改,尤其是打折商品的信息,還可以瀏覽、刪除、添加、保存、打印相關(guān)信息。他們要本著誠信的原則,不能欺騙消費(fèi)者,否則系統(tǒng)管理員會根據(jù)調(diào)查和消費(fèi)者的反映,取消其資格。本系統(tǒng)的目的就是讓消費(fèi)者在第一時(shí)間,全面的、準(zhǔn)確的瀏覽到詳細(xì)的各個(gè)商家打折信息。消費(fèi)者如果是第一次使用本系統(tǒng),只需申請一個(gè)合法的賬號和密碼就可以登錄進(jìn)去,進(jìn)入系統(tǒng)后,消費(fèi)者可以添加、修改、刪除自己的信息,也可以不添加,就可以免費(fèi)使用本系統(tǒng)提供的信息。在第二次登錄時(shí)則不用重新申請,只需輸入已經(jīng)申請的賬號和密碼,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限判斷出是消費(fèi)者而非管理員,讓其進(jìn)入相應(yīng)的窗口,瀏覽系統(tǒng)提供的信息。在本系統(tǒng)的登錄窗口設(shè)置里有權(quán)限設(shè)置,主要判斷是管理員還是消費(fèi)者,對于有些商家不想公開和保密的信息,消費(fèi)者是看不到的,也是不能修改的,消費(fèi)者只能修改自己的個(gè)人信息。本系統(tǒng)還提供打印功能,管理員或消費(fèi)者可以把自己有用的信息打印出來。2.2系統(tǒng)功能分析根據(jù)調(diào)查研究做出的需求分析,然后對系統(tǒng)的整個(gè)功能做出分析,并劃分出具體的模塊。系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。根據(jù)需求分析本系統(tǒng)需要完成的功能主要有:(1)登錄窗口的設(shè)置,已經(jīng)有賬號和口令的用戶只需正確真寫這兩項(xiàng)就可以登錄,系統(tǒng)會根據(jù)已經(jīng)設(shè)置的權(quán)限,判斷是否管理員還是一般用戶,然后進(jìn)入不同的窗口,提供不同的信息和服務(wù)。(2)注冊設(shè)置,新用戶可以單擊注冊按鈕,申請一個(gè)新的合法的賬號和口令,就可以進(jìn)入系統(tǒng),首先是添加個(gè)人信息,包括用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期幾項(xiàng),用戶也可以不添加,只接進(jìn)入使用本系統(tǒng),在系統(tǒng)內(nèi),可以再進(jìn)行信息的修改、添加、刪除。(3)口令修改,不管是管理員還是一般用戶,為了安全或根據(jù)個(gè)人喜好,對自己的口令進(jìn)行修改。(4)用戶信息的添加,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email,注冊日期。

54(5)用戶信息的刪除,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email,注冊日期。(6)用戶信息的保存,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期。(7)用戶信息的檢索,用戶賬號、用戶口令、姓名、性別、工作單位、家庭住址、聯(lián)系電話、EmaiL(8)商品信息的添加,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(9)商品信息的刪除,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(10)商品信息的修改,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。(11)商品信息的檢索,商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、出銷商場、生產(chǎn)日期、現(xiàn)有數(shù)量。2.1數(shù)據(jù)庫需求分析在仔細(xì)調(diào)查分析有關(guān)網(wǎng)上購物信息和商家打折管理信息折和用戶需求的基礎(chǔ)上,得出用戶的需求具體體現(xiàn)在各商家及其各種商品尤其是打折商品的信息的查詢、瀏覽和保存;管理員的需求具體體現(xiàn)在各商家及其商品尤其是打折商品信息的提供、保存、更新和查詢。因此要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典。據(jù)此,我們得到如圖2.1所示的本系統(tǒng)處理的數(shù)據(jù)流程圖。否是圖2.1商家打折信息管理系統(tǒng)數(shù)據(jù)流程圖

55針對對商家打折信息管理系統(tǒng)的需求,通過系統(tǒng)工作過程的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)出如下所述的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):(1)用戶安全管理信息,包括的數(shù)據(jù)項(xiàng)有:用戶賬號、用戶口令、用戶姓名、用戶級別、用戶性別、工作單位、家庭住址、聯(lián)系電話、Email、注冊日期等。(2)商品管理信息,包括的數(shù)據(jù)項(xiàng)有:商品類型號、商品類型、商品名稱、商品級別、生產(chǎn)地址、生產(chǎn)日期、出銷商場、商場出銷數(shù)量等。3商家打折管理信息系統(tǒng)的系統(tǒng)設(shè)計(jì)3.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)設(shè)計(jì)是為實(shí)現(xiàn)需求目標(biāo)而對軟件的系統(tǒng)結(jié)構(gòu)進(jìn)行的總體設(shè)計(jì)。系統(tǒng)結(jié)構(gòu)是系統(tǒng)的高層次結(jié)構(gòu)形式。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)需要在時(shí)間和空間之間、硬件和軟件之間、簡單化和一般化之間、效率和可維護(hù)性之間做出權(quán)衡,其策略取決于具體的應(yīng)用目標(biāo)。本系統(tǒng)的模塊劃分如下:(1)用戶安全管理模塊:不管是系統(tǒng)管理員、各商家管理員,還是消費(fèi)者,都統(tǒng)稱為用戶。本模塊主要是維護(hù)各用戶的信息安全。(2)商品信息管理模塊:各商家管理員輸入其出銷商品的信息供消費(fèi)者瀏覽;系統(tǒng)管理員可監(jiān)督其準(zhǔn)確性,是否欺騙消費(fèi)者;消費(fèi)者主要是瀏覽商家的商品,按需購買。3.2系統(tǒng)功能模塊設(shè)計(jì)對系統(tǒng)的各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序設(shè)計(jì)的要求,可得到如圖3.1所示的系統(tǒng)功能模塊圖。圖3」系統(tǒng)功能模塊圖3.2.1建立應(yīng)用程序主窗口在PowerBuilder中,窗口是應(yīng)用程序與用戶交互的界面,是非常重要的一類對象,用戶通過窗口響應(yīng)程序提供必要的數(shù)據(jù),提示所需要完成的工作,應(yīng)用程序通過窗口顯示運(yùn)行狀態(tài)和執(zhí)行結(jié)果。幾乎每個(gè)PowerBuilder應(yīng)用程序都要使用窗口,因此創(chuàng)建窗口成為開發(fā)應(yīng)用程序必不可少的。窗口的創(chuàng)建方式有兩種:普通方式和繼承方式。本系統(tǒng)的所有窗口都是使用普通方式創(chuàng)建的。PowerBuilder提供了六種窗口類型,它們的表現(xiàn)風(fēng)格和使用環(huán)境各不相同。主窗口是一種方式,是獨(dú)立于其他窗口的單獨(dú)窗口,能覆蓋其他的窗口,同時(shí)也能被其他的窗口所覆蓋。用戶可用一個(gè)主窗口作為用戶與應(yīng)用的交互界面,通常應(yīng)用打開的第一個(gè)窗口就是主窗口,除非用戶指定此窗口為MDI風(fēng)格。主窗口可以帶有菜單,能夠被最大化、最小化或改變大小[3].本系統(tǒng)的應(yīng)用程序的主要功能都是在主窗口及在其下打開的眾多窗口中完成的。由于本系統(tǒng)有不同的用戶,包括不同的管理員和消費(fèi)者使用,他們的需求不同,為方便使用,建立了兩個(gè)主窗口,針對兩種管理員的主窗口是w_main,針對消費(fèi)者的主窗口是w_main1。主窗口w_main的設(shè)置如下圖所示:圖3.2主窗口w_main

56主窗口w_mainl的設(shè)置如卜圖所小:圖3.3主窗口w_mainl3.1.1菜單設(shè)計(jì)菜單和窗口一樣是圖形用戶界面的一個(gè)基本要素。菜單與窗口結(jié)合在一起,既增加了程序的功能,又方便了用戶的操作。除了簡單情況外,絕大多數(shù)應(yīng)用程序都使用菜單,它已經(jīng)成為商業(yè)化程序的標(biāo)準(zhǔn)界面元素。菜單能夠有效地把程序功能組織起來,在有限的屏幕空間中分組展示應(yīng)用程序的功能。[4]菜單由一系列菜單項(xiàng)構(gòu)成,用戶通過菜單項(xiàng)發(fā)出命令,指示程序完成期待的任務(wù)。除了子窗口和響應(yīng)窗口外,其他類型的窗口都可以擁有菜單。PowerBuilder中,菜單也是一種對象,在應(yīng)用設(shè)計(jì)過程中,隨時(shí)都可以創(chuàng)建和修改菜單。所以在本系統(tǒng)中設(shè)計(jì)并使用了菜單。根據(jù)需求,在本系統(tǒng)中設(shè)計(jì)了兩個(gè)菜單,分別是mjnanage、m_user,其主要功能是分別連接到兩個(gè)主窗口中,在打開主窗口后,可以根據(jù)需要完成相應(yīng)的操作。為了美觀,也為了快捷操作,可以為每個(gè)菜單添加與其功能相近的圖標(biāo),直接點(diǎn)擊圖標(biāo)也可在主窗口打開相應(yīng)菜單。3.1.2系統(tǒng)管理模塊的設(shè)計(jì)系統(tǒng)管理模塊主要的功能有:實(shí)現(xiàn)用戶登錄,用戶重新登錄,修改口令,退出系統(tǒng)。主要有登錄窗口、重新登錄窗口、口令修改窗口、退出按鈕。(1)登錄窗口的設(shè)計(jì)用戶要使用系統(tǒng),首先要登錄。要進(jìn)入本系統(tǒng)需要申請一個(gè)合法的賬號,不管是管理員還是消費(fèi)者。對于第一次使用本系統(tǒng)的商家管理員,系統(tǒng)管理員會給其一個(gè)賬號和權(quán)限,讓其進(jìn)入管理員窗口,然后可以修改他們的相關(guān)信息,但權(quán)限是不能修改的,已經(jīng)是不可變的了,除非這個(gè)商家退出系統(tǒng),不再加入使用本系統(tǒng)。對于第一次使用本系統(tǒng)的和消費(fèi)者,也要進(jìn)行注冊,申請一個(gè)合法的賬號,輸入合法的口令,申請成功后,系統(tǒng)會讓其先填寫個(gè)人信息,點(diǎn)擊保存,將其保存在數(shù)據(jù)里,然后再進(jìn)入系統(tǒng),否則系統(tǒng)不會保存?zhèn)€人信息,在下次登錄時(shí)還得申請賬號。對于填寫的信息,可以在系統(tǒng)內(nèi)進(jìn)入修改。對于已經(jīng)有賬號和口令的用戶,只需要填寫正確的賬號和口令,系統(tǒng)會在內(nèi)部根據(jù)權(quán)限判斷是管理員還是消費(fèi)者,分別讓其進(jìn)入管理員窗口和消費(fèi)者使用窗口。因此,在登錄窗口要有輸入賬號和口令的文本框,也有登錄和注冊兩個(gè)按鈕。具體設(shè)因此,在登錄窗口要有輸入賬號和口令的文本框,也有登錄和注冊兩個(gè)按鈕。具體設(shè)還得申請賬號。對于填寫的信息,可以在系統(tǒng)內(nèi)進(jìn)入修改。對于已經(jīng)有賬號和口令的用戶,只需要填寫正確的賬號和口令,系統(tǒng)會在內(nèi)部根據(jù)權(quán)限判斷是管理員還是消費(fèi)者,分別讓其進(jìn)入管理員窗口和消費(fèi)者使用窗口。因此,在登錄窗口要有輸入賬號和口令的文本框,也有登錄和注冊兩個(gè)按鈕。具體設(shè)很大的改進(jìn)空間,比如還可以通過Matlab和VC++混合編程實(shí)現(xiàn)控制模型對機(jī)械手模型的實(shí)時(shí)控制等。

57致謝本論文是在唐猛老師和熊鷹老師的精心指導(dǎo)下完成的,二位老師不僅在論文內(nèi)容上給了我諸多指導(dǎo),更重要的是他們教會了我一種研究問題的方法,那就是從總體上著手,在細(xì)微處落筆。他們清晰的研究思路,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,言傳身教,讓我受益匪淺。在此,特向唐老師和熊老師表示真摯的感謝!

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。
最近更新
更多
大家都在看
近期熱門
關(guān)閉