NSDT场景编辑器实现真数字孪生

在线工具推荐: 三维数字孪生场景工具 -  GLTF/GLB在线编辑器 -  Three.js AI自动纹理化开发 -  YOLO 虚幻合成数据生成器 -  3D模型在线转换 -   3D模型预览图生成服务

1、什么是数字孪生?

数字孪生是资产或系统的实时虚拟模型,它使用来自连接的物联网传感器的数据来创建数字表示。数字孪生允许您从任何地方实时监控设备、资产或流程。数字孪生用于多种目的,例如分析性能、监控问题或在实施之前运行测试。从物联网数字孪生中获得的见解使用户能够快速做出反应,以提高运营效率、生产质量、客户满意度等。

2、NSDT场景编辑器的功能特性?

NSDT场景编辑器也成为数字孪生编辑器,它是基于WebGL技术,依托丰富的模型资产库,通过拖拽式的操作,方便用户高效便捷的搭建三维数字孪生场景,配合twin服务平台,实现孪生设备姿态控制的虚实同步,并且支持场景导出和场景的二次开发,它的基本功能如下:

  • 基于WebGL技术。
  • 配套丰富的3D场景模型及设计素材。
  • 灵活方便的拖拽式操作。
  • 引入图模引擎,高效管理和应用模型库。
  • 配合twin服务平台,实现真数字孪生。
  • VR实现真实场景虚拟再现。
  • 场景支持在线分享和二次开发。

3、如何用NSDT场景编辑器实现数字孪生?

1、孪生体管理操作指南

使用场景说明:适合无实际物联设备,但能通过其它方式获取到物联数据,比如,从第三方应用系统定时获取数据或者有途径转发物联设备的数据,那么,您可通过调用我们http相关api接口,向我们孪生管理中心推送数据。

1.1、新增孪生体

第一步:注册用户账号

访问 NSDT.TWIN 孪生体管理平台,注册用户账号,操作如下图所示:

注册账号

第二步新建孪生体

假如已注册账号:test,密码:test,登录 NSDT.TWIN 孪生体管理平台 ,新建孪生体 ,操作如下图所示:

新建孪生体

特别说明

项目名称: 指定一个有含义的命名空间字符串,比如某个公司的网址,com.ww.cn;或者任何您想给的有意义的字符串

设备名称: 物联设备的唯一标志字符串,很重要,后续可以基于此字段推送物联设备的数据

版本: 不用填写

属性(静态):描述物联设备的一些静态属性,key-value格式字符串,可以自定义,比如name:lmd001,place:三工区,等等

特征属性(动态)-特征key:描述物联设备上一些组件,比如龙门吊有天车、吊臂绳,分别命名 topcar、rope,等等

特征属性(动态)-特征参数集合:描述物联设备上一个组件的一些物理量参数,比如龙门吊有天车的水平距离、吊臂绳升降高度,分别命名 horizontal_distance、rise_height,默认值类型为数字或小数,默认给0即可。

新建后查看列表【定义】列,就是孪生体的thingId,为com.ww.cn:lmd008

孪生体列表

1.2、场景中绑定孪生体

使用已注册用户账号登录 NSDT编辑器 ,切换到具体场景,选中要接入数据驱动的模型,切换到右下角【模型信息】tab,绑定新增孪生体的参数到模型属性上,如下图所示

配置孪生参数映射

特别说明:

选择刚刚创建的孪生体,比如“第008号龙门吊”,将其一个特征的一个参数绑定到选定模型的一个属性上,即完成绑定。需要说明的是,可将任意孪生体的任意特征参数,绑定到任意模型属性上。

1.3、接入物联设备数据方式

模拟仿真(测试使用)

选择【模拟仿真】,进入仿真页面,如下图所示

模拟仿真-入口

切换到【仿真配置】tab,配置仿真相关参数,如下图所示:

特别说明

频率:设置发送数据间隔,单位秒

仿真模式:

--全量仿真:模拟孪生体所有特征的所有参数

--单feature:模拟孪生体一个特征的所有参数

--单物理量:模拟孪生体一个特征的一个参数

配置:

--固定值:生成参数值为固定值。

--区间随机值:需设置最大和最小值,在此范围之间,随机生成参数值。

--循环递增:需设置最大和最小值以及递增最小单位量,在此范围之间,按递增步长,递增生成参数值,然后循环往复。

模拟仿真-配置

配置完仿真策略后,点击启动仿真,切换到【消息日志】可查看孪生体接收到的数据

仿真日志和按钮

1.3.2、直接调用http相关api接口发送物联设备数据

此种方式需要做一定的编码开发。

