18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用NVIDIA Omniverse Extension開發(fā)FreeD定位系統(tǒng)

麗臺(tái)科技 ? 來(lái)源:麗臺(tái)科技 ? 2025-09-23 17:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1什么是 FreeD 定位系統(tǒng)

FreeD 定位系統(tǒng)(通常稱為 FreeD 協(xié)議)是一種業(yè)界廣泛應(yīng)用的攝像機(jī)追蹤數(shù)據(jù)通信協(xié)議,主要用于虛擬演播室(AR/VR)、電影虛擬制作等實(shí)時(shí)追蹤場(chǎng)景。在很多工業(yè)數(shù)字軟生項(xiàng)目中也有類似接收發(fā)送數(shù)據(jù)協(xié)同的需求,可以參考下面的流程作參考。

FreeD 主要傳遞包括攝像機(jī)三維位置(XYZ)、旋轉(zhuǎn)(Pitch、Yaw、Roll)、鏡頭參數(shù)(焦點(diǎn)、變焦)。

44d446d4-9215-11f0-8c8f-92fbcf53809c.png

我們采取的協(xié)議包含 29 個(gè)字節(jié)的數(shù)據(jù),其 FreeD 發(fā)送的定位設(shè)備一般是一個(gè)獨(dú)立于攝影機(jī)的組件,其實(shí)現(xiàn)原理大致分為紅外定位點(diǎn),雙目攝像頭,多攝像頭等。包括著名的 Mosys、Redspy、HTC Vive Mars 等。FreeD 是一個(gè)通用的定位協(xié)議,常見的定位系統(tǒng)默認(rèn)都支持 FreeD 協(xié)議。

2開始開發(fā)

首先創(chuàng)建一個(gè)插件,命名為omni.freed.livelink。具體步驟可參考:《NVIDIA Omniverse Extension 開發(fā)秘籍:Python/C++ 實(shí)戰(zhàn),附完整代碼》

2.1 背景分析

