聚豐項(xiàng)目 > 基于LattePanda的MR混合現(xiàn)實(shí)眼鏡
基于LattePanda硬件平臺設(shè)計(jì)一款開源的光學(xué)透視式MR混合現(xiàn)實(shí)眼鏡,一款類似美國Meta2混合現(xiàn)實(shí)眼鏡的原型機(jī),實(shí)現(xiàn)虛擬物體與現(xiàn)實(shí)世界的混合疊加,通過眼睛視點(diǎn)和手勢控制虛擬物體。
h1654155854.3814
分享h1654155854.3814
團(tuán)隊(duì)成員
張桂陽 創(chuàng)客
①搭建MR眼鏡(REAL SEER 頭盔+ LattePanda+LCD)
②Lattepanda安裝Unity3D
安裝32的unity3D(windows一樣的方法)
②IMU傳感器模塊(IMU+Arduino串口輸出)
Arduino IIC驅(qū)動MPU6050,從串口轉(zhuǎn)發(fā)
這里貼出 loop代碼
void loop() { int readouts[nValCnt]; ReadAccGyr(readouts); //讀出測量值 float realVals[7]; Rectify(readouts, realVals); //根據(jù)校準(zhǔn)的偏移量進(jìn)行糾正 //計(jì)算加速度向量的模長,均以g為單位 float fNorm = sqrt(realVals[0] * realVals[0] + realVals[1] * realVals[1] + realVals[2] * realVals[2]); float fRoll = GetRoll(realVals, fNorm); //計(jì)算Roll角 if (realVals[1] > 0) { fRoll = -fRoll; } float fPitch = GetPitch(realVals, fNorm); //計(jì)算Pitch角 if (realVals[0] < 0) { fPitch = -fPitch; } //計(jì)算兩次測量的時間間隔dt,以秒為單位 unsigned long nCurTime = micros(); float dt = (double)(nCurTime - nLastTime) / 1000000.0; //對Roll角和Pitch角進(jìn)行卡爾曼濾波 float fNewRoll = kalmanRoll.getAngle(fRoll, realVals[4], dt); float fNewPitch = kalmanPitch.getAngle(fPitch, realVals[5], dt); //跟據(jù)濾波值計(jì)算角度速 float fRollRate = (fNewRoll - fLastRoll) / dt; float fPitchRate = (fNewPitch - fLastPitch) / dt; //更新Roll角和Pitch角 fLastRoll = fNewRoll; fLastPitch = fNewPitch; //更新本次測的時間 nLastTime = nCurTime; //向串口打印輸出Roll角和Pitch角 Serial.print("Roll:"); Serial.print(fNewRoll); Serial.print('('); Serial.print(fRollRate); Serial.print("),\tPitch:"); Serial.print(fNewPitch); Serial.print('('); Serial.print(fPitchRate); Serial.print(")\n"); delay(10); }
③編寫Unity3D程序
1、串口接收IMU數(shù)據(jù),IMU四元數(shù)計(jì)算
unity3D實(shí)現(xiàn)串口接收,讀取IMU數(shù)據(jù),這里貼出,IMU數(shù)據(jù)處理過程(四元數(shù)法)
void Update()
2、RealSee SDK:雙目3D+圖像反畸變運(yùn)算
由于RealSee的頭盔是兩面曲面HUD半反半透鏡,LCD圖像直接投影上去會發(fā)生嚴(yán)重的畸變
因此需要反畸變算法,為了項(xiàng)目方便,這里直接采用RealSee官方SDK中的攝像頭Object和反畸變算法腳本,
將這個腳本綁定到AR camera object上即可實(shí)現(xiàn)圖像反畸變運(yùn)算。
3、VOID AR SDK:單目攝像頭+IMU實(shí)現(xiàn)SLAM算法
這里的SLAM算法直接采用 VOID AR SDK中的 單目攝像頭+imu的SLAM算法,配置如下
4、編輯場景,設(shè)置地球Object
①:三維融合成像顯示功能(將虛擬物體以三維立體虛像的方式投影到現(xiàn)實(shí)世界中)
②:三維跟蹤注冊功能(能夠?qū)崿F(xiàn)虛擬物體和真實(shí)環(huán)境做到精確對準(zhǔn),即將虛擬物體固定在現(xiàn)實(shí)世界的指定位置
效果演示內(nèi)容:項(xiàng)目體驗(yàn)者通過MR混合現(xiàn)實(shí)眼鏡,可以觀看到虛擬的地球和一個白色立方體,實(shí)時疊加在現(xiàn)實(shí)世界的桌子上,體驗(yàn)者可以通過移動頭部,前進(jìn)后退來觀察虛擬地球。
效果演示方式:項(xiàng)目圖片,屏幕錄屏,視頻拍攝
屏幕錄制,視頻地址:
交流群1646516: 路過
回復(fù)
動心忍性1234: 您好我是無線電雜志的編輯,我們對您的項(xiàng)目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費(fèi)外還有其他優(yōu)厚條件。敬請參與。投稿請聯(lián)系QQ260534978.
回復(fù)