第一步:调用【用户访问token令牌】接口获取token令牌,有access_token和refresh_token两个令牌,access_token用于调用发送设备数据相关API,需要说明的是,access_token令牌会过期,有效期一年,refresh_token是离线刷新token,不会过期。所以,建议在access_token令牌到期前,或者调用发送物联设备数据API且请求返回401状态码时,可使用【用户访问token令牌】接口传入refresh_token,重新换取新access_token令牌。

第二步:调用【发送设备数据】相关api,我们提供三种发送设备数据的接口,请根据您获取到物联设备的数据格式,选择一种合适的接口,传入access_token到请求头,调用接口发送数据。

以上详见参考文档 【孪生体管理API接口说明】。

1.3.3、调用SDK发送物联设备数据

此种方式需要做一定的编码开发。

第一步:配置maven依赖

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

第二步:实例化和配置一个新的孪生体client

目录下增加配置文件src/main/resources/config.properties,内容如下:

### 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实例:

  • 需要创建AuthenticationProvider和MessagingProvider的实例
  • 创建DisconnectedDittoClient实例
  • 通过调用client.connect()异步获取DittoClient实例
// 创建AuthenticationProvider实例final AuthenticationProvider<WebSocket> authenticationProvider =  AuthenticationProviders.accessToken(AccessTokenAuthenticationConfiguration.newBuilder()// getJsonWebToken()为获取jwt令牌的方法,详见demo代码.accessTokenSupplier(() -> getJsonWebToken()).identifier("ditto").expiryGracePeriod(DEFAULT_EXPIRY_GRACE_PERIOD););// 创建MessagingProvider的实例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);// 创建DisconnectedDittoClient实例DisconnectedDittoClient disconnectedDittoClient = DittoClients.newInstance(messagingProvider);//创建孪生体clientDittoClient client = disconnectedDittoClient.connect().toCompletableFuture().get(10, TimeUnit.SECONDS);

第三步:使用client向孪生体平台发送物联设备数据,参考示例SendTwinDataDemo.java文件中main函数,有三种发送数据方式:

// 演示给指定孪生体发送所有特征数据updateFeatures();

// 演示给指定孪生体发送一个特征的所有参数的数据updateFeature();

// 演示给指定孪生体发送一个特征中的一个参数的数据updateFeatureProperty();

以上详见参考文档【孪生体管理API接口说明】,java-sdk使用demo下载链接 java-sdk-demo

1.4、浏览模型驱动效果

浏览效果1

浏览效果1-2

浏览效果2

可以看见龙门吊模型和吊钩的位置都在不停移动,并且模型属性【位置-X】数据有明显变化

转载:NSDT场景编辑器实现真数字孪生 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot 整合 spring security

项目结构 添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.9.RELEASE</version><relativePath/></parent><dependency><grou…

UiPath:人工智能和重新加速增长是 2024 年的好兆头

UiPath&#xff08;NYSE&#xff1a;PATH&#xff09;重新加速增长&#xff0c;同时在销售和营销方面变得最高效&#xff0c;使其成为进入 2024 年的有吸引力的成长型股票。 UiPath 最初被归类为机器人流程自动化 (RPA) 公司&#xff0c;现在认为自己是一家人工智能驱动的自动…

MATLAB R2022b 安装

文章用于学习记录 文章目录 前言下载解压安装包总结 前言 下载解压安装包 MATLAB R2022b —— A9z3 装载(Mount) MATLAB_R2022b_Win64.iso 打开装载好的 DVD 驱动器并找到 setup&#xff0c;单击鼠标右键以管理员身份运行&#xff1a; 点击窗口右上角的 高级选项下拉框&#…

【UGUI】Unity为下拉菜单添加选项(DropDown)

要想控制谁就把谁拿到代码里-获取组件-修改组件参数&#xff08;变量或者方法&#xff09; 代码示例&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro;public class UIcontrol : MonoBehavi…

贝叶斯网络 (期末复习)

文章目录 贝叶斯网络&#xff08;概率图模型&#xff09;定义主要考点例题- 要求画出贝叶斯网络图- 计算各节点的条件概率表- 计算概率-分析独立性 贝叶斯网络&#xff08;概率图模型&#xff09; 定义 一种简单的用于表示变量之间条件独立性的有向无环图&#xff08;DAG&…

一线大厂Redis高并发缓存架构(待完善)

场景1&#xff1a;秒杀库存场景&#xff0c; 10000人抢100个商品 如果用普通的分布式锁实现&#xff0c; 最后抢到的人&#xff0c;要等前面99个人抢完 优化方案&#xff1a;可用分段锁&#xff0c; 降低锁的粒度&#xff0c; 比如1-10库存用锁product:101_1,11-20库存用锁pr…

MySQL -DDL 及表类型

DDL 创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification:[DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 1.CHARACTER SET&#xff1a…

PT读spef报PARA-006如何解决?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 There are multiple causes that can trigger PARA-006 errors. Here is a checklist. 1) SPEF reading order Functionally, the parasitic files can be read in any order. For best stitching…