首先找到 FreeD 的定義文檔,并且分析其協(xié)議 (https://www.manualsdir.com/manuals/641433/vinten-radamec-free-d.html?download),然后根據(jù)協(xié)議在 Omniverse Extension 編寫接收協(xié)議,且實(shí)時(shí)更新 Omniverse USD 的 Camera,讓 Omniverse 的 Camera 跟隨外部的相機(jī)定位系統(tǒng)實(shí)時(shí)同步更新,實(shí)現(xiàn)數(shù)字孿生效果。

*注:文本下面需要用到很多計(jì)算機(jī)編程開發(fā)的基礎(chǔ)知識(shí)。

2.2 開發(fā)解析

2.2.1 端口創(chuàng)建

FreeD 協(xié)議基于 UPD 協(xié)議傳輸,一般默認(rèn)是廣播方式,接收的端口是 40000 (可以在相機(jī)定位設(shè)備里更改端口,或者進(jìn)行點(diǎn)對(duì)點(diǎn)傳輸)。

45319bae-9215-11f0-8c8f-92fbcf53809c.png

_startUPDServe函數(shù)里面創(chuàng)建 Socket 端口(或者使用已有框架比如 python-osc)

458d9a4e-9215-11f0-8c8f-92fbcf53809c.png

2.2.2 協(xié)議解析

分析 FreeD 的協(xié)議,通用 FreeD 采用的是 Type D1 的數(shù)據(jù)格式,接收 29 個(gè) Bytes。在文檔的第 30 頁(yè),根據(jù)指引“Appendix”去看第 40 頁(yè)。

45e7d7e8-9215-11f0-8c8f-92fbcf53809c.png

FreeD字段說(shuō)明

再通過(guò)下圖更直觀地表達(dá) FreeD 的 29 個(gè)字節(jié)所,按照文檔計(jì)算 Pan, Tilt, Roll 的數(shù)值。

*注:從網(wǎng)絡(luò)端口傳來(lái)的數(shù)據(jù)是大端格式, 并且如果是負(fù)數(shù)的話則需按照負(fù)數(shù)補(bǔ)碼來(lái)解析。

44d446d4-9215-11f0-8c8f-92fbcf53809c.png

2.2.3計(jì)算 Yaw Pitch Roll:

46a862f6-9215-11f0-8c8f-92fbcf53809c.png

旋轉(zhuǎn) Pan,Tilt,Roll(Yaw Pitch Roll)的角度定義

47071e54-9215-11f0-8c8f-92fbcf53809c.png

2.2.4計(jì)算位置 X, Y, Z:

同理按照文檔計(jì)算 Translate 的 X Y Z 數(shù)據(jù)。

47659434-9215-11f0-8c8f-92fbcf53809c.png

位置信息 X,Y,Z 的定義

按照定義給出代碼。

47c3a90c-9215-11f0-8c8f-92fbcf53809c.png

Zoom 和 Focus 和鏡頭文件相關(guān),由于每一個(gè)鏡頭文件對(duì)應(yīng)的解析都不太一樣,這里就不再詳細(xì)判斷。

最后把解析得到的 Yaw Pitch Roll 和 X,Y,Z 的數(shù)據(jù)更新到我們綁定的 Camera 上面實(shí)時(shí)更新。

3創(chuàng)建 Event 事件

3.1 發(fā)現(xiàn)問(wèn)題

在子線程運(yùn)行的時(shí)候發(fā)現(xiàn)無(wú)法對(duì) USD Stage 場(chǎng)景的 Prim 操作,調(diào)試發(fā)現(xiàn) USD Prim 都是 None。

這時(shí)候可以利用AI幫助,描述清楚問(wèn)題的前因后果。

482318ec-9215-11f0-8c8f-92fbcf53809c.png

488e420c-9215-11f0-8c8f-92fbcf53809c.png

根據(jù)上面 AI 給出的提示,原因是 Omniverse 子線程中無(wú)法對(duì) Stage 的 USD Prim 進(jìn)行操作。 此時(shí)需要一個(gè)注冊(cè)主線程 Event 事件,在這個(gè) Event 事件中去更新每一個(gè) Prim 的操作。

此后還需考慮以下幾件事情:同步性(幀率統(tǒng)一)、設(shè)置延時(shí)、設(shè)置偏移、相機(jī)旋轉(zhuǎn)順序。

3.2 鎖定Omniverse渲染幀率

首先鎖定渲染的幀率。例如 FPS 鎖定在每秒 25 幀,F(xiàn)reeD 的發(fā)送幀率也鎖定到 25 幀。目的是保證良好的同步性,同時(shí)保證 Genlock 的傳輸接收效果良好。

關(guān)閉 Omniverse, 首先找到你對(duì)應(yīng)的 Build 出來(lái)的 Composer 對(duì)應(yīng)的.Kit文件,在“..kit107.3\_buildwindows-x86_64 eleaseapps” 里面包含所有配置的信息,用文本打開。

48fbf9aa-9215-11f0-8c8f-92fbcf53809c.png

[settings]下面添加以下字段, 注意是單獨(dú)的[settings]字段。

app.runLoops.main.rateLimitEnabled = true

app.runLoops.main.rateLimitFrequency = 25

app.runLoops.main.rateLimitUsePrecisionSleep = true

app.runLoops.main.syncToPresent = true

app.runLoops.present.rateLimitEnabled = true

app.runLoops.present.rateLimitFrequency = 25

app.runLoops.present.rateLimitUsePrecisionSleep = true

app.runLoops.rendering_0.rateLimitEnabled = true

app.runLoops.rendering_0.rateLimitFrequency = 25

app.runLoops.rendering_0.rateLimitUsePrecisionSleep = true

app.runLoops.rendering_0.syncToPresent = true

app.runLoops.rendering_1.rateLimitEnabled = true

app.runLoops.rendering_1.rateLimitFrequency = 25

app.runLoops.rendering_1.rateLimitUsePrecisionSleep = true

app.runLoops.rendering_1.syncToPresent = true

app.runLoopsGlobal.syncToPresent = true

app.vsync=true

重新打開 Omniverse 的 Composer ,可以看到此時(shí)的幀率是 50。原因是我們開啟了 DLSS 的 Frame Generation功能。 如果去掉 Frame Generation ,則會(huì)顯示 25 幀率。

49549308-9215-11f0-8c8f-92fbcf53809c.png

3.3 注冊(cè)渲染 on_update 事件

要得到渲染事件的事件,需要在每一次渲染 Render 開始的時(shí)候取出一幀進(jìn)行合并。

https://docs.omniverse.nvidia.com/dev-guide/latest/programmer_ref/events.html

Event streams 是以線程安全的方式傳遞數(shù)據(jù),是由 Omniverse 的核心組件 carb 來(lái)提供,下面就是每一幀渲染的時(shí)候都會(huì)調(diào)用的函數(shù), 后還需要再on_update函數(shù)去處理。

49afa3ec-9215-11f0-8c8f-92fbcf53809c.png

注冊(cè) Event:

sub1= update_stream.create_subscription_to_pop(on_update, name="My Subscription Name")

解除注冊(cè):需要把這個(gè) sub1 設(shè)置為 None (并沒有 unsubscription 這個(gè)函數(shù))

sub1= None

這里需要注意的是,在實(shí)際工程中要注意這個(gè) sub1 的生命周期,不能用一個(gè)局部變量去存儲(chǔ)注冊(cè)的 event,否則在出了這個(gè)局部函數(shù)sub1以后會(huì)自動(dòng)設(shè)置為 None,解決辦法是用一個(gè)成員變量去控制

self._sub= update_stream.create_subscription_to_pop,

然后在不需要的時(shí)候設(shè)置為 None:

self._sub= None

4相機(jī)延遲和定位偏移

4.1 相機(jī)延遲

相機(jī)延遲:在虛擬拍攝當(dāng)中,除了相機(jī)定位,還有動(dòng)捕數(shù)據(jù),綠幕視頻流傳輸數(shù)據(jù),這些數(shù)據(jù)需要處理的時(shí)間比 FreeD 要耗時(shí),所有可能會(huì)造成不同步,這就需要給相機(jī)定位在本地緩沖增加一些延時(shí),例如可以在程序中開一個(gè) Buffer 來(lái)緩沖一下

4.2 定位偏移

因?yàn)槎ㄎ辉O(shè)備和實(shí)際有偏移,所以利用 Nodal offset 來(lái)手動(dòng)添加偏移量。

