999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自動導(dǎo)引車系統(tǒng)運行路徑規(guī)劃軟件的開發(fā)

2017-11-03 08:13:53于煥李明儒劉桂娟
物流技術(shù)與應(yīng)用 2017年10期

于煥 李明儒 劉桂娟/文

自動導(dǎo)引車系統(tǒng)運行路徑規(guī)劃軟件的開發(fā)

于煥 李明儒 劉桂娟/文

自動導(dǎo)引車系統(tǒng)(AGVS)是現(xiàn)今工業(yè)自動化系統(tǒng)內(nèi)一種比較典型的應(yīng)用,與其相關(guān)的研究與開發(fā)方向很多。本文闡述了在Visual C++可視化編程環(huán)境下如何規(guī)劃AGV運行路徑,并探討了地圖的開發(fā)步驟和方法。本文介紹的地圖生成軟件按照AGVS的客觀要求,實現(xiàn)了自動導(dǎo)引車運行環(huán)境中路徑、建筑物及地面設(shè)備的可視化繪制、編輯、保存,并最終形成特定格式的地圖數(shù)據(jù)文件用以控制AGV的現(xiàn)場運行。

自動導(dǎo)引車系統(tǒng)、地圖、路徑規(guī)劃、軟件開發(fā)

自動導(dǎo)引車系統(tǒng)(Automated Guided Vehicle System)通常被稱為AGVS,是廣泛應(yīng)用于柔性生產(chǎn)線、自動化倉庫、無人車間等領(lǐng)域的一種無人駕駛輸送系統(tǒng)。一個AGVS由多臺AGV及中央監(jiān)控系統(tǒng)、通信系統(tǒng)、導(dǎo)引系統(tǒng)、充電系統(tǒng)、地面輔助系統(tǒng)等組成。目前的AGV大多是以固定路線運行的。固定路線在AGVS中通常被稱為地圖,其作用是導(dǎo)引AGV小車進行往復(fù)循環(huán)運行。

本文詳細描述了在Visual C++(微軟公司的C++開發(fā)工具,具有集成開發(fā)環(huán)境,可提供C++等編程語言)可視化編程環(huán)境下如何規(guī)劃AGV運行路徑,研究地圖的開發(fā)步驟和方法。本文介紹的地圖生成軟件按照AGVS的客觀要求,實現(xiàn)了自動導(dǎo)引車運行環(huán)境中路徑、建筑物及地面設(shè)備的可視化繪制、編輯、保存,并最終形成特定格式的地圖數(shù)據(jù)文件用以控制AGV的現(xiàn)場運行;軟件實現(xiàn)了各種路徑連接點的相關(guān)特性,實現(xiàn)了路徑自動編號、查找,可以隨時更改地圖坐標原點,進行無極縮放和滾動,能根據(jù)實際需要對地圖進行編輯修改。能進行地圖有效性驗證,保證AGV運行的安全可靠;在地圖繪制過程中,軟件還具有自動跟蹤、智能判斷以及提示功能,保證用戶十分輕松地完成各種復(fù)雜的操作。

一、路徑規(guī)劃軟件的圖形基礎(chǔ)

圖1:圓弧動態(tài)畫法

由于本軟件基于圖形界面,所以首先需要確立必要的圖形基礎(chǔ)。

1.定義圖形對象

根據(jù)Visual C++面向?qū)ο蟮奶匦?,把地圖中各種構(gòu)成要素抽象為不同的類別,如建筑物類、地面設(shè)備類及路徑類。建筑物基類又可分為圓形建筑物、方形建筑物等不同類型的建筑物;設(shè)備基類可分為方形設(shè)備、多邊形設(shè)備等不同類型的設(shè)備;路徑基類可分為直線路徑、圓弧路徑、側(cè)移路徑等不同類型的路徑。對地圖中各圖形元素的操作,實際上就是對以上定義的各個類型對象的操作。