acwing算法基础之动态规划--数位统计DP、状态压缩DP、树形DP和记忆化搜索

目录 1 基础知识2 模板3 工程化 1 基础知识 暂无。。。 2 模板 暂无。。。 3 工程化 题目1&#xff1a;求a~b中数字0、数字1、…、数字9出现的次数。 思路&#xff1a;先计算1~a中每位数字出现的次数&#xff0c;然后计算1~b-1中每位数字出现的次数&#xff0c;两个相减即…

C++基础 -29- 友元类

友元类格式 friend class person2;类的友元类访问类的全部成员 #include "iostream"using namespace std;class person1 { public:int a;protected:int b;private:int c;friend class person2; };class person2 { public:void test(){person1 a;a.a 100;a.b 200…

校园局域网规划与设计(cisco仿真模拟)

摘 要 随着网络技术的发展&#xff0c;校园网的建设已经进入到一个蓬勃发展的阶段。校园网的建成和使用&#xff0c;对于提高教学和科研的质量、改善教学和科研条件、加快学校的信息化进程&#xff0c;开展多媒体教学与研究以及使教学多出人才、科研多出成果有着十分重要而深远…

05-建造者模式-C语言实现

UML类图&#xff1a; 代码实现&#xff1a; #include <stdio.h> #include <stdlib.h>// 产品类 typedef struct {char* part1;char* part2;char* part3; } Product;// 抽象建造者类 typedef struct {void (*buildPart1)(void*, const char*);void (*buildPart2)(v…

leetCode 494.递增子序列 + 回溯算法 + 图解 + 笔记

给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情况。 示例 1&#…

Python项目管理利器poetry我愿称之为神!

MongoDB是一种流行的NoSQL数据库&#xff0c;它以灵活的文档结构存储数据。MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包&#xff0c;你可以从MongoDB官网下载安装&#xff0c;MongoDB 预编译二进制包下载地址&#xff1a; https://www.mongodb.com/try/download/…

【Linux】信号概念和信号的产生

文章目录 一、什么是信号&#xff1f;1.signal系统调用2.从硬件解析键盘数据如何输入给内核3.同步和异步 二、信号的产生1.键盘组合键2. kill命令3.系统调用接口3.1kill3.2 raise3.3abort 4.异常5.软件条件 重谈core dump标志位 一、什么是信号&#xff1f; 以日常为例&#x…

Elasticsearch:么是向量嵌入?

向量嵌入定义 向量嵌入 (vector embeddings) 是一种将单词、句子和其他数据转换为捕获其含义和关系的数字的方法。 它们将不同的数据类型表示为多维空间中的点&#xff0c;其中相似的数据点更紧密地聚集在一起。 这些数字表示可以帮助机器更有效地理解和处理这些数据。 单词和…

VS安装QT VS Tools编译无法通过

场景&#xff1a; 项目拷贝到虚拟机内部后&#xff0c;配置好相关环境后无法编译&#xff0c;安装QT VS Tools后依旧无法编译&#xff0c;查找资料网上说的是QT工具版本不一致导致的&#xff0c;但反复试了几个版本后依旧无法编译通过。错误信息如下&#xff1a; C:\Users\Ad…

OpenTelemetry系列 - 第1篇 相关概念

目录 一、背景二、概念2.1 Traces & Span2.2 Metrics2.3 Logs2.4 Baggage2.5 OTel2.6 OTLP2.7 Resources2.8 Instrumentation Scope2.9 Sampling 三、核心组件 一、背景 OpenTelemetry是一个可观察性框架和工具包&#xff0c;旨在创建和管理遥测数据&#xff0c;如跟踪、指…

Monocle 3 | 太牛了!单细胞必学R包!~(五)(差异分析之聚类比较与模块鉴定)

1写在前面 准备出去玩耍了&#xff0c;今天就不废话了&#xff0c;直接上主题吧。&#x1f973; monocle3做差异分析也是牛的一米&#xff01;~&#x1f33e; 2用到的包 rm(list ls())library(tidyverse)library(monocle3) 3示例数据 我们还是载入之前用过的一个数据集吧。&am…

HarmonyOs 4 (三) ArkTS语言

目录 一 认识ArkTs语言1.1 ArkTs1.2 基本结构 二 基本语法2.1 声明式UI2.1.1 创建组件2.1.1.1 无参数2.1.1.2 有参数2.1.1.3 组件样式2.1.1.4 组件方法2.1.1.5 组件嵌套 2.1.2 自定义组件2.1.2.1 基本结构2.1.2.2 成员函数/变量2.1.2.3 自定义组件的参数规定2.1.2.4 Build函数2…