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

        ?

        淺談利用傳感器參數(shù)還原消防車工作臂姿態(tài)三維圖像

        2015-04-29 00:00:00薛皓天
        中國(guó)新通信 2015年13期

        【摘要】 消防車的安全檢測(cè)中經(jīng)常需要伸展至大于30米的規(guī)定工作高度,因此經(jīng)常在室外進(jìn)行安全檢測(cè),該情況下的檢測(cè)以檢驗(yàn)人員目測(cè),主觀判斷為主,無(wú)法提供進(jìn)一步的數(shù)據(jù)支持,一方面不盡客觀,不符合檢驗(yàn)要求,另一方面對(duì)檢驗(yàn)人員的專業(yè)素質(zhì)要求較高,本文旨在討論利用Unity3D配合VisualStudio開發(fā)能還原消防車工作情況的軟硬件系統(tǒng)。

        【關(guān)鍵詞】 Unity3D 傳感器 三維圖像 消防車

        一、前言

        時(shí)至今日,三維成像技術(shù)早已在工業(yè)、科研、教育娛樂(lè)等眾多領(lǐng)域中廣泛應(yīng)用,在工業(yè)和科研中以往許多以波形、圖表、參數(shù)來(lái)顯示的現(xiàn)場(chǎng)工作狀況早已被替換成直觀的三維圖像,也使得人們對(duì)現(xiàn)場(chǎng)狀態(tài)的判斷也更加準(zhǔn)確快速。在消防車安全檢測(cè)領(lǐng)域中,由于工作狀態(tài)下的消防車工作高度經(jīng)常大于30米,很多時(shí)候,檢測(cè)人員只能通過(guò)目測(cè)來(lái)進(jìn)行檢驗(yàn)。從精確度和有效性上講這樣的方法缺陷較大。因此,本文旨在探討用傳感器和Unity3D三維圖像引擎開發(fā)一個(gè)能夠?qū)崟r(shí)反應(yīng)消防車工作臂工作狀態(tài)的軟硬件系統(tǒng)。

        二、整體系統(tǒng)說(shuō)明

        系統(tǒng)說(shuō)明如圖1所示。數(shù)據(jù)采集器采集陀螺儀和激光測(cè)距傳感器的參數(shù),再通過(guò)RS232發(fā)送到上位機(jī),上位機(jī)軟件將收集到的數(shù)據(jù)加工后送至Unity3D開發(fā)的三維顯示界面,與此同時(shí)將相應(yīng)的數(shù)據(jù)信息顯示在屏幕上。

        2.1硬件部分

        加速度計(jì)陀螺儀采用市面上常見的MPU6050模塊,數(shù)據(jù)包分為加速度包、角速度包和角度包。用于三維現(xiàn)場(chǎng)還原時(shí),主要用角度包當(dāng)中的俯仰角數(shù)據(jù),用來(lái)體現(xiàn)消費(fèi)車工作臂的抬起角度。

        激光傳感器采用KAKRU公司的HPS-L1-V系列拉繩傳感器。用于三維現(xiàn)場(chǎng)還原時(shí),拉繩傳感器用來(lái)提供工作臂伸長(zhǎng)的長(zhǎng)度。返回的數(shù)據(jù)用4個(gè)字節(jié)的數(shù)據(jù)來(lái)表示長(zhǎng)度。

        2.2軟件部分

        軟件分為兩大部分,第一部分上位機(jī)主體,主要為軟件主界面,包括串口循環(huán)讀取模塊,數(shù)據(jù)處理模塊和參數(shù)傳遞模塊。此部分在VisualStudio中開發(fā)完成。

        第二部分為Unity3D三維圖像顯示控件,主要功能為接受后臺(tái)的數(shù)據(jù)處理模塊傳遞過(guò)來(lái)的參數(shù),還原成現(xiàn)場(chǎng)的情況。此部分在Unity3D開發(fā)環(huán)境中開發(fā)完成。

        2.2.1軟件主界面

        1.串口循環(huán)讀取模塊

        功能:由計(jì)時(shí)器(Timer)為主體,Timer每一次觸發(fā),讀取串口緩沖區(qū)的數(shù)據(jù),在解析之前,需要先進(jìn)行搜索數(shù)據(jù)包頭的操作。

        搜索方法主要由依次遍歷匹配實(shí)現(xiàn),此次設(shè)計(jì)采用的硬件中,代表包頭的數(shù)據(jù)內(nèi)容為“0x55”,則搜索數(shù)據(jù)包頭操作說(shuō)明即為:將串口緩沖區(qū)的數(shù)據(jù)讀取至一個(gè)字節(jié)數(shù)組,對(duì)該數(shù)組第一位進(jìn)行判斷,若為“0x55”,則程序繼續(xù)執(zhí)行,否則對(duì)該數(shù)組下一個(gè)字節(jié)的數(shù)據(jù)進(jìn)行匹配。

        由MPU6050使用說(shuō)明書可知,找到包頭之后,若包頭之后的一個(gè)字節(jié)的數(shù)據(jù)為“0x53”,則代表該包為角度包,此時(shí)數(shù)據(jù)編號(hào)為“4”和“5”的數(shù)據(jù)(即包頭之后第四和第五個(gè)字節(jié))即為角度包的高位值和低位值。

        該模塊主要代碼如下(buf為字節(jié)數(shù)組,用于存儲(chǔ)串口數(shù)據(jù)):

        private void timerSerialData_Tick(object sender, EventArgs e)

        {serialPort1.Read(buf, 0, 66);

        for (m = 0; m < 33; m++)

        {if ((buf[m] == 0x55) (buf[m + 1] == 0x53))

        DataAnalysis();

        }}}

        2.數(shù)據(jù)處理模塊

        功能:該模塊主要將串口循環(huán)讀取模塊讀取到的數(shù)據(jù)進(jìn)行解析,解析出來(lái)的數(shù)據(jù)用于計(jì)算Unity3D引擎中需要顯示的各個(gè)模塊的參數(shù)。

        以一組兩節(jié)工作臂的消防車為例,在空間坐標(biāo)中,假定工作臂在空間坐標(biāo)中的X正方向上抬起、放下,在已知抬起的角度a(即俯仰角)及工作臂伸長(zhǎng)的長(zhǎng)度L,即可通過(guò)簡(jiǎn)單的三角函數(shù)計(jì)算出工作臂的第一節(jié)臂和第二節(jié)臂的中心位置和姿態(tài)角度,計(jì)算方法在此不在贅述。

        相關(guān)代碼如下:

        變量說(shuō)明:

        LA一一Scale為縮放值,即現(xiàn)實(shí)中工作臂的長(zhǎng)度換算為三維模型時(shí)的比例,LA為該縮放值下的工作臂長(zhǎng)度。

        DataAnalysis();

        {a = (Convert.ToInt32(buf[m + 5] << 8 | buf[m + 4])) / 32768.0* 3.1415926;

        L = Convert.ToInt32((buf[m + 11] << 8 | buf[m + 10]),16);}

        3.參數(shù)傳遞模塊

        功能:Unity3D開發(fā)的三維模塊可以以控件的形式加載,用SendMessage方法來(lái)傳遞參數(shù),此時(shí)需要定義一個(gè)簡(jiǎn)單通訊協(xié)議,通訊協(xié)議如下:

        參數(shù)按順序依次為第一節(jié)臂中心點(diǎn)位置(p_x1, p_y1, p_z1),工作臂第一節(jié)姿態(tài)角度(0 , a , 0),工作臂第二節(jié)中心點(diǎn)位置( p_x2, p_y2, p_z2)工作臂第二節(jié)姿態(tài)角度(0 , a , 0)。將參數(shù)依次放進(jìn)字符串a(chǎn)并用逗號(hào)隔開后,直接使用SendMessage即可

        代碼如下:

        axUnityWebPlayer1.SendMessage(“FireEngine”,“CallUnity”, a);

        代碼中最后一行的”FireEngine”為Unity3D中需要調(diào)用腳本的對(duì)象,”CallUnity”為調(diào)用的腳本。

        2.2.2 Unity3D三維圖像顯示控件

        1.三維圖像模塊

        此模塊用于三維模型顯示,在Unity3D開發(fā)平臺(tái)開發(fā),消防車的三維模型可以使用3Dmax軟件制作,在Unity3D開發(fā)平臺(tái)中加載消防車的三維模型即可。為了計(jì)算簡(jiǎn)便,我們將消防車三維模型中消防臂的底端移至場(chǎng)景中空間坐標(biāo)的(0,0,0)點(diǎn),并將消防臂朝向X軸的正方向,此時(shí)記錄下消防臂第一節(jié)臂的中心點(diǎn)在X軸上的坐標(biāo)值L1X,這個(gè)值的兩倍除以現(xiàn)實(shí)世界中消防車的工作臂長(zhǎng)度即為本文之前提到的Scale縮放值。

        即 Scale= 2*L1X / (現(xiàn)實(shí)中消防車工作臂長(zhǎng)度)

        之后在Unity3D中新建一個(gè)腳本,名為“CallUnity”,腳本的對(duì)象為消防車“FireEngine”。

        2.參數(shù)拆包模塊

        此模塊對(duì)應(yīng)2.1.3的參數(shù)傳遞模塊。SendMessage中的字符串a(chǎn)中包含所有控制參數(shù),因此先用Spilt方法分割參數(shù),然后將分割的參數(shù)由字符串類型改變?yōu)楦↑c(diǎn)型,存入數(shù)組data,代碼不在此贅述。

        3.模型控制模塊

        此模塊的功能主要為調(diào)用控制參數(shù)控制消防車的兩節(jié)工作臂。控制主要通過(guò)Unity3D的transform方法實(shí)現(xiàn),代碼如下(arm1、arm2分別為第一、第二節(jié)工作臂):

        void OnGUI()

        {

        Arm1.transform.position = Vector3(data[0], data[1], data[2]);

        Arm1.transform.rotation = Vector3(data[3], data[4], data[5]);

        Arm2.transform.position = Vector3(data[6], data[7], data[8]);

        Arm2.transform.rotation = Vector3(data[9], data[10], data[11]);

        }

        這段代碼每執(zhí)行一次,都會(huì)將工作臂的第一節(jié)和第二節(jié)臂的模型移動(dòng)至計(jì)算好的位置上,并調(diào)整成相應(yīng)的姿態(tài)角。因此即可實(shí)現(xiàn)現(xiàn)場(chǎng)還原。

        最終三維圖像的效果如下圖:

        三、總結(jié)與展望

        許多消防車的工作臂頂端會(huì)連接一個(gè)工作斗,這套系統(tǒng)在工作斗上也可以安裝一個(gè)陀螺儀,采集工作斗的調(diào)平數(shù)據(jù),對(duì)該數(shù)據(jù)計(jì)算累計(jì)時(shí)間即可反應(yīng)出工作斗調(diào)平響應(yīng)時(shí)間等測(cè)試指標(biāo)。即可簡(jiǎn)化測(cè)試員在該情況下的測(cè)試工作。

        該軟件系統(tǒng)可以添加數(shù)據(jù)庫(kù)功能,數(shù)據(jù)庫(kù)中存如現(xiàn)場(chǎng)采集到的數(shù)據(jù),只需簡(jiǎn)單的逐行調(diào)用即可實(shí)現(xiàn)現(xiàn)場(chǎng)情況再次重現(xiàn)的功能,為測(cè)試員重復(fù)觀察提供了極大便利。

        這樣的系統(tǒng)開發(fā)簡(jiǎn)單,軟硬件成本低,且功能可以根據(jù)不同類型傳感器、用戶需求、算法實(shí)現(xiàn)不同的功能??蓱?yīng)用于諸如教學(xué),機(jī)械裝置狀況反饋等多種場(chǎng)合。

        亚洲中文字幕av一区二区三区人 | 把女人弄爽特黄a大片| 白嫩少妇高潮喷水av| 一区二区三区国产黄色| 欧美又大粗又爽又黄大片视频| 亚洲av无码乱码在线观看性色| 特黄做受又硬又粗又大视频小说| 天码人妻一区二区三区| 亚洲av无码成人黄网站在线观看| 国产精品搭讪系列在线观看| 久久精品爱国产免费久久| 放荡人妻一区二区三区| 91九色国产老熟女视频| 中文字幕一区二区三区四区五区| 日本护士xxxx视频| 国产最新进精品视频| 中文字幕高清在线一区二区三区| 成人片99久久精品国产桃花岛| 久久精品国产亚洲片| 亚洲国产天堂av成人在线播放 | 日本在线一区二区三区不卡 | 成人爽a毛片在线视频| 国产精品天堂avav在线| 18禁黄无遮挡免费网站| 中文字幕一区二区三区乱码人妻 | 国产午夜精品一区二区| 99久久99久久精品国产片果冻| 欧美高清国产在线播放| 国产亚洲欧美另类第一页| 亚洲国产不卡免费视频| 日本在线观看一二三区| 中文字幕无码av波多野吉衣| 亚洲中文字幕无码中字| 亚洲成人av一区二区三区| av男人操美女一区二区三区| 国产一区二区三区在线男友| 国产高清在线观看av片| 午夜成人鲁丝片午夜精品 | 丝袜欧美视频首页在线| 亚洲成在人线天堂网站| 我和隔壁的少妇人妻hd|