一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

聚豐項目 > 基于LattePanda的MR混合現(xiàn)實眼鏡

基于LattePanda的MR混合現(xiàn)實眼鏡

基于LattePanda硬件平臺設計一款開源的光學透視式MR混合現(xiàn)實眼鏡,一款類似美國Meta2混合現(xiàn)實眼鏡的原型機,實現(xiàn)虛擬物體與現(xiàn)實世界的混合疊加,通過眼睛視點和手勢控制虛擬物體。

h1654155854.3814 h1654155854.3814

分享
7 喜歡這個項目
團隊介紹

h1654155854.3814 h1654155854.3814

團隊成員

張桂陽 創(chuàng)客

分享
項目簡介
基于LattePanda硬件平臺設計一款開源的光學透視式MR混合現(xiàn)實眼鏡,一款類似美國Meta2混合現(xiàn)實眼鏡的原型機,實現(xiàn)虛擬物體與現(xiàn)實世界的混合疊加,通過眼睛視點和手勢控制虛擬物體。
硬件說明

①搭建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ù)校準的偏移量進行糾正

  //計算加速度向量的模長,均以g為單位
  float fNorm = sqrt(realVals[0] * realVals[0] + realVals[1] * realVals[1] + realVals[2] * realVals[2]);
  float fRoll = GetRoll(realVals, fNorm); //計算Roll角
  if (realVals[1] > 0) {
    fRoll = -fRoll;
  }
  float fPitch = GetPitch(realVals, fNorm); //計算Pitch角
  if (realVals[0] < 0) {
    fPitch = -fPitch;
  }

  //計算兩次測量的時間間隔dt,以秒為單位
  unsigned long nCurTime = micros();
  float dt = (double)(nCurTime - nLastTime) / 1000000.0;
  //對Roll角和Pitch角進行卡爾曼濾波
  float fNewRoll = kalmanRoll.getAngle(fRoll, realVals[4], dt);
  float fNewPitch = kalmanPitch.getAngle(fPitch, realVals[5], dt);
  //跟據(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ù)計算

      unity3D實現(xiàn)串口接收,讀取IMU數(shù)據(jù),這里貼出,IMU數(shù)據(jù)處理過程(四元數(shù)法)

void Update()

2、RealSee SDK:雙目3D+圖像反畸變運算

     由于RealSee的頭盔是兩面曲面HUD半反半透鏡,LCD圖像直接投影上去會發(fā)生嚴重的畸變

     因此需要反畸變算法,為了項目方便,這里直接采用RealSee官方SDK中的攝像頭Object和反畸變算法腳本,

      

    將這個腳本綁定到AR camera object上即可實現(xiàn)圖像反畸變運算。

3、VOID AR SDK:單目攝像頭+IMU實現(xiàn)SLAM算法

      這里的SLAM算法直接采用 VOID AR SDK中的 單目攝像頭+imu的SLAM算法,配置如下

       


4、編輯場景,設置地球Object

       


演示效果


①:三維融合成像顯示功能(將虛擬物體以三維立體虛像的方式投影到現(xiàn)實世界中)

②:三維跟蹤注冊功能(能夠?qū)崿F(xiàn)虛擬物體和真實環(huán)境做到精確對準,即將虛擬物體固定在現(xiàn)實世界的指定位置

效果演示內(nèi)容:項目體驗者通過MR混合現(xiàn)實眼鏡,可以觀看到虛擬的地球和一個白色立方體,實時疊加在現(xiàn)實世界的桌子上,體驗者可以通過移動頭部,前進后退來觀察虛擬地球。

效果演示方式:項目圖片,屏幕錄屏,視頻拍攝

屏幕錄制,視頻地址:


評論區(qū)(2 )
  • 交流群1646516: 路過

    回復

  • 動心忍性1234: 您好我是無線電雜志的編輯,我們對您的項目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費外還有其他優(yōu)厚條件。敬請參與。投稿請聯(lián)系QQ260534978.

    回復