4a0b88ec-9215-11f0-8c8f-92fbcf53809c.png

4a68172e-9215-11f0-8c8f-92fbcf53809c.png

5設(shè)置 Camera 旋轉(zhuǎn)順序

歐拉角的旋轉(zhuǎn)是有順序的,其本質(zhì)是因?yàn)樾D(zhuǎn)對(duì)應(yīng)的矩陣乘法不具備交換律。在 Omniverse Rotate 有 6 種方式,我們應(yīng)該以哪種旋轉(zhuǎn)指定呢?

在 Omniverse 當(dāng)中,應(yīng) Y 軸向上,按照 FreeD 的解析,即 Y, X, Z 的順序。 我們?cè)?Omniverse 里按照 ZXY 給出旋轉(zhuǎn)順序的具體原理可以查看知乎中的這篇帖子:https://zhuanlan.zhihu.com/p/85108850

4ac59de0-9215-11f0-8c8f-92fbcf53809c.png

4b27963a-9215-11f0-8c8f-92fbcf53809c.png

6最終

結(jié)合所有的步驟,完成最終所有功能。

iPhone 上面的 JetSet 軟件可以發(fā)送 FreeD 定位協(xié)議,這樣我們即可通過(guò)上面的思路完整做出一個(gè)符合工業(yè)標(biāo)準(zhǔn)的插件。

