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

淺談利用傳感器參數還原消防車工作臂姿態三維圖像

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

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

【關鍵詞】 Unity3D 傳感器 三維圖像 消防車

一、前言

時至今日,三維成像技術早已在工業、科研、教育娛樂等眾多領域中廣泛應用,在工業和科研中以往許多以波形、圖表、參數來顯示的現場工作狀況早已被替換成直觀的三維圖像,也使得人們對現場狀態的判斷也更加準確快速。在消防車安全檢測領域中,由于工作狀態下的消防車工作高度經常大于30米,很多時候,檢測人員只能通過目測來進行檢驗。從精確度和有效性上講這樣的方法缺陷較大。因此,本文旨在探討用傳感器和Unity3D三維圖像引擎開發一個能夠實時反應消防車工作臂工作狀態的軟硬件系統。

二、整體系統說明

系統說明如圖1所示。數據采集器采集陀螺儀和激光測距傳感器的參數,再通過RS232發送到上位機,上位機軟件將收集到的數據加工后送至Unity3D開發的三維顯示界面,與此同時將相應的數據信息顯示在屏幕上。

2.1硬件部分

加速度計陀螺儀采用市面上常見的MPU6050模塊,數據包分為加速度包、角速度包和角度包。用于三維現場還原時,主要用角度包當中的俯仰角數據,用來體現消費車工作臂的抬起角度。

激光傳感器采用KAKRU公司的HPS-L1-V系列拉繩傳感器。用于三維現場還原時,拉繩傳感器用來提供工作臂伸長的長度。返回的數據用4個字節的數據來表示長度。

2.2軟件部分

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

第二部分為Unity3D三維圖像顯示控件,主要功能為接受后臺的數據處理模塊傳遞過來的參數,還原成現場的情況。此部分在Unity3D開發環境中開發完成。

2.2.1軟件主界面

1.串口循環讀取模塊

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

搜索方法主要由依次遍歷匹配實現,此次設計采用的硬件中,代表包頭的數據內容為“0x55”,則搜索數據包頭操作說明即為:將串口緩沖區的數據讀取至一個字節數組,對該數組第一位進行判斷,若為“0x55”,則程序繼續執行,否則對該數組下一個字節的數據進行匹配。

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

該模塊主要代碼如下(buf為字節數組,用于存儲串口數據):

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.數據處理模塊

功能:該模塊主要將串口循環讀取模塊讀取到的數據進行解析,解析出來的數據用于計算Unity3D引擎中需要顯示的各個模塊的參數。

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

相關代碼如下:

變量說明:

LA一一Scale為縮放值,即現實中工作臂的長度換算為三維模型時的比例,LA為該縮放值下的工作臂長度。

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.參數傳遞模塊

功能:Unity3D開發的三維模塊可以以控件的形式加載,用SendMessage方法來傳遞參數,此時需要定義一個簡單通訊協議,通訊協議如下:

參數按順序依次為第一節臂中心點位置(p_x1, p_y1, p_z1),工作臂第一節姿態角度(0 , a , 0),工作臂第二節中心點位置( p_x2, p_y2, p_z2)工作臂第二節姿態角度(0 , a , 0)。將參數依次放進字符串a并用逗號隔開后,直接使用SendMessage即可

代碼如下:

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

代碼中最后一行的”FireEngine”為Unity3D中需要調用腳本的對象,”CallUnity”為調用的腳本。

2.2.2 Unity3D三維圖像顯示控件

1.三維圖像模塊

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

即 Scale= 2*L1X / (現實中消防車工作臂長度)

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

2.參數拆包模塊

此模塊對應2.1.3的參數傳遞模塊。SendMessage中的字符串a中包含所有控制參數,因此先用Spilt方法分割參數,然后將分割的參數由字符串類型改變為浮點型,存入數組data,代碼不在此贅述。

3.模型控制模塊

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

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]);

}

這段代碼每執行一次,都會將工作臂的第一節和第二節臂的模型移動至計算好的位置上,并調整成相應的姿態角。因此即可實現現場還原。

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

三、總結與展望

許多消防車的工作臂頂端會連接一個工作斗,這套系統在工作斗上也可以安裝一個陀螺儀,采集工作斗的調平數據,對該數據計算累計時間即可反應出工作斗調平響應時間等測試指標。即可簡化測試員在該情況下的測試工作。

該軟件系統可以添加數據庫功能,數據庫中存如現場采集到的數據,只需簡單的逐行調用即可實現現場情況再次重現的功能,為測試員重復觀察提供了極大便利。

這樣的系統開發簡單,軟硬件成本低,且功能可以根據不同類型傳感器、用戶需求、算法實現不同的功能??蓱糜谥T如教學,機械裝置狀況反饋等多種場合。

主站蜘蛛池模板: 欧美精品亚洲精品日韩专区| 国产在线视频二区| 影音先锋丝袜制服| 五月婷婷精品| 综合色婷婷| 国产女人在线| 91亚洲视频下载| 免费毛片视频| 天天做天天爱夜夜爽毛片毛片| 欧美 国产 人人视频| 久青草免费视频| 九九九国产| 亚洲欧洲美色一区二区三区| 国产免费人成视频网| 91精品啪在线观看国产91九色| 国产免费人成视频网| 园内精品自拍视频在线播放| 日韩一级毛一欧美一国产| 午夜日b视频| 日韩福利在线视频| 中文字幕亚洲精品2页| 亚洲午夜国产片在线观看| 亚洲日本中文字幕天堂网| 五月激情婷婷综合| 人妻少妇久久久久久97人妻| 日韩免费成人| 亚洲色成人www在线观看| 日本伊人色综合网| 中文字幕在线观看日本| 国内黄色精品| 国产麻豆va精品视频| 亚洲精品天堂自在久久77| 国产精品无码制服丝袜| 国产视频 第一页| 国产成人在线无码免费视频| 日韩欧美国产三级| 精品福利网| 精品国产自在在线在线观看| 国产人碰人摸人爱免费视频| 亚洲无码高清免费视频亚洲 | 97超爽成人免费视频在线播放| 国产精品永久免费嫩草研究院| 青青草一区| 亚洲一级毛片在线观播放| 久久久久久久97| 一级香蕉人体视频| 国产精品区视频中文字幕| 色综合久久无码网| 99视频在线看| 无码'专区第一页| 91在线激情在线观看| 91精品啪在线观看国产91九色| 午夜一级做a爰片久久毛片| 亚洲第一成年人网站| 国产国语一级毛片| 99青青青精品视频在线| 国产成人高清精品免费5388| 亚洲系列无码专区偷窥无码| 国产自在线拍| 无码 在线 在线| 亚洲一区二区约美女探花| 99re视频在线| 国产精品999在线| 亚洲欧美在线看片AI| 在线观看国产精美视频| 一级看片免费视频| 99手机在线视频| 国产精品免费电影| 亚洲国产中文欧美在线人成大黄瓜 | 欧美激情视频二区三区| 免费人成在线观看成人片| 99热这里只有精品国产99| 久久香蕉欧美精品| 99一级毛片| 无码福利视频| 日韩av手机在线| 久久亚洲高清国产| 青青青国产视频| 欧美一区二区自偷自拍视频| 91热爆在线| 99久久婷婷国产综合精| 丁香综合在线|