圖2:備件管理信息化系統(tǒng)結(jié)構(gòu)示意圖

圖3:以下代碼舉例說明圓弧路徑的選中操作

2.確定屏幕的映射方式

一般情況下,屏幕繪圖都以像素作為繪圖單位,稱之為設(shè)備坐標。在進行繪圖操作的時候,不可避免要用到設(shè)備坐標系。WINDOWS提供了幾種映射方式(或稱坐標系),可以通過它們來和設(shè)備上下文相聯(lián)系。一般來說,最常用的就是WM_TEXT方式,在此軟件設(shè)計中也采用WM_TEXT方式。在WM_TEXT坐標方式下,坐標被映射到像素,X值向右方遞增,Y值向下方遞增。當(dāng)確定了設(shè)備上下文的映射方式之后,就可以利用CDC類的LptoDP函數(shù)及DPtoLP函數(shù),在邏輯坐標和設(shè)備坐標之間進行轉(zhuǎn)換,為圖形在屏幕上的顯示做好準備。

3. 系統(tǒng)坐標的變換

由于本軟件是有關(guān)地圖操作的,所以其呈現(xiàn)在用戶面前的坐標系應(yīng)該是符合人們?nèi)粘A?xí)慣的以米為單位的笛卡爾坐標系,即X值向右方遞增,Y值向上方遞增,這與上面采用的WM_TEXT屏幕映射方式有概念上的差異,因此需要推導(dǎo)一套坐標變換公式實現(xiàn)兩套坐標系之間的轉(zhuǎn)換。

程序中最終存儲的各圖形元素的坐標為實際坐標,使用DPtoVP函數(shù)把實際坐標轉(zhuǎn)換為邏輯坐標,即可實現(xiàn)屏幕顯示。相反,使用VPtoDP函數(shù)把屏幕圖形的邏輯坐標轉(zhuǎn)換為實際坐標,即可實現(xiàn)坐標的存儲。

二、軟件設(shè)計的指導(dǎo)思想和實現(xiàn)方法

以下詳細描述該軟件的設(shè)計思想及實現(xiàn)方法,具體劃分為幾個不同方面:

1. 圖形的畫法實現(xiàn)

地圖中包括路徑類、建筑物類、設(shè)備類等三大類圖形,每一類中又包括十幾種不同的圖形元素,面對如此種類繁多的圖形對象,軟件應(yīng)該提供十分豐富的畫法,如直線路徑的畫法有給定起點畫法、給定起點及終點畫法、給定傾角及長度畫法、鼠標任意拖拽畫法等;圓弧也可以根據(jù)其旋轉(zhuǎn)方向的不同而選擇不同的畫法。由于圖形元素太多,畫法也各異,不便一一介紹,在此選擇比較有代表性的圓弧畫法進行介紹。

假設(shè)通過工具欄選擇順時針鼠標拖拽畫弧,首先在程序中構(gòu)建一個圓弧類對象,在視圖類的鼠標移動事件響應(yīng)函數(shù)OnMouseMove中將光標的形狀設(shè)置為十字形,等待按下鼠標選取圓弧起點。一旦按下鼠標左鍵,在視圖類的鼠標單擊事件響應(yīng)函數(shù)OnLButtonDown中便可得到圓弧對象的起點m_pntStart,此后移動鼠標進入選取圓心階段,同樣在OnMouseMove函數(shù)中進行處理,在屏幕上畫出以鼠標當(dāng)前點為圓心且經(jīng)過m_pntStart點的一個圓,并畫出圓的半徑。隨著鼠標的移動,圓和半徑也不斷更新,提示操作者將要得到的圓弧便在此圓周上。當(dāng)再次按下鼠標左鍵,便選中了鼠標的按下點作為圓弧的圓心。此后便進入圓弧選取階段,當(dāng)再次按下鼠標左鍵并拖動時,屏幕上出現(xiàn)一段以m_pntStart為起點并隨鼠標移動不斷改變弧長的圓弧,此時抬起鼠標左鍵,便可得到圓弧的終點。其值為經(jīng)過兩點(鼠標按下點及圓心點)的直線與圓周的交點。至此一段圓弧繪制完畢,同時在程序中保存此圓弧類對象到程序的圖形對象數(shù)組中。同理,可以完成各種圖形元素的繪制及保存工作。圖1可簡要說明圓弧動態(tài)畫法。