文案&技術(shù)支持:

宋毅明 NVIDIA Omniverse & OpenUSD 開發(fā)者關(guān)系經(jīng)理

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    1065

    瀏覽量

    41758
  • 定位系統(tǒng)
    +關(guān)注

    關(guān)注

    10

    文章

    636

    瀏覽量

    37394
  • 攝像機(jī)
    +關(guān)注

    關(guān)注

    3

    文章

    1738

    瀏覽量

    62581

原文標(biāo)題:實(shí)戰(zhàn)項(xiàng)目拆解!當(dāng) FreeD 定位系統(tǒng)遇上 Omniverse Extension

文章出處:【微信號(hào):Leadtek,微信公眾號(hào):麗臺(tái)科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    NVIDIA Omniverse Extension開發(fā)秘籍

    NVIDIA Omniverse 是一個(gè)模塊化平臺(tái),使用高級(jí) API 和微服務(wù)來(lái)構(gòu)建由 OpenUSD 和 NVIDIA RTX 提供支持的 3D 應(yīng)用。OpenUSD 功能強(qiáng)大的 3D 框架與
    的頭像 發(fā)表于 08-22 15:52 ?3140次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Omniverse</b> <b class='flag-5'>Extension</b><b class='flag-5'>開發(fā)</b>秘籍

    NVIDIANVIDIA Omniverse帶給全球超過(guò)250萬(wàn)的開發(fā)

    的面紗。 NVIDIA正在提供一套Omniverse應(yīng)用程序和工具,以增強(qiáng)開發(fā)者工作流水線。開發(fā)人員可以插入平臺(tái)堆棧的任何一層——無(wú)論是在頂層,還是
    的頭像 發(fā)表于 08-16 16:08 ?1922次閱讀

    NVIDIA Omniverse連接游戲開發(fā)工作流

    NVIDIA Omniverse 為游戲中的藝術(shù)和虛擬世界提供實(shí)時(shí)、協(xié)作的設(shè)計(jì)平臺(tái),從而加快開發(fā)速度
    的頭像 發(fā)表于 04-01 09:30 ?1546次閱讀

    NVIDIA Omniverse Create最新版功能介紹

      NVIDIA Omniverse Create 2021.3 現(xiàn)已在中提供公開測(cè)試版,為 Omniverse 藝術(shù)家、設(shè)計(jì)師、開發(fā)人員和工程師提供一組新功能,以增強(qiáng)圖形和內(nèi)容創(chuàng)建工
    的頭像 發(fā)表于 04-07 15:34 ?2144次閱讀

    NVIDIA Omniverse的特性及應(yīng)用

    NVIDIA Omniverse 基于 Pixar 的 Universal Scene Description 和 NVIDIA RTX技術(shù)打造,是一款可擴(kuò)展的多 GPU 實(shí)時(shí)推理開發(fā)
    的頭像 發(fā)表于 06-15 09:53 ?1958次閱讀

    利用NVIDIA RTX和Omniverse取得的工作成果

    NVIDIA RTX 和 NVIDIA Omniverse 可帶來(lái)卓越性能,幫助全球各地的專業(yè)人員、創(chuàng)作者、開發(fā)者和學(xué)生改進(jìn) 3D 設(shè)計(jì)工作流。借助
    的頭像 發(fā)表于 10-13 09:47 ?1503次閱讀

    利用 NVIDIA Omniverse 和 Bentley LumenRT 創(chuàng)建實(shí)時(shí)模擬

    Omniverse ,快速創(chuàng)建引人注目且高質(zhì)量的可視化效果與項(xiàng)目交付成果。 LumenRT for NVIDIA Omniverse 是市面上首個(gè)基于 NVIDIA
    的頭像 發(fā)表于 05-18 00:35 ?1124次閱讀
    <b class='flag-5'>利用</b> <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Omniverse</b> 和 Bentley LumenRT 創(chuàng)建實(shí)時(shí)模擬

    奧比中光將接入 NVIDIA Omniverse開發(fā)平臺(tái)

    ,作為其合作伙伴,奧比中光正式宣布將Femto Mega和其它3D相機(jī)集成到NVIDIA Omniverse生態(tài)開發(fā)平臺(tái)中。 NVIDIA 全球產(chǎn)業(yè)數(shù)字化生態(tài)布局伙伴, 奧比中光也在其
    的頭像 發(fā)表于 05-31 09:03 ?1315次閱讀

    探索NVIDIA AI和Omniverse加速設(shè)計(jì)創(chuàng)作

    協(xié)作,是專為虛擬協(xié)作和實(shí)時(shí)逼真模擬而打造的易于擴(kuò)展的開放式平臺(tái)。NVIDIA Omniverse 是連接世界上最大的工具生態(tài)系統(tǒng),目前連接 220 個(gè)工具軟件,下載量超過(guò) 30 萬(wàn)。
    的頭像 發(fā)表于 06-13 15:40 ?985次閱讀

    NVIDIA Omniverse中的物理模擬功能

    NVIDIA Omniverse? Simulation 作為 NVIDIA Omniverse? 平臺(tái)的關(guān)鍵組件之一,由 NVIDIA
    的頭像 發(fā)表于 03-08 11:30 ?2401次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Omniverse</b>中的物理模擬功能

    NVIDIA宣布將以API形式提供Omniverse? Cloud

    NVIDIA Omniverse Cloud API 使開發(fā)者能夠?qū)?Omniverse 技術(shù)集成到其設(shè)計(jì)與仿真工具和工作流中。
    的頭像 發(fā)表于 03-20 09:45 ?1008次閱讀

    Omniverse教程(12):NVIDIA Omniverse USD Presenter的基礎(chǔ)應(yīng)用

    如前所述,NVIDIA Omniverse? 是一個(gè)參考開發(fā)平臺(tái),通過(guò)模塊化的開發(fā)框架能夠輕松擴(kuò)展和自定義。
    的頭像 發(fā)表于 05-20 10:09 ?1573次閱讀
    <b class='flag-5'>Omniverse</b>教程(12):<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Omniverse</b> USD Presenter的基礎(chǔ)應(yīng)用

    使用OpenUSD和NVIDIA Omniverse開發(fā)虛擬工廠解決方案

    工業(yè)開發(fā)者正在借助 NVIDIA AI、NVIDIA Omniverse 和通用場(chǎng)景描述 (OpenUSD)生態(tài)系統(tǒng)的力量構(gòu)建虛擬工廠解決方
    的頭像 發(fā)表于 05-28 18:12 ?1901次閱讀
    使用OpenUSD和<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Omniverse</b><b class='flag-5'>開發(fā)</b>虛擬工廠解決方案

    借助OpenUSD和NVIDIA Omniverse開發(fā)數(shù)字孿生應(yīng)用

    接口、軟件開發(fā)套件和服務(wù)組成的,使開發(fā)者能夠開發(fā)基于 OpenUSD 的應(yīng)用 NVIDIA Omniverse
    的頭像 發(fā)表于 09-06 14:18 ?978次閱讀

    Foxconn利用NVIDIA AI和Omniverse訓(xùn)練機(jī)器人

    全球最大電子制造商 Foxconn 正準(zhǔn)備制造 NVIDIA 最復(fù)雜的產(chǎn)品之一,并開始使用 NVIDIA Omniverse 和 Isaac 平臺(tái)驅(qū)動(dòng)的數(shù)字孿生。
    的頭像 發(fā)表于 10-10 09:40 ?1093次閱讀