楊媛,孔令云
(西京學(xué)院 電子信息學(xué)院,陜西西安,710123)
利用力反饋技術(shù)的的優(yōu)勢(shì),此設(shè)備可以給使用者反饋力量、振幅和觸覺,以及可以在訓(xùn)練中對(duì)雙手和手指進(jìn)行精確的追蹤,讓訓(xùn)練場(chǎng)景盡可能的接近現(xiàn)實(shí)。
創(chuàng)新點(diǎn):第一、強(qiáng)制反饋:支持手勢(shì)識(shí)別、靈敏壓力反饋。力反饋主要由手背上的5 個(gè)舵機(jī)進(jìn)行限位的控制方式,由手指牽動(dòng)拉繩的限定距離,把被動(dòng)觸覺施加給手指。能夠感知類似的碰撞、撞擊,極為真實(shí)地模擬出對(duì)虛擬物體的觸覺感受。第二、相比較于其他VR 觸覺手套設(shè)備,此作品僅使用到了ESP-32 系列開發(fā)板、WH48 單聯(lián)(15nm)電位器、MG-90S 舵機(jī)、雙母頭杜邦線若干、易拉扣、手套本體,易于操作。第三、運(yùn)動(dòng)跟蹤:利用Vive tracker2.0 跟蹤設(shè)備,在手臂的動(dòng)作捕捉和跟蹤的基礎(chǔ)上,實(shí)現(xiàn)了對(duì)手掌動(dòng)作姿態(tài)捕捉與力反饋。
難點(diǎn):第一、在盡量不影響跟蹤定位性能的情況下,對(duì)細(xì)微動(dòng)作和復(fù)雜動(dòng)作實(shí)時(shí)跟蹤和操控,對(duì)團(tuán)隊(duì)的硬件設(shè)計(jì)、設(shè)備組裝與設(shè)計(jì)提出了很高的要求;第二、在組裝設(shè)備過程中,對(duì)設(shè)置的拉繩距離精度的要求較高,需要人員反復(fù)實(shí)驗(yàn)和嘗試。第三、提供可變力反饋,讓使用者可以實(shí)時(shí)感受到該虛擬物體,比如旋轉(zhuǎn)虛擬旋鈕、拉動(dòng)虛擬控制桿、打開一扇虛擬門的感覺。
此設(shè)備在實(shí)際體驗(yàn)過程中,手指伸縮會(huì)拉動(dòng)線軸,線軸移動(dòng)導(dǎo)致電位器旋轉(zhuǎn),電阻發(fā)生變化,電位器產(chǎn)生的電信號(hào)傳輸?shù)介_發(fā)板內(nèi),開發(fā)板會(huì)把數(shù)字信號(hào)傳輸給電腦,電腦接受信息,通過數(shù)字信號(hào)對(duì)真實(shí)的手柄的坐標(biāo)進(jìn)行模擬,轉(zhuǎn)換成VR 場(chǎng)景里面的模擬手柄,然后輸入真實(shí)手柄相對(duì)位置,手指就可以在VR 里移動(dòng)。力反饋手套可以讓使用者在VR里感知到抓取的物體,是因?yàn)槎鏅C(jī)的搖臂會(huì)根據(jù)接觸物體的不同形狀,旋轉(zhuǎn)成不同的角度,限制手指的彎曲程度,模擬實(shí)際觸摸物體的感覺。
使用Valve 的Lighthouse 追蹤系統(tǒng)中VR 光學(xué)跟蹤方案。此作品的定位技術(shù)采用激光和光敏傳感器來確定運(yùn)動(dòng)物體的位置。
激光通過Lighthouse 的兩個(gè)基站,每個(gè)基站里有一個(gè)紅外LED 陣列,兩個(gè)轉(zhuǎn)軸互相垂直的旋轉(zhuǎn)的紅外激光發(fā)射器。激光基站的工作原理是基于Lighthouse 的長(zhǎng)期無漂移(drift-free)位置追蹤技術(shù)。每個(gè)Lighthouse 基站包含兩束激光。一個(gè)是水平的激光,從下到上橫掃追蹤的數(shù)量;另一束激光是垂直的,從左到右橫掃追蹤數(shù)量。兩束激光在各種的軸以3600rpm 速度旋轉(zhuǎn)[1]。兩束激光在同一基站,只能有一個(gè)激光扇面可以對(duì)整個(gè)定位空間進(jìn)行掃描??偟膩碚f,Lighthouse 燈塔技術(shù)的核心是基站,這些基站是放置在跟蹤區(qū)域中的小矩形對(duì)象中。它們可用作任何位置跟蹤設(shè)備的參考點(diǎn)?;就ㄟ^不斷的用不可見光淹沒房間來執(zhí)行此功能。被跟蹤設(shè)備上的接收器將攔截光線并找出它們相對(duì)于基站的位置。多個(gè)基站(SteamVR 為2 個(gè)基站)允許被跟蹤的設(shè)備找出它們?cè)?D 空間中的位置。每個(gè)基站都包含一個(gè)名為Sync Blinker 的紅外信標(biāo)和2 個(gè)快速旋轉(zhuǎn)的激光發(fā)射器。每秒60 次,同步閃光燈將發(fā)出同步脈沖,2 個(gè)旋轉(zhuǎn)激光器將掃描整個(gè)房間的光束。接收器、HMD 和控制器,被光傳感器覆蓋,這些光電傳感器可以識(shí)別同步脈沖和激光束。當(dāng)它檢測(cè)到同步脈沖時(shí),受體開始計(jì)數(shù),直到其中一個(gè)光電傳感器被激光束擊中。Lighthouse 計(jì)算光傳感器何時(shí)被激光擊中以及該光電傳感器的位置,以找到受體相對(duì)于基站的確切位置。當(dāng)有2 個(gè)基站時(shí),建立房間3D 空間中受體的位置和方向?;救菀资艿秸趽?。它們需要跟蹤對(duì)象的視線?;驹O(shè)計(jì)為可擴(kuò)展。2 個(gè)基站放置在房間的兩側(cè),以最大程度地減少此問題??梢苑胖酶嗟幕疽栽黾痈櫡秶鶾2]。
光敏傳感器,其通過計(jì)算接收激光的時(shí)間來得到傳感器位置相對(duì)于激光發(fā)射器的準(zhǔn)確位置,利用手柄上不同位置的多個(gè)光敏傳感器從而得出手柄的位置及方向。如圖1 所示,于是通過各個(gè)傳感器的位置差,就可以計(jì)算出手柄的位置和運(yùn)動(dòng)軌跡。如圖2 所示。
圖1 光敏傳感器原理圖
圖2 傳感器的位置差計(jì)算原理圖
HTC Vive 是由HTC 公司與Valve 公司聯(lián)合開發(fā)的一套虛擬現(xiàn)實(shí)頭戴式顯示設(shè)備。在Valve 公司提供的SteamVR技術(shù)支撐下,HTC Vive 能夠給用戶帶來沉浸式的虛擬現(xiàn)實(shí)體驗(yàn)。本文采用 HTC Vive tracker2.0 作為VR 交互場(chǎng)景的配套虛擬現(xiàn)實(shí)設(shè)備。
Vive Tracker2.0 作為全身追蹤接收器。它不同于操作手柄,重量更輕巧,使用更容易,提升了舒適度,用途更廣泛;相比較于以往的手柄,延長(zhǎng)了75%的電池續(xù)航力,給予使用者提供了更沉浸的體驗(yàn)[3]。Vive Tracker 追蹤器基于全身追蹤創(chuàng)建的虛擬形象更加逼真,它可以應(yīng)用在不同領(lǐng)域:比如虛擬游戲者可以實(shí)時(shí)的展示精彩的游戲動(dòng)作,教育工作者也可以使用精準(zhǔn)追蹤的道具和模型設(shè)備構(gòu)建培訓(xùn)應(yīng)用程序。我們使用這項(xiàng)技術(shù)來創(chuàng)建簡(jiǎn)單的追蹤對(duì)象,其核心技術(shù)利用了激光和光敏傳感器的原理,用于追蹤物體在場(chǎng)景空間中的位移與移動(dòng)。
ESP-WROOM-32 集成了傳統(tǒng)藍(lán)牙(BT)、低功耗藍(lán)牙(BLEMCU)和WiFi,具有廣泛的用途:WiFi 支持極大范圍的通信連接,也支持通過路由器直接連接互聯(lián)網(wǎng);而藍(lán)牙可以讓用戶連接手機(jī)或者廣播Ble Beacon 以便于信號(hào)檢測(cè),ESP32 芯片的睡眠電流小于5mA,使其適用于電池供電的可穿戴電子設(shè)備。ESP-WROOM-32 支持的數(shù)據(jù)傳輸速率高度150Mbps,經(jīng)過功率放大后,輸出功率可達(dá)到22dBm,可實(shí)現(xiàn)大范圍內(nèi)的無線通信。因此我們選用的這款芯片擁有領(lǐng)先的的技術(shù)規(guī)格,在高集成度、無線傳輸距離、功耗以及網(wǎng)絡(luò)聯(lián)通等方面性能尚佳。
如圖3 所示,在此我們主控模塊采用的為ESPWROOM-32 開發(fā)板,其共有38 個(gè)管腳。ESP-WROOM-32是樂鑫發(fā)布的新一代WiFi 和藍(lán)牙雙模雙核無線通信芯片。此模塊的核心是ESP-WOWDQ 芯片,兩個(gè)XTENSA-BIT LX6 CPU 核可被單獨(dú)控制,運(yùn)算能力高達(dá)600MIPS,時(shí)鐘頻率的調(diào)節(jié)范圍為80MHz~240MHz,448KB ROM.520 KBSRAM.16KB RTC SRAM,模組集成4MB QSPI FLASH[4]。同時(shí)還集成了豐富的外設(shè),包括電容式傳感器模塊、霍爾傳感器、低噪聲傳感器放大器、SD 卡接口、以太網(wǎng)接口、高速SDIO/SPI/UART/12S/12C 等。
圖3 ESP-WROOM-32 實(shí)物圖
首先,左側(cè)這部分是電位器。上邊是按鈕,右側(cè)是舵機(jī)。下面是搖桿。開發(fā)板的GPIO 口對(duì)應(yīng)到實(shí)際板子的引腳。根據(jù)開發(fā)板的原理圖,把GPIO 編號(hào)跟實(shí)際引腳對(duì)一一對(duì)應(yīng)。ESP-WROOM-32 開發(fā)板電路圖如圖4 所示。
圖4 ESP-WROOM-32 開發(fā)板電路圖
首先電位器接線可以使用長(zhǎng)度XH2.54mm,長(zhǎng)度30cm 的5P 端子線,這種線插到電位器上比較牢固,開發(fā)板也可以直接插入引腳,中間用帶錫的熱縮管連接,用熱熔槍進(jìn)行炙烤固化。接起來也非常得方便,使用WH48 單聯(lián)(15mm)電位器.此設(shè)備通過拉繩帶動(dòng)手背上的電位器,把拉繩的距離轉(zhuǎn)化成電位器阻值的變化,以此來判斷手指彎曲的程度。如圖5 單個(gè)電位器的接線圖,綠色線路代表輸入的Vcc(3.3V 正極),白色線路代表經(jīng)過電位器改變后輸出的電信號(hào)(Analog),分別接入到 ESP32 的GPIO 上。藍(lán)色線路代表是接地(GND)。
圖5 電位器線路圖
其中,當(dāng)5 個(gè)電位器全部接到如圖6 所示電路圖中時(shí),紅色線路代表輸入的Vcc,彩色線路代表經(jīng)過輸入電源之后對(duì)電源進(jìn)行處理后輸出的電信號(hào),黑色線路代表接地。
圖6 總電位器接線示意圖
舵機(jī)齒輪卡住線軸模擬抓住物體的觸感,舵機(jī)復(fù)位可以伸縮5 根手指。首先采用5V 的電源。所以紅色線路代表輸入5V 的電源,棕色線路代表的是接地(GND),另外黃色線路代表信號(hào)線接入ESP-32 開發(fā)板上。按鈕接線類同,其中有一根棕色線接地,另一根黃色線接電信號(hào)。如圖7 所示。
圖7 舵機(jī)接線實(shí)物圖
搖桿的主要作用是力反饋手套其中的一個(gè)配套動(dòng)作反饋功能,例如旋、扭、力方向確認(rèn)等等。搖桿線路實(shí)物如圖8 所示。搖桿:接5V 的電壓,搖桿還有三個(gè)輸入口,分別是X 軸、Y 軸和Button,這3 個(gè)口分別接入到GPIO 的33 口、25 口和26 口。
圖8 搖桿線路實(shí)物圖
本文主要的研究方向是基于VR 的手指動(dòng)態(tài)識(shí)別追蹤智能手套,運(yùn)行環(huán)境是基于OpenGloves 的SteamVR 驅(qū)動(dòng)軟件,其原理是根據(jù)VR 場(chǎng)景中各種3D 物體的尺寸,來計(jì)算出可限制手指移動(dòng)的程度,采用VivetTracker2.0 實(shí)現(xiàn)了對(duì)手掌動(dòng)作姿態(tài)捕捉與力反饋。
電腦安裝CP210X 驅(qū)動(dòng),安裝驅(qū)動(dòng)程序后插入設(shè)備操作系統(tǒng)中可以看到一個(gè)虛擬的COM 端口(虛擬意味著沒有RS232 接口的串口硬件,但是從軟件角度可以與舊的RS232 端口進(jìn)行同樣的通信)。實(shí)現(xiàn)了硬件和軟件之間數(shù)據(jù)、信息的交互。
利用Arduino IDE,安裝ESP-Servo 標(biāo)準(zhǔn)外設(shè)庫,通過Servo 庫可以用Arduinl 控制舵機(jī)(伺服電機(jī))。Servo庫允許大多數(shù)Arduino 開發(fā)板,同時(shí)控制12 個(gè)舵機(jī)。此作品舵機(jī)有3 條引線,它們分別是電源線,接地線和信號(hào)線。電源線是紅色的。使用Arduino 開發(fā)板的5V 引腳為舵機(jī)供電。接地線是黑色的,其連接在Arduino 開發(fā)板的接地引腳上的。信號(hào)線是桔紅色,信號(hào)線連接在Arduino 開發(fā)板的數(shù)字輸入輸出引腳上。
安裝Lucidgloves-firmware,是固化在硬件中的軟件,它存儲(chǔ)著計(jì)算機(jī)系統(tǒng)中硬件設(shè)備最基本的參數(shù),為系統(tǒng)提供最底層、最直接的硬件控制。對(duì)于任何嵌入式系統(tǒng),固件都是一個(gè)重要的部分,因?yàn)樵谝粋€(gè)新的平臺(tái)上,固件通常是被移植和執(zhí)行的第一段代碼。對(duì)不同的系統(tǒng),固件有很大差異,它可以是一個(gè)完整的嵌入式系統(tǒng),也可以只是一段簡(jiǎn)單的初始化和引導(dǎo)加載程序。在Arduino 中對(duì)ESP32 開發(fā)板模塊、電位器模塊、藍(lán)牙模塊、搖桿進(jìn)行了相應(yīng)的參數(shù)設(shè)置。
其中定位器定位流程圖如圖9 所示。
圖9 定位器定位流程圖
首先,通過ESP-32 持續(xù)監(jiān)測(cè)電位器輸出口電壓信號(hào),當(dāng)手指彎曲帶動(dòng)線繩伸縮拉動(dòng)電位器轉(zhuǎn)動(dòng),使得電位器轉(zhuǎn)動(dòng)導(dǎo)致阻值發(fā)生變化,電位器輸出電壓信號(hào)發(fā)生變化,ESP-32 通過藍(lán)牙將電壓變化數(shù)值發(fā)送至上位機(jī),通過電壓變化數(shù)值計(jì)算手指彎曲程度,最后將手指彎曲程度輸入至可視化界面。流程如圖10 所示。
圖10 手指動(dòng)作捕捉流程圖
首先當(dāng)我們?cè)谔摂M交互界面抓取物體時(shí),上位機(jī)獲取到抓取到物體的形態(tài),解算出可以模擬物體觸感的拉繩長(zhǎng)度舵機(jī)限位角度,通過藍(lán)牙發(fā)送至ESP-32 單片機(jī),單片機(jī)將轉(zhuǎn)動(dòng)角度發(fā)送給舵機(jī),舵機(jī)進(jìn)行轉(zhuǎn)動(dòng)限制拉繩長(zhǎng)度,模擬抓取物體的觸感。流程如圖11 所示。
圖11 力反饋功能流程圖
如圖12 所示,手套和上位機(jī)連接之后,利用Arduino 1.8.12 軟件測(cè)試手套可以查看到數(shù)據(jù)有規(guī)律的變化,證明手套可以進(jìn)行正常伸縮移動(dòng)操作且進(jìn)行了成功的燒錄。
圖12 測(cè)試結(jié)果圖
本次作品支持手勢(shì)追蹤、無線設(shè)計(jì)、兼容Quest 2(SteamVR/PC VR 版本)。目前,此作品力反饋功能已經(jīng)兼容多款SteamVR 游戲,未來,我們可以使用VR 技術(shù)對(duì)危險(xiǎn)物品進(jìn)行操作減少對(duì)人類的傷害。由于時(shí)間緊迫,以后我還將繼續(xù)縮減體積(采用霍爾電流傳感器來追蹤手勢(shì)),并追蹤五指的左右移動(dòng)。計(jì)劃設(shè)計(jì)一種不需要3D 打印工具的VR 體感手套。在之后的時(shí)間中,我們會(huì)進(jìn)一步研究和探索溫度模擬、電刺激等其他體感集成于一起的VR 手套。