博客專欄

        EEPW首頁 > 博客 > NSDT場景編輯器實(shí)現(xiàn)真數(shù)字孿生

        NSDT場景編輯器實(shí)現(xiàn)真數(shù)字孿生

        發(fā)布人:ygtu 時(shí)間:2023-12-01 來源:工程師 發(fā)布文章

        在線工具推薦:

        1NSDT 三維場景建模工具:https://studio.nsdt.cloud/

        2GLTF/GLB在線編輯器:https://gltf.nsdt.cloud/

        3Three.js AI自動(dòng)紋理化開發(fā)包:https://tools.nsdt.cloud/DreamTexture

        4YOLO 虛幻合成數(shù)據(jù)生成器:https://tools.nsdt.cloud/UnrealSynth

        53D模型在線轉(zhuǎn)換:https://3dconvert.nsdt.cloud/

        6、三維模型預(yù)覽圖生成器:https://tools.nsdt.cloud/file-previewer

        1、什么是數(shù)字孿生?

        數(shù)字孿生是資產(chǎn)或系統(tǒng)的實(shí)時(shí)虛擬模型,它使用來自連接的物聯(lián)網(wǎng)傳感器的數(shù)據(jù)來創(chuàng)建數(shù)字表示。數(shù)字孿生允許您從任何地方實(shí)時(shí)監(jiān)控設(shè)備、資產(chǎn)或流程。數(shù)字孿生用于多種目的,例如分析性能、監(jiān)控問題或在實(shí)施之前運(yùn)行測試。從物聯(lián)網(wǎng)數(shù)字孿生中獲得的見解使用戶能夠快速做出反應(yīng),以提高運(yùn)營效率、生產(chǎn)質(zhì)量、客戶滿意度等。

        2、NSDT場景編輯器的功能特性?

        NSDT場景編輯器也成為數(shù)字孿生編輯器,它是基于WebGL技術(shù),依托豐富的模型資產(chǎn)庫,通過拖拽式的操作,方便用戶高效便捷的搭建三維數(shù)字孿生場景,配合twin服務(wù)平臺,實(shí)現(xiàn)孿生設(shè)備姿態(tài)控制的虛實(shí)同步,并且支持場景導(dǎo)出和場景的二次開發(fā),它的基本功能如下:

        • 基于WebGL技術(shù)。

        • 配套豐富的3D場景模型及設(shè)計(jì)素材。

        • 靈活方便的拖拽式操作。

        • 靈活方便的拖拽式操作。

        • 引入圖模引擎,高效管理和應(yīng)用模型庫。

        • 配合twin服務(wù)平臺,實(shí)現(xiàn)真數(shù)字孿生。

        • VR實(shí)現(xiàn)真實(shí)場景虛擬再現(xiàn)。

        • 場景支持在線分享和二次開發(fā)。

        3、如何用NSDT場景編輯器實(shí)現(xiàn)數(shù)字孿生?1、孿生體管理操作指南

        使用場景說明:適合無實(shí)際物聯(lián)設(shè)備,但能通過其它方式獲取到物聯(lián)數(shù)據(jù),比如,從第三方應(yīng)用系統(tǒng)定時(shí)獲取數(shù)據(jù)或者有途徑轉(zhuǎn)發(fā)物聯(lián)設(shè)備的數(shù)據(jù),那么,您可通過調(diào)用我們http相關(guān)api接口,向我們孿生管理中心推送數(shù)據(jù)。

        1.1、新增孿生體

        第一步:注冊用戶賬號

        訪問 NSDT.TWIN 孿生體管理平臺,注冊用戶賬號,操作如下圖所示:

        注冊賬號

        第二步新建孿生體

        假如已注冊賬號:test,密碼:test,登錄 NSDT.TWIN 孿生體管理平臺 ,新建孿生體 ,操作如下圖所示:

        新建孿生體

        特別說明

        項(xiàng)目名稱: 指定一個(gè)有含義的命名空間字符串,比如某個(gè)公司的****,com.ww.cn;或者任何您想給的有意義的字符串

        設(shè)備名稱: 物聯(lián)設(shè)備的唯一標(biāo)志字符串,很重要,后續(xù)可以基于此字段推送物聯(lián)設(shè)備的數(shù)據(jù)

        版本: 不用填寫

        屬性(靜態(tài)):描述物聯(lián)設(shè)備的一些靜態(tài)屬性,key-value格式字符串,可以自定義,比如name:lmd001,place:三工區(qū),等等

        特征屬性(動(dòng)態(tài))-特征key:描述物聯(lián)設(shè)備上一些組件,比如龍門吊有天車、吊臂繩,分別命名 topcar、rope,等等

        特征屬性(動(dòng)態(tài))-特征參數(shù)集合:描述物聯(lián)設(shè)備上一個(gè)組件的一些物理量參數(shù),比如龍門吊有天車的水平距離、吊臂繩升降高度,分別命名 horizontal_distance、rise_height,默認(rèn)值類型為數(shù)字或小數(shù),默認(rèn)給0即可。

        新建后查看列表【定義】列,就是孿生體的thingId,為com.ww.cn:lmd008

        孿生體列表

        1.2、場景中綁定孿生體

        使用已注冊用戶賬號登錄 NSDT編輯器 ,切換到具體場景,選中要接入數(shù)據(jù)驅(qū)動(dòng)的模型,切換到右下角【模型信息】tab,綁定新增孿生體的參數(shù)到模型屬性上,如下圖所示

        配置孿生參數(shù)映射

        特別說明:

        選擇剛剛創(chuàng)建的孿生體,比如“第008號龍門吊”,將其一個(gè)特征的一個(gè)參數(shù)綁定到選定模型的一個(gè)屬性上,即完成綁定。需要說明的是,可將任意孿生體的任意特征參數(shù),綁定到任意模型屬性上。

        1.3、接入物聯(lián)設(shè)備數(shù)據(jù)方式

        模擬仿真(測試使用)

        選擇【模擬仿真】,進(jìn)入仿真頁面,如下圖所示

        模擬仿真-入口

        切換到【仿真配置】tab,配置仿真相關(guān)參數(shù),如下圖所示:

        特別說明

        頻率:設(shè)置發(fā)送數(shù)據(jù)間隔,單位秒

        仿真模式:

        --全量仿真:模擬孿生體所有特征的所有參數(shù)

        --單feature:模擬孿生體一個(gè)特征的所有參數(shù)

        --單物理量:模擬孿生體一個(gè)特征的一個(gè)參數(shù)

        配置:

        --固定值:生成參數(shù)值為固定值。

        --區(qū)間隨機(jī)值:需設(shè)置最大和最小值,在此范圍之間,隨機(jī)生成參數(shù)值。

        --循環(huán)遞增:需設(shè)置最大和最小值以及遞增最小單位量,在此范圍之間,按遞增步長,遞增生成參數(shù)值,然后循環(huán)往復(fù)。

        模擬仿真-配置

        配置完仿真策略后,點(diǎn)擊啟動(dòng)仿真,切換到【消息日志】可查看孿生體接收到的數(shù)據(jù)

        仿真日志和按鈕

        1.3.2、直接調(diào)用http相關(guān)api接口發(fā)送物聯(lián)設(shè)備數(shù)據(jù)

        此種方式需要做一定的編碼開發(fā)。

        第一步:調(diào)用【用戶訪問token令牌】接口獲取token令牌,有access_token和refresh_token兩個(gè)令牌,access_token用于調(diào)用發(fā)送設(shè)備數(shù)據(jù)相關(guān)API,需要說明的是,access_token令牌會(huì)過期,有效期一年,refresh_token是離線刷新token,不會(huì)過期。所以,建議在access_token令牌到期前,或者調(diào)用發(fā)送物聯(lián)設(shè)備數(shù)據(jù)API且請求返回401狀態(tài)碼時(shí),可使用【用戶訪問token令牌】接口傳入refresh_token,重新?lián)Q取新access_token令牌。

        第二步:調(diào)用【發(fā)送設(shè)備數(shù)據(jù)】相關(guān)api,我們提供三種發(fā)送設(shè)備數(shù)據(jù)的接口,請根據(jù)您獲取到物聯(lián)設(shè)備的數(shù)據(jù)格式,選擇一種合適的接口,傳入access_token到請求頭,調(diào)用接口發(fā)送數(shù)據(jù)。

        以上詳見參考文檔【孿生體管理API接口說明】。

        1.3.3、調(diào)用SDK發(fā)送物聯(lián)設(shè)備數(shù)據(jù)

        此種方式需要做一定的編碼開發(fā)。

        第一步:配置maven依賴

        <dependency>
             <groupId>org.eclipse.ditto</groupId>
             <artifactId>ditto-client</artifactId>
             <version>3.1.1</version>
         </dependency>

        第二步:實(shí)例化和配置一個(gè)新的孿生體client

        目錄下增加配置文件src/main/resources/config.properties,內(nèi)容如下:

        ### Required configuration properties
        namespace=com.ww.cn
        endpoint=wss://twin.nsdt.cloud:8081/ws/2
        ### password credentials
        clientId=TED
        scopes=offline_access
        tokenEndpoint=https://nsdt.cloud/auth/realms/nsdt/protocol/openid-connect/token
        pwUsername=test ### 換成您的NSDT賬號和密碼
        pwPassword=123  ### 換成您的NSDT賬號和密碼

        要配置孿生體client實(shí)例:

        • 需要?jiǎng)?chuàng)建AuthenticationProvider和MessagingProvider的實(shí)例

        • 創(chuàng)建DisconnectedDittoClient實(shí)例

        • 通過調(diào)用client.connect()異步獲取DittoClient實(shí)例

        // 創(chuàng)建AuthenticationProvider實(shí)例
         final AuthenticationProvider<WebSocket> authenticationProvider =  AuthenticationProviders.accessToken(
         	 AccessTokenAuthenticationConfiguration.newBuilder()
         	     // getJsonWebToken()為獲取jwt令牌的方法,詳見demo代碼
                 .accessTokenSupplier(() -> getJsonWebToken())
                 .identifier("ditto")
                 .expiryGracePeriod(DEFAULT_EXPIRY_GRACE_PERIOD);
         );
         
         // 創(chuàng)建MessagingProvider的實(shí)例
         final MessagingConfiguration.Builder messagingConfigurationBuilder =
             WebSocketMessagingConfiguration.newBuilder()
                 .jsonSchemaVersion(JsonSchemaVersion.V_2)
                 .reconnectEnabled(false)
                 // config.properties中的tokenEndpoint
                 .endpoint(CONFIG_PROPERTIES.getEndpointOrThrow())
         ;
         final MessagingProvider messagingProvider =
             MessagingProviders.webSocket(messagingConfigurationBuilder.build(), authenticationProvider);
         
         // 創(chuàng)建DisconnectedDittoClient實(shí)例
         DisconnectedDittoClient disconnectedDittoClient = DittoClients.newInstance(messagingProvider);
         
         //創(chuàng)建孿生體client
         DittoClient client = disconnectedDittoClient.connect().toCompletableFuture().get(10, TimeUnit.SECONDS);

        第三步:使用client向?qū)\生體平臺發(fā)送物聯(lián)設(shè)備數(shù)據(jù),參考示例SendTwinDataDemo.java文件中main函數(shù),有三種發(fā)送數(shù)據(jù)方式:

        // 演示給指定孿生體發(fā)送所有特征數(shù)據(jù)updateFeatures();// 演示給指定孿生體發(fā)送一個(gè)特征的所有參數(shù)的數(shù)據(jù)updateFeature();// 演示給指定孿生體發(fā)送一個(gè)特征中的一個(gè)參數(shù)的數(shù)據(jù)updateFeatureProperty();

        以上詳見參考文檔【孿生體管理API接口說明】,java-sdk使用demo下載鏈接 java-sdk-demo

        1.4、瀏覽模型驅(qū)動(dòng)效果

        瀏覽效果1瀏覽效果1-2瀏覽效果2

        可以看見龍門吊模型和吊鉤的位置都在不停移動(dòng),并且模型屬性【位置-X】數(shù)據(jù)有明顯變化

        轉(zhuǎn)載:NSDT場景編輯器實(shí)現(xiàn)真數(shù)字孿生 (mvrlink.com)

        *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: 數(shù)字孿生 3D建模

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 公安县| 体育| 香格里拉县| 伊金霍洛旗| 思南县| 思茅市| 东阿县| 额尔古纳市| 龙胜| 喀喇沁旗| 抚州市| 渭源县| 石屏县| 玛沁县| 长丰县| 平潭县| 建平县| 新蔡县| 山阳县| 富民县| 茶陵县| 南溪县| 镇康县| 新蔡县| 东光县| 固安县| 策勒县| 买车| 南澳县| 木兰县| 邢台市| 二连浩特市| 桃园市| 广元市| 周宁县| 陇西县| 承德市| 普兰店市| 新建县| 济南市| 嘉黎县|