• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于LabVIEW的足球機(jī)器人電機(jī)調(diào)試系統(tǒng)設(shè)計(jì)

      2010-10-25 12:38:18吳繼偉晏黑仂
      中國測試 2010年1期
      關(guān)鍵詞:字符串圖形化字節(jié)

      吳繼偉,晏黑仂

      (1.廣東工業(yè)大學(xué),廣東 廣州 510075;2.華南理工大學(xué)廣州汽車學(xué)院,廣東 廣州 510800)

      1 引 言

      RobCup中型組足球機(jī)器人(以下簡稱機(jī)器人)系統(tǒng)是當(dāng)今機(jī)器人研究的一個(gè)熱點(diǎn),在近幾年內(nèi)發(fā)展迅速,得到了國內(nèi)外眾多研究人員的關(guān)注[1]。傳統(tǒng)基于一只導(dǎo)向輪、兩只驅(qū)動輪的三輪機(jī)構(gòu)逐漸被四只驅(qū)動輪的四輪結(jié)構(gòu)所代替,機(jī)器人運(yùn)動控制系統(tǒng)是一個(gè)復(fù)雜的機(jī)電耦合系統(tǒng),使得電機(jī)調(diào)試工作更為困難。

      機(jī)器人運(yùn)動控制系統(tǒng)中,目前在電機(jī)調(diào)試方式中多數(shù)直接采用串口調(diào)試助手等軟件進(jìn)行調(diào)試,缺點(diǎn)表現(xiàn)在主要以單條指令進(jìn)行調(diào)試,不利于調(diào)試數(shù)據(jù)的編輯與保存、批量數(shù)據(jù)自動發(fā)送及數(shù)值實(shí)時(shí)圖形化顯示等。實(shí)現(xiàn)的電機(jī)調(diào)試系統(tǒng)使用LabVIEW(Laboratory Virtual Instrument Engineering Workbench)軟件開發(fā)平臺,通過編程,使該系統(tǒng)兼顧了單條指令、多條指令調(diào)試方式,并能實(shí)現(xiàn)對機(jī)器人電機(jī)調(diào)試過程中實(shí)時(shí)采集到的電機(jī)轉(zhuǎn)速值自動保存和圖形化顯示等,可直接觀察到電機(jī)轉(zhuǎn)速值的實(shí)際變化。該系統(tǒng)為電機(jī)調(diào)試工作提供了極大的方便,克服了目前電機(jī)調(diào)試中的缺點(diǎn),使得調(diào)試工作快速、直觀,極大地提高了調(diào)試效率。

      LabVIEW是由美國國家儀器公司開發(fā)出的工程軟件包,稱之為虛擬儀器。隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,虛擬儀器在測試領(lǐng)域的使用越來越多,已經(jīng)成為當(dāng)今世界流行的一種儀器構(gòu)成方案。LabVIEW程序稱為虛擬儀器程序[2],簡稱VI(Virtual Instruments)。

      LabVIEW功能強(qiáng)大,靈活方便,與傳統(tǒng)的編程語言相比,編程簡單方便,界面形象直觀,大大地縮短了軟件的研發(fā)周期,可以方便地實(shí)現(xiàn)數(shù)據(jù)的采集、監(jiān)控和分析,可以很容易地實(shí)現(xiàn)儀器控制。數(shù)據(jù)采集是LabVIEW的核心之一,它支持多種硬件接口,如GPIB、VXI、RS232和RS485等協(xié)議的硬件及數(shù)據(jù)采集卡。

      2 電機(jī)調(diào)試系統(tǒng)的組成及其主程序設(shè)計(jì)

      2.1 電機(jī)調(diào)試系統(tǒng)的組成

      電機(jī)調(diào)試系統(tǒng)的組成如圖1所示?;贚abVIEW的電機(jī)調(diào)試系統(tǒng)通過串口給機(jī)器人發(fā)送四組電機(jī)設(shè)定轉(zhuǎn)速值,機(jī)器人運(yùn)動控制系統(tǒng)接收到電機(jī)設(shè)定轉(zhuǎn)速指令后,驅(qū)動電機(jī)開始工作并對電機(jī)轉(zhuǎn)速值進(jìn)行實(shí)時(shí)采樣,把采樣到的電機(jī)轉(zhuǎn)速值存放在發(fā)送緩沖區(qū),以待調(diào)試系統(tǒng)通過串口讀取。調(diào)試系統(tǒng)將讀取到的數(shù)據(jù)進(jìn)行自動保存并予以數(shù)據(jù)圖形化顯示在LabVIEW控制界面上。

      圖1 電機(jī)調(diào)試系統(tǒng)組成

      2.2 調(diào)試系統(tǒng)主程序設(shè)計(jì)

      實(shí)現(xiàn)的電機(jī)調(diào)速系統(tǒng)是通過串口RS232與機(jī)器人進(jìn)行通信的。LabVIEW中實(shí)現(xiàn)串口通信的方式有兩種:(1) 利用 VISA;(2) 使用 ActiveX(采用MScomm)。該文采用方式(1),即在虛擬環(huán)境中使用VISA子VI向串行設(shè)備讀寫數(shù)據(jù),VISA功能模塊是LabVIEW獨(dú)有的一項(xiàng)技術(shù)。

      一個(gè)LabVIEW程序包括三個(gè)主要部分:前面板、框圖程序(后面板)、圖標(biāo)/接線端口[3]。前面板是LabVIEW程序的交互式圖形化用戶界面,用于設(shè)置用戶輸入和顯示程序輸出等控件;后面板則是利用圖形化語言對前面板上的各類控件進(jìn)行控制;圖標(biāo)/接線端口把LabVIEW程序定義成一個(gè)子程序,以便在其他程序中加以調(diào)用,這使LabVIEW得以實(shí)現(xiàn)層次化、模塊化編程。在LabVIEW程序設(shè)計(jì)中,后面板設(shè)計(jì)是整個(gè)程序設(shè)計(jì)的關(guān)鍵[4]。

      如圖2所示為調(diào)試系統(tǒng)后面板LabVIEW主程序流程。在后面板的程序設(shè)計(jì)中,依據(jù)LabVIEW程序設(shè)計(jì)核心思想“數(shù)據(jù)流”[5],該設(shè)計(jì)依據(jù)數(shù)據(jù)流方向,后面板程序采用自左至右的設(shè)計(jì)思路。主程序主要實(shí)現(xiàn)連接各子程序,控制整體的數(shù)據(jù)流向(自左至右),協(xié)調(diào)各子程序間的通信。子程序主要包括串口初始化、數(shù)據(jù)導(dǎo)入及寫入串口和串口數(shù)據(jù)讀取及導(dǎo)出等。在設(shè)計(jì)中實(shí)現(xiàn)LabVIEW串口通信和串口數(shù)據(jù)處理是重點(diǎn),它直接關(guān)系到整個(gè)系統(tǒng)通信是否能實(shí)現(xiàn),最終結(jié)果是否能真實(shí)準(zhǔn)確反映在電機(jī)調(diào)試界面上。

      圖2 LabVIEW主程序流程

      3 調(diào)試系統(tǒng)子程序設(shè)計(jì)

      3.1 LabVIEW串口初始化

      串口初始化是LabVIEW實(shí)現(xiàn)串口通信程序的第一步,如圖3是通過VISA配置串口子VI實(shí)現(xiàn)串口初始化設(shè)置的后面板程序。串口初始化主要是確定通信過程中的串口號、波特率、數(shù)據(jù)位以及校驗(yàn)位等。其中串口號和波特率通過編程可實(shí)現(xiàn)下拉框來進(jìn)行選擇確定其值,實(shí)現(xiàn)過程如圖3所示,定義兩個(gè)系統(tǒng)下拉列表變量為各自條件結(jié)構(gòu)的輸入變量,依據(jù)PC機(jī)端串口號和通信波特率的實(shí)際情況編輯條件結(jié)構(gòu)的值,即可實(shí)現(xiàn)通過下拉框來進(jìn)行選擇確定通信過程中串口號和波特率。數(shù)據(jù)位和校驗(yàn)位默認(rèn)設(shè)置即可。

      3.2 串口數(shù)據(jù)導(dǎo)入程序設(shè)計(jì)

      串口數(shù)據(jù)導(dǎo)入就是將設(shè)定的四組電機(jī)轉(zhuǎn)速值進(jìn)行正確的數(shù)據(jù)格式轉(zhuǎn)換,以達(dá)到符合寫入VISA串口數(shù)據(jù)格式的要求。上位機(jī)LabVIEW控制端向機(jī)器人發(fā)送讀數(shù)據(jù)指令幀后啟動串口通信,該指令幀由5字節(jié)數(shù)據(jù)組成,數(shù)據(jù)幀第一字節(jié)為握手信號(0xFF),數(shù)據(jù)幀第二字節(jié)到第五字節(jié)分別為四個(gè)電機(jī)的設(shè)定轉(zhuǎn)速(0x00-0xFE)。如圖4所示為數(shù)據(jù)導(dǎo)入部分LabVIEW后面板框圖程序。

      在圖4左邊CASE結(jié)構(gòu)部分,選用LabVIEW中選項(xiàng)卡子VI做為case結(jié)構(gòu)的輸入變量實(shí)現(xiàn)了單指令與多指令調(diào)試方式之間方便切換。單指令調(diào)試方式中,通過前面板十六進(jìn)制數(shù)字符串輸入控件設(shè)定電機(jī)的轉(zhuǎn)速值;多指令方式中,采用的是通過以行讀取PC機(jī)端指定路徑下的文本文件方式實(shí)現(xiàn)。按照調(diào)試電機(jī)數(shù)據(jù)字節(jié)數(shù)的要求,該文件存放一定行的數(shù)據(jù),每行數(shù)據(jù)值為設(shè)定的電機(jī)轉(zhuǎn)速,通過索引數(shù)組子VI可確定文本文件的唯一一行作為當(dāng)前的串口的輸入數(shù)據(jù),由于文本文件的一行是一個(gè)十六進(jìn)制數(shù)字符串,需再通過截取字符串子VI,將該行十六進(jìn)制數(shù)字符串分解為單個(gè)電機(jī)的設(shè)定轉(zhuǎn)速值。

      VISA Write串口只能以字符串格式寫入,因此在寫入數(shù)據(jù)之前,必須進(jìn)行十六進(jìn)制數(shù)字符串至字符串之間的轉(zhuǎn)換,將要發(fā)送的命令幀變成一個(gè)字符串送VISA Write節(jié)點(diǎn)的Write Butter。圖4右邊部分即可實(shí)現(xiàn)十六進(jìn)制數(shù)字符串至字符串的轉(zhuǎn)換。

      3.3 串口數(shù)據(jù)導(dǎo)出程序設(shè)計(jì)

      機(jī)器人接收到上位機(jī)LabVIEW控制端發(fā)送讀數(shù)據(jù)指令幀后,通過對電機(jī)碼盤信號的實(shí)時(shí)采集,將最新的四個(gè)電機(jī)轉(zhuǎn)速值加上數(shù)據(jù)指令幀頭存放在發(fā)送緩沖區(qū),以待調(diào)試系統(tǒng)通過VISA Read讀取串口數(shù)據(jù)。

      圖5是將串口讀取的數(shù)據(jù)進(jìn)行判斷,如果數(shù)據(jù)正確則按照規(guī)定好的數(shù)據(jù)協(xié)議計(jì)算出電機(jī)實(shí)際轉(zhuǎn)速值再將它保存并顯示出來。VISA Read每次讀取5個(gè)字節(jié)的數(shù)據(jù),數(shù)據(jù)幀頭由握手信號(0xFF)及四個(gè)電機(jī)的實(shí)際轉(zhuǎn)速值(0x00-0xFE)組成。由于VISA Read也只能以字符串的形式讀取串口數(shù)據(jù),讀出5字節(jié)數(shù)據(jù)后,先通過字符串至字節(jié)數(shù)組轉(zhuǎn)換子VI得5字節(jié)數(shù)組,再通過數(shù)組索引子VI判斷讀取的5個(gè)字節(jié)數(shù)據(jù)的首字節(jié)是否是握手信號0xff(255),以判斷是否正確讀取串口數(shù)據(jù),把此布爾變量作為case結(jié)構(gòu)的輸入,為真則可以確定接下來的四個(gè)字節(jié)數(shù)據(jù)為對應(yīng)電機(jī)的轉(zhuǎn)速值,并通過數(shù)組索引子VI得到各電機(jī)的實(shí)際轉(zhuǎn)速值,然后進(jìn)行數(shù)據(jù)保存和顯示,為假則放棄保存和顯示該次讀取的數(shù)據(jù)。

      圖5的右邊CASE結(jié)構(gòu)部分,將采集到的四個(gè)電機(jī)轉(zhuǎn)速值連接至各波形圖表控件輸入端實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)圖形化顯示。數(shù)據(jù)的自動存盤操作,是將同一次讀取的四電機(jī)轉(zhuǎn)速值創(chuàng)建一數(shù)組后轉(zhuǎn)換為動態(tài)數(shù)據(jù)類型,通過反饋節(jié)點(diǎn)追加寫入測量文件,保存是將轉(zhuǎn)速值與當(dāng)?shù)貢r(shí)間對應(yīng),以文本的形式保存在電腦磁盤中,保存路徑可以自己設(shè)置,方便隨時(shí)提取出來以便后期進(jìn)行分析。

      4 人機(jī)交互界面設(shè)計(jì)及系統(tǒng)測試

      4.1 人機(jī)交互界面設(shè)計(jì)

      機(jī)器人電機(jī)調(diào)試系統(tǒng)前面板如圖6所示。LabVIEW提供了很多圖形化控件,使得系統(tǒng)界面相當(dāng)友好,操作簡單。界面主要分為操作區(qū)和觀測區(qū),操作區(qū)主要包括串口的基本設(shè)置、電機(jī)調(diào)試指令方式選擇(單指令或多指令調(diào)試)及接受緩沖區(qū)的顯示方式設(shè)置;觀測區(qū)主要把讀回的電機(jī)轉(zhuǎn)速值實(shí)時(shí)地進(jìn)行數(shù)值和圖形化顯示,通過觀察前面板觀測區(qū),可以很直觀地知道電機(jī)轉(zhuǎn)速的實(shí)際變化。面板上的兩個(gè)布爾燈控件是分別用來顯示串口是否正常打開和判斷是否正確讀取串口數(shù)據(jù)。

      4.2 系統(tǒng)測試

      機(jī)器人運(yùn)動控制系統(tǒng)中,電機(jī)有正轉(zhuǎn)和反轉(zhuǎn),規(guī)定當(dāng)設(shè)定電機(jī)轉(zhuǎn)速為0X7F時(shí),給定電機(jī)轉(zhuǎn)速為0 r/s,設(shè)定電機(jī)轉(zhuǎn)速小于0X7F為正轉(zhuǎn)、大于0X7F為反轉(zhuǎn)[3],類推可得,設(shè)定電機(jī)轉(zhuǎn)速為0x70則期望電機(jī)轉(zhuǎn)速是正轉(zhuǎn)15 r/s。圖6記錄了調(diào)試系統(tǒng)在單指令調(diào)試方式下機(jī)器人四組電機(jī)給定轉(zhuǎn)速為正轉(zhuǎn)15 r/s下電機(jī)響應(yīng)曲線。通過觀測區(qū)四組電機(jī)響應(yīng)曲線圖,觀察到四組電機(jī)各自轉(zhuǎn)速值的波動和變化趨勢,很直觀地了解到該參數(shù)下的電機(jī)調(diào)試效果,而且在該系統(tǒng)設(shè)置的數(shù)據(jù)自動存盤路徑下,打開相應(yīng)文件可以得到更為詳盡的試驗(yàn)數(shù)據(jù)。與往常用電機(jī)調(diào)試方式相比,該系統(tǒng)使得電機(jī)調(diào)試工作快速、直觀。

      5 結(jié)束語

      LabVIEW是一種功能很強(qiáng)大的虛擬儀器開發(fā)軟件,應(yīng)用該軟件開發(fā)平臺,不僅成功實(shí)現(xiàn)了足球機(jī)器人中基于串口通信的電機(jī)調(diào)試系統(tǒng)設(shè)計(jì),而且可以充分發(fā)揮LabVIEW這一圖形化編程語言的優(yōu)點(diǎn),得到界面元素豐富、交互式良好的人機(jī)界面。測試表明該系統(tǒng)較好克服了目前在電機(jī)調(diào)試方式中存在的缺點(diǎn),提高了機(jī)器人電機(jī)調(diào)試效率,具有一定的實(shí)用價(jià)值。

      [1]戎海龍.自主式足球機(jī)器人運(yùn)動控制系統(tǒng)設(shè)計(jì)與完善[D].沈陽:東北大學(xué),2006.

      [2]楊樂平,李海濤,楊 磊.LabVIEW程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2005.

      [3]陳錫輝,張銀鴻.LabVlEW8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.

      [4]劉君華.基于LabVIEW的虛擬儀器設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003.

      [5]Johnson G W,Jennings R.LabVIEW圖形編程[M].武嘉澍,陸勁昆,譯.北京:北京大學(xué)出版社,2002.

      [6]黃永賢.全自主足球機(jī)器人運(yùn)動控制系統(tǒng)的研制[D].廣州:廣東工業(yè)大學(xué),2008.

      猜你喜歡
      字符串圖形化字節(jié)
      No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
      No.10 “字節(jié)跳動手機(jī)”要來了?
      LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
      簡談MC7字節(jié)碼
      運(yùn)用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
      圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
      一種新的基于對稱性的字符串相似性處理算法
      圖形化儀表控制系統(tǒng)上位機(jī)軟件的設(shè)計(jì)與開發(fā)
      依據(jù)字符串匹配的中文分詞模型研究
      一種針對Java中字符串的內(nèi)存管理方案
      乐陵市| 南昌县| 普陀区| 射洪县| 吴桥县| 师宗县| 绥宁县| 独山县| 武宁县| 渝中区| 珲春市| 绥江县| 辉南县| 兴化市| 诏安县| 卫辉市| 南雄市| 鲁山县| 衡阳县| 安化县| 阳山县| 武穴市| 莒南县| 明光市| 扎赉特旗| 平阳县| 达尔| 衡阳县| 巴林右旗| 博客| 西充县| 西贡区| 南投市| 图木舒克市| 奈曼旗| 察隅县| 丽江市| 璧山县| 博湖县| 西充县| 赫章县|