2.圖形的選中

對于地圖軟件視圖窗口中的所有圖形元素,都可以用鼠標來進行選中操作,被選中的圖形以不同于平時的方式進行顯示,并且可以進行屬性的修改操作。由于操作鼠標準確度的差異,對于封閉圖形還好辦,只要鼠標落點在封閉的面積范圍內(nèi)就可以將其認為是要選中的圖形,而對于像直線圓弧之類的線條形的圖形元素來說,鼠標按下點往往很難恰好落在圖形上。解決這個問題當(dāng)然不能強求操作者,而要在軟件上實現(xiàn)一定程度的模糊控制。

具體做法在此舉兩個例子:第一個例子是直線路徑。從數(shù)學(xué)上來講,直線路徑實質(zhì)上就是一條直線段,軟件在這條直線段的兩側(cè)及兩端點附近開放一定范圍,具體的范圍值依據(jù)操作的靈活程度來確定。本軟件的開放范圍定為4個像素,只要在此范圍內(nèi)按下鼠標鍵,便選中圖形。第二個例子是圓弧路徑。對于圓周上的一段圓弧,要判斷一點是否在其上,首先要判斷此點到圓心的距離是否等于圓的半徑,然后要判斷此點相對于圓心的角度是否在圓弧兩個端點相對于圓心的角度范圍內(nèi),如果鼠標按下點滿足以上兩個條件,便選中圖形。然而如果按照上面的做法要用鼠標選中一個圓弧是相當(dāng)困難的,解決的方法是放寬點到圓心距離的判斷條件,實現(xiàn)了在一定的區(qū)域范圍內(nèi)進行選中操作。對于其它圖形,軟件也都做了不同的處理。上頁代碼舉例說明圓弧路徑的選中操作,如圖3:

3.軟件中某些智能畫法的實現(xiàn)

在進行路段繪制時,大多數(shù)情況要求與某條已存在的路段相連。要實現(xiàn)路段相連,可以用給定起點的方法畫路段。但這種方法的不足之處是需要手工輸入起點坐標,為此軟件提供了兩種比較智能的方法實現(xiàn)路段的相連畫法:第一種方法稱為自動跟蹤法,即當(dāng)移動鼠標到路段的端點(設(shè)為PointA點)附近時(幾個像素范圍內(nèi)),按下鼠標左鍵,程序?qū)⒆詣尤ointA點作為將要繪制的路段的起點。第二種方法稱為參考路段法。當(dāng)操作者需要在路段端點比較集中的區(qū)域內(nèi)選擇一條路段端點作為繪圖起點時,利用自動跟蹤法往往很難選中預(yù)期的起點,此時便可以利用參考路段法。首先選中一條路段,該路段將以選中狀態(tài)顯示;一旦選中了參考路段并指定了參考點,接下來的路段繪制將無條件地以參考路段的參考點作為繪制的起點。

一般來說,AGV系統(tǒng)的運行路線至少有一段是閉合曲線。繪制由首尾相連的路段組成的封閉圖形,最大的難點往往不是路段繪制的本身,而是如何最后實現(xiàn)地圖的閉合;因為最后一條路段的終點往往不能恰好與將要相連路段的起點重合,即使對其中某一點的坐標進行修正,也很難滿足連接點的相切特性。基于以上原因,軟件提供了一種非常智能的方法,一步即可實現(xiàn)地圖的閉合,且滿足相切性的要求,這就是圓弧連接法。此項功能的實現(xiàn)主要是根據(jù)兩條直線的直線方程、端點坐標及兩直線夾角平分線的直線方程,計算出滿足相切條件的圓方程,進而得到所需的圓弧。

三、結(jié)論

本文所介紹的AGV系統(tǒng)運行路徑的規(guī)劃與開發(fā)方法,是以Visual C++6.0為編譯環(huán)境所開發(fā)的WINDOWS圖形應(yīng)用程序,并且已經(jīng)在實際工程中得到廣泛應(yīng)用,特別是在美國通用全球多個汽車制造廠的應(yīng)用,AGV系統(tǒng)的穩(wěn)定性及易用性得到了一致好評。由于C++語言本身面向?qū)ο蟮奶匦约按a的可重用性,使得本軟件的后期完善和維護工作變得相對簡單,即使進行功能上大的改動也不會浪費太多的人力、財力。

作者單位為新松機器人自動化股份有限公司

主站蜘蛛池模板: 日韩福利在线观看| 在线观看无码a∨| 亚洲天堂免费在线视频| 中文字幕人妻av一区二区| h网站在线播放| 人妻少妇乱子伦精品无码专区毛片| 日本三级欧美三级| 国产成人三级| 亚洲欧美在线看片AI| 精品乱码久久久久久久| 91外围女在线观看| 国产亚洲精品自在久久不卡| 久久久精品国产亚洲AV日韩| 丁香亚洲综合五月天婷婷| 欧美精品导航| 久久中文字幕不卡一二区| 原味小视频在线www国产| 国产乱人伦偷精品视频AAA| 久久成人18免费| 欧美一区中文字幕| 国产成人精品第一区二区| 亚洲男人天堂网址| 亚洲大学生视频在线播放| 色噜噜狠狠狠综合曰曰曰| 精品福利视频导航| 日韩精品一区二区三区swag| 日韩欧美国产区| 乱色熟女综合一区二区| 一区二区三区精品视频在线观看| 国产成人综合亚洲欧美在| 欧美激情视频二区| 91香蕉国产亚洲一二三区| 欧美日本激情| 婷婷99视频精品全部在线观看| 天天色天天综合| 国产麻豆精品在线观看| 99久久国产综合精品2020| 亚洲男人天堂2020| 日韩一级毛一欧美一国产| 免费人欧美成又黄又爽的视频| 亚洲精品777| 国产一区二区在线视频观看| 免费一级无码在线网站| 日韩AV无码免费一二三区| 91毛片网| 55夜色66夜色国产精品视频| 99久久精品免费看国产免费软件 | 就去色综合| 国产特级毛片aaaaaaa高清| 香蕉eeww99国产在线观看| 精品1区2区3区| 亚洲欧美日韩中文字幕一区二区三区| 国产成人1024精品| 中文字幕永久在线看| 国产免费好大好硬视频| 国产精品亚洲天堂| 在线观看国产网址你懂的| 熟妇人妻无乱码中文字幕真矢织江 | 美女国内精品自产拍在线播放| 国产一区在线观看无码| 亚洲一级毛片在线观播放| 国产在线91在线电影| 国产成人亚洲精品无码电影| 在线观看av永久| 国产91无毒不卡在线观看| 五月婷婷综合在线视频| 香蕉久久国产超碰青草| 国产传媒一区二区三区四区五区| 在线看片免费人成视久网下载| 国产亚洲欧美在线中文bt天堂 | 拍国产真实乱人偷精品| 午夜精品福利影院| 中文无码日韩精品| 国产玖玖玖精品视频| 伊在人亚洲香蕉精品播放 | 91外围女在线观看| 六月婷婷精品视频在线观看| 日韩高清一区 | 人人91人人澡人人妻人人爽 | 亚洲综合九九| 色天天综合| 日韩av无码精品专区|