• [技术干货] 搭建高可用kubernetes集群(keepalived+haproxy)
    haproxy:达到负载均衡的目的,通过配置虚拟ipkeepalived:检测主机是否存活准备三台机器,ip的划分如下参考《k8s集群的搭建》搭建好k8s集群:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=120441第一步、在master2节点安装docker 第二步、在master2节点上安装k8s基础组件(所有节点)1、启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项sysctl -w net.bridge.bridge-nf-call-iptables=1# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld # 关闭selinuxsed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久setenforce 0  # 临时2、禁用交换分区。swapoff -acp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab3、安装K8s组件。yum install -y kubelet kubeadm kubectl kubernetes-cni4、查看安装情况。rpm -qa | grep kubeletrpm -qa | grep kubeadmrpm -qa | grep kubectlrpm -qa | grep kubernetes-cni5、设置iptables。echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf6、使能kubelet服务。systemctl enable kubelet 第三步、在两个master01和master02节点都安装keepalived+haproxyyum install -y conntrack-tools libseccomp libtool-ltdl keepalived  第四步、# 根据规划设置主机名hostnamectl set-hostname <hostname># 在集群的所有节点添加hostscat >> /etc/hosts << EOF10.10.9.16   master-0110.10.9.130   node-0110.10.9.219    master-02EOF ### 3.2配置master节点 master1节点配置 ```cat > /etc/keepalived/keepalived.conf <<EOF ! Configuration File for keepalived global_defs {   router_id master-01} vrrp_script check_haproxy {    script "killall -0 haproxy"    interval 3    weight -2    fall 10    rise 2} vrrp_instance VI_1 {    state MASTER    interface enp3s0    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 111    }    virtual_ipaddress {        10.10.9.220    }    track_script {        check_haproxy    } }EOF``` master2节点配置 ```cat > /etc/keepalived/keepalived.conf <<EOF ! Configuration File for keepalived global_defs {   router_id master-02} vrrp_script check_haproxy {    script "killall -0 haproxy"    interval 3    weight -2    fall 10    rise 2} vrrp_instance VI_1 {    state BACKUP    interface enp3s0    virtual_router_id 51    priority 90    advert_int 1    authentication {        auth_type PASS        auth_pass 111    }    virtual_ipaddress {        10.10.9.220    }    track_script {        check_haproxy    } }EOF``` ### 3.3 启动和检查 在两台master节点都执行 ```# 启动keepalived$ systemctl start keepalived.service设置开机启动$ systemctl enable keepalived.service# 查看启动状态$ systemctl status keepalived.service```  启动后查看master1的网卡信息 ```ip a s enp3s0  多一个虚拟ip在master01节点。当master01节点挂之后,虚拟ip会漂移到master02节点说明:检查keepalived是否安装成功的标准是:1.任何一台服务器上ping虚拟ip可以通;2.虚拟IP只在一台服务上可见;3.任意停止某一台服务器后,虚拟IP会移动到剩下的某一台服务器上,并正常使用。 ## 4. 在两个主节点安装haproxyyum install -y haproxy ### 4.2 配置 两台master节点的配置均相同,配置中声明了后端代理的两个master节点服务器,指定了haproxy运行的端口为6444等,因此6444端口为集群的入口 ```cat > /etc/haproxy/haproxy.cfg << EOF#   https://www.haproxy.org/download/1.8/doc/configuration.txt##--------------------------------------------------------------------- global    log         127.0.0.1 local2    chroot      /var/lib/haproxy    pidfile     /var/run/haproxy.pid    user        haproxy    group       haproxy    daemon    maxconn     4000 defaults    mode                    http    log                     global    option                  httplog    option                  dontlognull    retries                 3    timeout http-request    5s    timeout queue           1m    timeout connect         5s    timeout client          1m    timeout server          1m    timeout http-keep-alive 5s    timeout check           5s    maxconn                 3000  frontend kubernetes-apiserver    mode                 tcp    bind                 *:6444  # 对外提供服务的端口,必须和kubernetes一致    option               tcplog    default_backend      kubernetes-apiserver #后端服务的名称 backend kubernetes-apiserver    mode        tcp    balance     roundrobin    server  master-01 10.10.9.16:6443 check # 后端服务器hostname和IP    server  master-02 10.10.9.219:6443 check # 后端服务器hostname和IPEOF``` ### 4.3两台master都启动# 设置开机启动$ systemctl enable haproxy# 开启haproxy$ systemctl start haproxy# 查看启动状态$ systemctl status haproxy```检查端口```netstat -lntup|grep haproxy```## 8、master2节点加入集群时间同步:yum install ntpdate -y && timedatectl set-timezone Asia/Shanghai  && ntpdate time.windows.com 7.6 添加其他master节点将node-01将证书文件拷贝至其他master节点 mkdir -p /etc/kubernetes/pki/etcdscp /etc/kubernetes/admin.conf root@10.10.9.219:/etc/kubernetes/admin.conf scp /etc/kubernetes/pki/{ca.*,sa.*,front-proxy-ca.*} root@10.10.9.219:/etc/kubernetes/pki scp /etc/kubernetes/pki/etcd/ca.* root@10.10.9.219:/etc/kubernetes/pki/etcd   ### 8.2 master2加入集群执行在master1上init后输出的join命令,需要带上参数`--control-plane`表示把master控制节点加入集群kubeadm join 10.10.9.220:6444 --token abcdef.0123456789abcdef \    --discovery-token-ca-cert-hash sha256:5bd9f4b5fbf4e15a34c03159a5c4343d2261b4b2740101298a307f0ac4a1bc59 \--experimental-control-plane  在master02节点下载对应的docker镜像 在master02节点执行步骤2中需要的步骤(k8s基础步骤)echo "1" > /proc/sys/net/ipv4/ip_forward      在master-01节点运行:kubeadm init phase upload-certs --experimental-upload-certs获取k8s加入集群的token kubeadm token create --print-join-command把上面两个输出结果合拼为一条命令。在master-02上执行kubeadm join 10.10.9.220:6444 --token abcdef.0123456789abcdef \    --discovery-token-ca-cert-hash sha256:5bd9f4b5fbf4e15a34c03159a5c4343d2261b4b2740101298a307f0ac4a1bc59 \--experimental-control-plane 配置中的sever需要机器的ip地址sudo cat /etc/kubernetes/kubelet.confhttps://www.jianshu.com/p/745c96476a32 k8s中初始化的yaml文件kubeadm config print init-defaults > kubeadm-config.yaml配置文件如下:apiVersion: kubeadm.k8s.io/v1beta1bootstrapTokens:- groups:  - system:bootstrappers:kubeadm:default-node-token  token: abcdef.0123456789abcdef  ttl: 24h0m0s  usages:  - signing  - authenticationkind: InitConfigurationlocalAPIEndpoint:  advertiseAddress: 10.10.9.16  bindPort: 6443nodeRegistration:  criSocket: /var/run/dockershim.sock  name: master-01  taints:  - effect: NoSchedule    key: node-role.kubernetes.io/master---apiServer:  timeoutForControlPlane: 4m0sapiVersion: kubeadm.k8s.io/v1beta1certificatesDir: /etc/kubernetes/pkiclusterName: kubernetescontrolPlaneEndpoint: "10.10.9.220:6444"controllerManager: {}dns:  type: CoreDNSetcd:  local:    dataDir: /var/lib/etcdimageRepository: k8s.gcr.iokind: ClusterConfigurationkubernetesVersion: v1.14.2networking:  dnsDomain: cluster.local  podSubnet: "10.244.0.0/16"  serviceSubnet: 10.96.0.0/12scheduler: {} 初始化集群kubeadm init --config  kubeadm-config.yaml 附:配置免密登录a、生成密钥,遇到提示时,按回车。ssh-keygen -t rsa会在/root/.ssh文件下生成如下文件b、在每台机器上配置SSH免密登录(包括配置自身节点的免密)。ssh-copy-id -i ~/.ssh/id_rsa.pub root@所有节点IP会在/roo/.ssh/authorized_keys里面追加公钥验证:ssh ip地址 直接进入所在的服务器 清空集群kubeadm reset启动集群systemctl enable kubelet && systemctl start kubelet初始化kubeadm init --config kubeadm-config.yml# 1.从master节点拷贝配置文件到准备添加的节点上mkdir -p /etc/kubernetes/pki/etcdscp /etc/kubernetes/admin.conf root@10.10.9.219:/etc/kubernetes/admin.conf scp /etc/kubernetes/pki/{ca.*,sa.*,front-proxy-ca.*} root@10.10.9.219:/etc/kubernetes/pki scp /etc/kubernetes/pki/etcd/ca.* root@10.10.9.219:/etc/kubernetes/pki/etcd mkdir -p /etc/kubernetes/pki/etcdscp /etc/kubernetes/admin.conf root@10.10.9.130:/etc/kubernetes/admin.confscp /etc/kubernetes/pki/{ca.*,sa.*,front-proxy-ca.*} root@10.10.9.130:/etc/kubernetes/pkiscp /etc/kubernetes/pki/etcd/ca.* root@10.10.9.130:/etc/kubernetes/pki/etcd 查看kubelet详细报错信息journalctl -xefu kubelet 查看kubelet状态systemctl status kubeletkubeadm join 10.10.17.68:6443 --token 4y6qqt.c79h5g8k24peruxd \    --discovery-token-ca-cert-hash sha256:bd27d56ec229d75f83787a199523728df3cf4d83623041d284f38695a28686d8 --experimental-control-plane [preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Get https://10.10.9.220:6444/api/v1/namespaces/kube-system/configmaps/kubeadm-config: dial tcp 10.10.9.220:6444: i/o timeout更多请参考:https://www.cnblogs.com/chusiyong/p/12838111.html
  • [新手课堂] java虚拟机启动过程分析
    ### 一、序言 当我们在编写Java应用的时候,很少会注意Java程序是如何被运行的,如何被操作系统管理和调度的。带着好奇心,探索一下Java虚拟机启动过程。 ##### 1、素材准备 从`Java源代码`、`Java字节码`、`Java虚拟机`、`操作系统`四个角度分解启动过程。 ```java public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld!"); } } ``` ##### 2、源代码生成字节码 利用Java环境提供的可执行命令`javac`将源代码编译成字节码文件,编译后的字节码文件与平台无关,可跨平台运行。注意区分`javac`命令是一个独立的编译应用,源代码编译完成,进程终止。`java`命令启动的虚拟机进程的编译过程是将字节码指令编译成汇编指令(二进制指令)。 ##### 3、虚拟机解析字节码 Java字节码无法直接在操作系统上创建进程,因此需要借助已经启动的虚拟机进程来解析字节码,处理字节码有两种常见方式:`解释型`和`编译型`。 在命令行中每运行`java`命令代表启动一个Java虚拟机进程,各虚拟机相互独立,通过命令行参数分别对虚拟机进程进行配置。 Java虚拟机准备启动完毕后,便可以依次解析字节码指令,正式运行`Java代码`部分。 ##### 4、操作系统管理虚拟机 操作系统通过进程管理和调度Java虚拟机,无法感知虚拟机间接解析Java字节码部分。Java字节码通过虚拟机的抽象,完成了在操作系统上运行。 ### 二、Java虚拟机 当运行Java应用时,需要先安装Java环境,然而安装的Java环境与Java应用有什么关系,Java应用是如何运行起来的,下面一探究竟。 二进制可执行程序`${JAVA_HOME}/bin/java`是C++编写经过GCC编译器编译后形成的,探索Java虚拟机的运行原理,首先需要找到相应的源码。 当在安装Java环境时,会看到一个`src.zip`压缩文件,解压后里面`launcher/java.c`文件便是可执行文件`java`命令的主要源码。 #### (一)配置JVM装载环境 从操作系统加载环境变量、硬件信息等运行环境信息,为后续创建JVM进程做准备。 #### (二)命令行参数解析 装载完JVM环境之后,需要对启动时命令行参数进行解析,该过程通过`ParseArguments方法`实现,并调用`AddOption方法`将解析完成的参数保存到JavaVMOption中。 比如常见的JavaVMOption参数在此步骤解析: ``` -Xms:设置堆的初始值InitialHeapSize,也是堆的最小值; -Xmx:设置堆的最大值MaxHeapSize; ``` JVM调优各参数解析便是在此步骤完成的。 #### (三)执行main方法 线程栈大小确定后,通过`ContinueInNewThread方法`创建新线程,并执行JavaMain函数,大概流程如下: ##### 1、新建JVM实例 InitializeJVM方法调用InvocationFunctions的CreateJavaVM方法,即调用JVM.dll函数JNI_CreateJavaVM,新建一个JVM实例,该过程比较复杂。 ##### 2、加载入口类 通常在命令行中运行如下命令即指明入口类路径 ```shell # 直接指名入口类路径 java HelloWorld.class # 通过包类配置入口类路径 java -jar HelloWorld.jar ``` ##### 3、查找main方法 通过GetStaticMethodID方法查找指定main方法名的静态方法。 ##### 4、执行main方法 通过`JavaCalls::call`回调执行main方法。需要注意的是,这里执行main方法不是Java语言的方法,是经过虚拟机解释(或者编译)后,操作系统能够理解的二进制可执行方法。 ### 三、解析字节码 #### (一)解释字节码 ##### 1、基于栈指令集 ```shell iconst_1 将 1 放入栈顶 iconst_1 将 1 放入栈顶 iadd 将栈顶的 2 个数相加后结果放入栈顶 istore_0 将相加的结果放入局部变量表 ``` 基于栈的指令集优点是虚拟机解释器是可跨平台移植的,换句话说不同平台的虚拟机解释器代码可以复用。 ##### 2、基于寄存器指令集 ```shell mov eax,1 把 EAX 寄存器的值设为 1 add eax,1 再把这个值加 1 ,结果保存在了 EAX 寄存器 ``` 基于寄存器指令集的优点是执行速度相对于栈较快,原因是出栈入栈本身就涉及了大量的指令,而且栈是在内存中实现的,更底层的汇编指令性能更高。 基于寄存器指令集的缺点是虚拟机解释器是不可跨平台移植,需要针对不同平台的虚拟机做不同实现。考虑到不同平台已经使用不同的虚拟机程序,因此此过程多用户透明。 ------ 虚拟机通过解释器来翻译字节码文件中的指令比较顺其自然,可是对于服务器端高频执行的程序来说,中间的翻译过程相对耗时。解释字节码的方式适用于对启动性能要求高,并且执行频率较低的应用程序。 #### (二)编译字节码 最初,JVM 中的字节码是由解释器( Interpreter )完成编译的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为`热点代码`。 为了提高热点代码的执行效率,在运行时,即时编译器(JIT,Just In Time)会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,然后保存到内存中。 在 HotSpot 虚拟机中,内置了两种 JIT,分别为`C1 编译器`和`C2 编译器`,这两个编译器的编译过程是不一样的。 ##### 1、C1 编译器 C1 编译器是一个简单快速的编译器,主要的关注点在于局部性的优化,适用于执行时间较短或对启动性能有要求的程序,也称为`Client Compiler`,例如,GUI 应用对界面启动速度就有一定要求。 ##### 2、C2 编译器 C2 编译器是为长期运行的服务器端应用程序做性能调优的编译器,适用于执行时间较长或对峰值性能有要求的程序,也称为`Server Compiler`,例如,服务器上长期运行的 Java 应用对稳定运行就有一定的要求。 ##### 3、分层编译 分层编译将 JVM 的执行状态分为了 5 个层次: ```shell 第 0 层:程序解释执行,默认开启性能监控功能(Profiling),如果不开启,可触发第二层编译; 第 1 层:可称为 C1 编译,将字节码编译为本地代码,进行简单、可靠的优化,不开启 Profiling; 第 2 层:也称为 C1 编译,开启 Profiling,仅执行带方法调用次数和循环回边执行次数 profiling 的 C1 编译; 第 3 层:也称为 C1 编译,执行所有带 Profiling 的 C1 编译; 第 4 层:可称为 C2 编译,也是将字节码编译为本地代码,但是会启用一些编译耗时较长的优化,甚至会根据性能监控信息进行一些不可靠的激进优化。 ``` 通常情况下,C2 的执行效率比 C1 高出30%以上。 在 Java8 中,默认开启分层编译。如果只想开启 C2,可以关闭分层编译(`-XX:-TieredCompilation`),如果只想用 C1,可以在打开分层编译的同时,使用参数:`-XX:TieredStopAtLevel=1`。 通过 `java -version`命令行可以查看到当前虚拟机解析字节码的方式,`mixed mode`表示既有解释模式也有即是编译模式。 ``` java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode) ``` `mixed mode`代表是默认的混合编译模式,除了这种模式外,我们还可以使用`-Xint`参数强制虚拟机运行于只有解释器的编译模式下;也可以使用参数`-Xcomp`强制虚拟机运行于只有 JIT 的编译模式下。 **仅使用解释模式** 通过命令`java -Xint -version`设置仅使用解释模式,`interpreted mode`表示解释模式。 ```shell java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, interpreted mode) ``` **仅使用编译模式** 通过命令`java -Xcomp -version`设置仅使用编译模式,`compiled mode`表示编译模式。在编译模式下,程序启动能感觉到明显的卡顿。 ```shell java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, compiled mode) ``` ### 四、小结 通过对Java虚拟机启动过程的解析,特别是`即时编译`环节的理解,Java应用运行并不慢。当应用中热点代码普遍被编译成汇编指令(二进制可执行命令)存放于内存中时,可近似达到C语言原生程序的运行速度。 随着算力与内存成本日渐降低,通过空间复杂度置换时间复杂度的策略显然是合理的,使用Java语言编写需求万千变化的应用是第一选择:既有跨平台、内存安全、框架生态丰富的优点,也在运行效率方面积极改善,这种折中选择与市场反馈保持一致。
  • [技术干货] ubuntu+virtualbox进行磁盘扩容
    第一步磁盘扩容:https://blog.csdn.net/orange_612/article/details/79597905https://www.cnblogs.com/xueweihan/p/5923937.html打开VB的“管理”设置“虚拟介质管理”,扩充16G =》 64GB,并点击 “应用”。这个时候只是虚拟分配了,并未实际分配,要用fdisk 增加新分区来取。操作成功后该虚拟的硬盘添加多了50G,但要注意了,此50G空间还没有分配.fdisk –l第二步在原有的分区上进行扩容:输入命令$sudo fdisk /dev/sda然后按m查看帮助文档如下所示:如上图所示,按n命令的话就增加一个分区,如下所示如上图所示:首先输入命令:n(添加新分区)之后回车:接着输入命令:p剩下步骤全按回车默认,最后输入命令w保存分区信息。 再查看下分区信息:fdisk -l发现多了一个分区 /dev/sda24、格式化分区格式化刚才划好的分区/dev/sda2sudo mkfs -t ext4 /dev/sda25、删除旧分区,并新建一个分区d  删除原有分区(如有多个分区,还多一步选择分区号的输入项)n  新建分区p   主分区1   新分区号2048   这个是跟之前分区的开始位置保持一致。41943039  注意:这是磁盘结束位置,这个得根据自己磁盘容量情况来写,不输入而直接默认回车表示全部分配。w 保存变更 6、 对新分区进行更正resize2fs /dev/sda1更多请参考:命令扩容:https://blog.csdn.net/echizao1839/article/details/103751998图形化扩容:https://www.cnblogs.com/liushui-sky/p/12843433.html       https://www.it610.com/article/1280587628315426816.htm问题:ubuntu启动不了报错“Stopped User Manager for UID 121”ubutuh重启的时候一直按着shif。于是强制重启时进入UBUNTU高级选项(advanced options)1、重启ubuntu,随即长按shirft进入grub菜单,或等待grub菜单的出现,如下图2、选择recovery mode,接着用方向键将光标移至recovery mode,按"e"键进入编辑页面,如下图: 原因:磁盘空间不足。解决方法:1进入recovery mode2clean 进入读写模式3、https://blog.csdn.net/weixin_38765304/article/details/108462032 直接切换到tty2、tty3是可以的,不过非常的卡,难以完成正常登录,最后使用win10端的ssh工具远程登录,使用df命令查看剩余存储空间发现主分区/dev/sda1占用100%,至此找到问题原因。清理存储空间,并重启ubuntu,恢复正常。
  • [交流吐槽] 数字孪生概念原理及应用领域
    数字孪生 ( 英文:Digital Twins,别名:信息镜像模型Cyber-Physical System ) 是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。数字孪生是一种超越现实的概念,可以被视为一个或多个重要的、彼此依赖的装备系统的数字映射系统。 数字孪生是个普遍适应的理论技术体系,可以在众多领域应用,在产品设计、产品制造、医学分析、工程建设等领域应用较多。在国内应用最深入的是工程建设领域,关注度最高、研究最热的是智能制造领域。 本文数字孪生目录 1、数字孪生概念及含义 2、数字孪生的原理 3、数字孪生基本组成 4、数字孪生的意义及作用 5、数字孪生的发展进程 6、数字孪生的研究现状 7、数字孪生应用场景 8、数字孪生与Digital Thread 9、数字孪生标准体系 一、数字孪生概念及含义 美国国防部最早提出利用Digital Twin技术,用于航空航天飞行器的健康维护与保障。首先在数字空间建立真实飞机的模型,并通过传感器实现与飞机真实状态完全同步,这样每次飞行后,根据结构现有情况和过往载荷,及时分析评估是否需要维修,能否承受下次的任务载荷等。 数字孪生,有时候也用来指代将一个工厂的厂房及产线,在没有建造之前,就完成数字化模型。从而在虚拟的赛博空间中对工厂进行仿真和模拟,并将真实参数传给实际的工厂建设。而工房和产线建成之后,在日常的运维中二者继续进行信息交互。值得注意的是:Digital Twin不是构型管理的工具,不是制成品的3D尺寸模型,不是制成品的MBD定义。 对于Digital Twin的极端需求,同时也将驱动着新材料开发,而所有可能影响到装备工作状态的异常,将被明确地进行考察、评估和监控。Digital Twin正是从内嵌的综合健康管理系统(IVHM)集成了传感器数据、历史维护数据,以及通过挖掘而产生的相关派生数据。通过对以上数据的整合,Digital Twin可以持续地预测装备或系统的健康状况、剩余使用寿命以及任务执行成功的概率,也可以预见关键安全事件的系统响应,通过与实体的系统响应进行对比,揭示装备研制中存在的未知问题。Digital Twin可能通过激活自愈的机制或者建议更改任务参数来减轻损害或进行系统的降级,从而提高寿命和任务执行成功的概率。 二、数字孪生的原理 最早,数字孪生思想由密歇根大学的 Michael Grieves 命名为“信息镜像模型”(Information Mirroring Model),而后演变为“数字孪生”的术语。数字孪生也被称为数字双胞胎和数字化映射。数字孪生是在 MBD 基础上深入发展起来的,企业在实施基于模型的系统工程(MBSE)的过程中产生了大量的物理的、数学的模型,这些模型为数字孪生的发展奠定了基础。2012 年 NASA 给出了数字孪生的概念描述:数字孪生是指充分利用物理模型、传感器、运行历史等数据,集成多学科、多尺度的仿真过程,它作为虚拟空间中对实体产品的镜像,反映了相对应物理实体产品的全生命周期过程。为了便于数字孪生的理解,庄存波等提出了数字孪生体的概念,认为数字孪生是采用信息技术对物理实体的组成、特征、功能和性能进行数字化定义和建模的过程。数字孪生体是指在计算机虚拟空间存在的与物理实体完全等价的信息模型,可以基于数字孪生体对物理实体进行仿真分析和优化。数字孪生是技术、过程、方法,数字孪体是对象、模型和数据。 进入21世纪,美国和德国均提出了 Cyber-Physical System(CPS),也就是“信息-物理系统”,作为先进制造业的核心支撑技术。CPS 的目标就是实现物理世界和信息世界的交互融合。通过大数据分析、人工智能等新一代信息技术在虚拟世界的仿真分析和预测,以最优的结果驱动物理世界的运行。数字孪生的本质就是在信息世界对物理世界的等价映射,因此数字孪生更好的诠释了 CPS,成为实现 CPS 的最佳技术。 三、数字孪生基本组成 2011 年,Michael Grieves 教授在《几乎完美:通过PLM驱动创新和精益产品》给出了数字孪生的三个组成部分:物理空间的实体产品、虚拟空间的虚拟产品、物理空间和虚拟空间之间的数据和信息交互接口。 在 2016 西门子工业论坛上,西门子认为数字孪生的组成包括:产品数字化双胞胎、生产工艺流程数字化双胞胎、设备数字化双胞胎,数字孪生完整真实地再现了整个企业。北京理工大学的庄存波等也从产品的视角给出了数字孪生的主要组成,包括:产品的设计数据、产品工艺数据、产品制造数据、产品服务数据、以及产品退役和报废数据等。无论是西门子还是北京理工大学的庄存波都是从产品的角度给出了数字孪生的组成,并且西门子是以它的产品全生命周期管理系统(product lifecycle management,PLM)为基础,在制造企业推广它的数字孪生相关产品。 同济大学的唐堂等人提出数字孪生的组成应该包括:产品设计、过程规划、生产布局、过程仿真、产量优化等。该数字孪生的组成不仅包括了产品的设计数据,也包括了生产品的生产过程和仿真分析,更加全面,更加符合智能工厂的要求。 北京航空航天的陶飞等人从车间组成的角度先给出了车间数字孪生的定义,然后提出了车间数字孪生的组成,主要包括:物理车间、虚拟车间、车间服务系统、车间孪生数据几部分组成。物理车间是真实存在的车间,主要从车间服务系统接收生产任务,并按照虚拟车间仿真优化后的执行策略,执行完成任务;虚拟车间是物理车间的计算机内的等价映射,主要负责对生产活动进行仿真分析和优化,并对物理车间的生产活动进行实时的监测、预测和调控;车间服务系统是车间各类软件系统的总称,主要负责车间数字孪生驱动物理车间的运行,和接受物理车间的生产反馈。 四、数字孪生的意义及作用 Digital twin最为重要的启发意义在于,它实现了现实物理系统向赛博空间数字化模型的反馈。这是一次工业领域中,逆向思维的壮举。人们试图将物理世界发生的一切,塞回到数字空间中。只有带有回路反馈的全生命跟踪,才是真正的全生命周期概念。这样,就可以真正在全生命周期范围内,保证数字与物理世界的协调一致。各种基于数字化模型进行的各类仿真、分析、数据积累、挖掘,甚至人工智能的应用,都能确保它与现实物理系统的适用性。这就是Digital twin对智能制造的意义所在。 智能系统的智能首先要感知、建模,然后才是分析推理。如果没有Digital twin对现实生产体系的准确模型化描述,所谓的智能制造系统就是无源之水,无法落实。  五、数字孪生的发展进程 实现Digital Twin的许多关键技术都已经开发出来,比如多物理尺度和多物理量建模、结构化的健康管理、高性能计算等,但实现Digital Twin需要集成和融合这些跨领域、跨专业的多项技术,从而对装备的健康状况进行有效评估,这与单个技术发展的愿景有着显著的区别。因此,可以设想Digital Twin这样一个极具颠覆的概念,在未来可以预见的时间内很难取得足够的成熟度,建立中间过程的里程碑目标就显得尤为必要。 美国空军研究实验室(AFRL)2013年发布的Spiral 1计划就是其中重要的一步,已与通用电气(GE)和诺思罗谱·格鲁曼签订了2000万美元的商业合同以开展此项工作。计划以现有美国空军装备F15为测试台,集成现有最先进的技术,与当前具有的实际能力为测试基准,从而标识出虚拟实体还存在的差距。当然,对于Digital Twin这么一个好听好记的概念,许多公司已经迫不及待地将其从高尖端的领域,拉到民众的眼前。 GE将其作为工业互联网的一个重要概念,力图通过大数据的分析,可以完整地透视物理世界机器实际运行的情况;而激进的PLM厂商PTC公司,则将其作为主推的“智能互联产品”的关键性环节:智能产品的每一个动作,都会重新返回设计师的桌面,从而实现实时的反馈与革命性的优化策略。Digital Twin突然赋予了设计师们以全新的梦想。它正在引导人们穿越那虚实界墙,在物理与数字模型之间自由交互与行走。 六、数字孪生的研究现状 在智能制造领域最先使用数字孪生概念的是美国的航空航天局(NASA)在阿波罗项目中,美国国家航空航天局使用空间飞行器的数字孪生对飞行中的空间飞行器进行仿真分析,监测和预测空间飞行器的飞行状态,辅助地面控制人员作出正确的决策。从美国国家航空航天局对数字孪生的应用来看,数字孪生主要是要创建和物理实体等价的虚拟体或数字模型,虚拟体能够对物理实体进行仿真分析,能够根据物理实体运行的实时反馈信息对物理实体的运行状态进行监控,能够依据采集的物理实体的运行数据完善虚拟体的仿真分析算法,从而对物理实体的后续运行和改进提供更加精确的决策。 密歇根大学的迈克尔·格里夫斯教授在2003年提出了“物理产品的数字表达”的概念,并指出物理产品的数字表达应能够抽象的表达物理产品,能够基于数字表达对物理产品进行真实条件或模拟条件下的测试。这个概念虽然没有被称作数字孪生,但是它具备数字孪生所具有的组成和功能,即创建物理实体的等价虚拟体,虚拟体能够对物理实体进行仿真分析和测试。迈克尔·格里夫斯教授提出的理论,可以被看做是数字孪生在产品设计过程中的应用。 美国国家标准与技术研究院于 2012 提出了 MBD(基于模型的定义)和 MBE(基于模型的企业)的概念,其核心思想是要创建企业和产品的数字模型,数字模型的仿真分析要贯穿产品设计、产品设计仿真、加工工艺仿真、生产过程仿真、产品的维修维护等整个产品的寿命周期。MBE 和 MBD 的概念将数字孪生的内涵扩展到了整个产品的制造过程。 2015年之后,世界各国分别提出国家层面的制造业转型战略。这些战略核心目标之一就是构建物理信息系统(Cyber-Physical System,CPS),实现物理工厂与信息化的虚拟工厂的交互和融合,从而实现智能制造,数字孪生作为实现物理工厂与虚拟工厂的交互融合的最佳途径,被国内外相关学术界和企业高度关注。从 CPS 和数字孪生的内涵来看,他们都是为了描述信息空间与物理世界融合的状态,CPS 更偏向科学原理的验证,数字孪生更适合工程应用的优化,更能够降低复杂工程系统建设的费用。北京航空航天大学的陶飞,张萌等人基于数字孪生提出了数字孪生车间的概念,并从车间管理要素分析,数字孪生车间的发展需要依次经过生产要素、生产活动、生产控制仅限于物理车间,物理车间与数字孪生车间相对独立,物理车间与数字孪生车间交互融合这个三个阶段,才能够逐渐的成熟。同济大学的唐堂,滕琳等认为数字孪生是整合企业的制造流程,实现产品从设计到维护全过程的数字化,通过信息集成实现生产过程可视化,形成从分析到控制再到分析的闭合回路,优化整个生产系统。GE Digital工业互联网创新与生态发展负责人 Robert Plana 认为,数字孪生最重要的价值是预测,在产品制造过程中出现问题时,可以基于数字孪生对生产策略进行分析,然后基于优化后的生产策略进行组织生产。 七、数字孪生应用场景 从产品全生命周期管理、工程全生命周期管理、车间管控系统几个方面梳理数字孪生的应用场景如下: 1、最早,美国国家航空航天局使用数字孪生对空间飞行器进行仿真分析、检测和预测,辅助地面管控人员进行决策。 2、Michael Grieves 教授和西门子公司主要使用数字孪生进行产品数据的全生命周期管理。利用数字孪生对产品设计、产品功能、产品性能、加工工艺、维修维护等进行仿真分析。 3、以欧特克公司为代表的工程建设类软件供应商,将数字孪生技术应用于建筑、工厂、基础设施等建设领域,把建筑和基础设施看做产品进行全生命周期的管理。  4、北京航空航天大陶飞等人将数字孪生应用于车间的建设和管控,主要涉及基于数字孪生的产品设计、基于数字孪生的虚拟样机、基于数字孪生的车间快速设计、基于数字孪生的工艺规划、基于数字孪生的车间生产调度优化、基于数字孪生的生产物流精准配送、基于数字孪生的车间装备智能控制、基于数字孪生的车间人机交互、基于数字孪生的装配、基于数字孪生的测试/检测、基于数字孪生的制造能耗管理、基于数字孪生的产品质量分析与追溯、基于数字孪生的故障预测与健康管理、基于数字孪生的产品服务系统等。 八、数字孪生与Digital Thread Digital Twin是与Digital Thread,既相互关联,又有所区别的一个概念。 Digital Twin是一个物理产品的数字化表达,以便于我们能够在这个数字化产品上看到实际物理产品可能发生的情况,与此相关的技术包括增强现实和虚拟现实。Digital Thread在设计与生产的过程中,仿真分析模型的参数,可以传递到产品定义的全三维几何模型,再传递到数字化生产线加工成真实的物理产品,再通过在线的数字化检测/测量系统反映到产品定义模型中,进而又反馈到仿真分析模型中。 依靠Digital Thread,所有数据模型都能够双向沟通,因此真实物理产品的状态和参数将通过与智能生产系统集成的赛博物理系统CPS向数字化模型反馈,致使生命周期各个环节的数字化模型保持一致,从而能够实现动态、实时评估系统的当前及未来的功能和性能。而装备在运行的过程中,又通过将不断增加的传感器、机器的联接而收集的数据进行解释利用,可以将后期产品生产制造和运营维护的需求融入到早期的产品设计过程中,形成设计改进的智能闭环。然而,并不是建立了全机有限元模型,就有了数字孪生,那只是问题的一个角度;必须在生产中把所有真实制造尺寸反馈回模型,再用PHM(健康预测管理)实时搜集飞机实际受力情况,反馈回模型,才有可能成为Digital Twin。 Digital Twin描述的是通过Digital Thread连接的各具体环节的模型。可以说Digital Thread是把各环节集成,再配合智能的制造系统、数字化测量检验系统的以及赛博物理融合系统的结果。通过Digital Thread集成了生命周期全过程的模型,这些模型与实际的智能制造系统和数字化测量检测系统进一步与嵌入式的赛博物理融合系统(CPS)进行无缝的集成和同步,从而使我们能够在这个数字化产品上看到实际物理产品可能发生的情况。 简单说,Digital Thread贯穿了整个产品生命周期,尤其是从产品设计、生产、运维的无缝集成;而Digital Twin更像是智能产品的概念,它强调的是从产品运维到产品设计的回馈。Digital Twin它是物理产品的数字化影子,通过与外界传感器的集成,反映对象从微观到宏观的所有特性,展示产品的生命周期的演进过程。当然,不止产品,生产产品的系统(生产设备、生产线)和使用维护中的系统也要按需建立Digital Twin。 九、数字孪生标准体系 数字孪生标准体系可包含以下部分: 1、基础共性标准:包括术语标准、参考架构标准、适用准则三部分,关注数字孪生的概念定义、参考框架、适用条件与要求,为整个标准体系提供支撑作用。 2、数字孪生关键技术标准:包括物理实体标准、虚拟实体标准、孪生数据标准、连接与集成标准、服务标准五部分,用于规范数字孪生关键技术的研究与实施,保证数字孪生实施中的关键技术的有效性,破除协作开发和模块互换性的技术壁垒。 3、数字孪生工具/平台标准:包括工具标准和平台标准两部分,用于规范软硬件工具/平台的功能、性能、开发、集成等技术要求。 4、数字孪生测评标准:包括测评导则、测评过程标准、测评指标标准、测评用例标准四部分,用于规范数字孪生体系的测试要求与评价方法。 5、数字孪生安全标准:包括物理系统安全要求、功能安全要求、信息安全要求三部分,用于规范数字孪生体系中的人员安全操作、各类信息的安全存储、管理与使用等技术要求。 6、数字孪生行业应用标准:考虑数字孪生在不同行业/领域、不同场景应用的技术差异性,在基础共性标准、关键技术标准、工具/平台标准、测评标准、安全标准的基础上,对数字孪生在机床、车间、工程机械装备等具体行业应用的落地进行规范。 --------------------- 作者:新物联网 来源:传感器专家网 原文:https://www.sensorexpert.com.cn/article/57341.html 版权声明:本文由传感器专家网整理发布,转载请注明出处和链接!
  • [行业资讯] 元宇宙和物联网:进化还是共生关系?
    Metaverses,也称为 3D 虚拟世界网络,专注于社交联系,并承诺为所有用户提供多维沉浸式数字体验。这些虚拟世界融合了几乎增强的物理和数字现实,具有持久性、分散性、高度协作性和互操作性。虽然Metaverse还处于起步阶段,但已经有多种技术为其提供支持,如增强现实(AR)、虚拟现实(VR)、区块链、人工智能、空间计算和物联网,其目标是使这些虚拟世界对每个用户实时而言尽可能真实和上下文相关。在本文中,我将探讨物联网在metaverse扩展中的作用,重点关注物联网和metaverse之间的协同作用,以及依赖于物联网的未来metaverse用例,最后为读者提出三个发人深省的开放性问题。物联网与Metaverses之间的协同效应。物联网数据。 Metaverses 开发的基础是从物理环境中捕获数据、大量摄取 IoT 数据并在 Metaverses 的途径中以有意义的方式实时表示这些数据的能力。物联网数据还需要响应迅速并得到妥善保护。数字孪生(作为物理对象或过程的实时数字对应物的虚拟表示)。数字孪生技术支持物理组件与其数字对应物之间的连接,由获取、集成和通信实时数据馈送的物联网传感器创建的连接。当前对虚拟现实的日益增长的吸引力和投资正在推动数字孪生技术的突破,这将为不断更复杂的虚拟现实用例铺平道路。物联网架构。为了让元宇宙向所有用户提供多维沉浸式、高度情境化和交互式数字体验,它们需要来自物理现实的越来越高分辨率的输入。这增加了对增强型物联网架构的需求。多个物联网架构层需要更多的技术突破来支持虚拟现实的扩展速度,例如连接和交互(例如,传感器、机器人、可穿戴设备、扩展现实 XR 设备)、计算(例如,智能边缘、AIoT、5G)和数据和信息层。依赖于物联网的未来Metaverse用例元节和最终的元节据说会提高人类决策的质量,同时最大限度地减少做出有根据的决策所需的精神能量。实现这一目标的基础是虚拟现实、增强现实和物联网数据的无缝互操作性,这使得新的复杂用例能够改善人们在数字和物理现实中的生活,甚至解决现实世界的问题。增强型协作工作空间以及改进的大规模交互式体验设计将使个人和企业能够在元宇宙中学习、社交和参加活动。可再生能源供应将依赖于物联网平台提供的实时数据,这些平台连接到太阳能电池板、风力涡轮机、天气传感器、子生产系统、配电和能源电网系统等,在这些系统中,虚拟世界可以实现大规模的数据管理和处理。沉浸式学习和培训。在现实世界的情况下,例如,严重故障、极端天气、(网络)攻击通过虚拟模拟中的空间感知使用虚拟世界中的数字双胞胎。将允许针对现实世界的情况开发和测试多种方法,供人类和机器检测、响应和限制现实生活中的影响。在制造业中,工人将接受远程培训,以熟悉机器操作。对于大型基础设施项目,工程师和建筑师将利用数字双胞胎来模拟对在建物理资产的实时反馈。通过将物联网数据流式传输到元节中,关键系统维护的态势感知能力增强,制造人员的工作安全将得到改善。工人将被及时告知危险情况,以便他们限制现实生活中的影响。“对于要向所有用户提供多维沉浸式高度上下文和交互式数字体验的元节,它们需要来自物理现实的越来越高分辨率的输入。这增加了对增强型物联网架构的需求”在虚拟现实、增强现实和物联网数据流的驱动下,制造、物流、运输等领域的预测性维护将受益于根据适用的维护程序和协议加强对资产和子组件状态的识别。用于长期规划的大规模模拟。元宇宙最终将成为物理现实的反映,由现实世界对象和角色的数字双胞胎赋予生命。虚拟世界可能会成为政府、企业和个人运行长期分析和规划场景以确定最佳方法和响应的最复杂的虚拟仿真环境。元宇宙将使相关各方能够将这些方法和响应与现实世界的变化联系起来(例如,人道主义危机、人口收入差距、气候变化、新的和重新出现的疾病、恐怖主义)。通过这种方式,人类将在持续的学习循环中提前预测对事件的最佳响应。开放式问题随着用户参与度的增加,元节的采用也随之增加,1. 人类和机器的身份管理能否跟上并有效降低快速扩张的元宇宙带来的风险?2. 这将如何影响人类个人和社会障碍的数量和严重程度?3. 神经挖掘(应用行为智能和机器学习技术来大规模分析和影响人类行为)将如何影响人类决策?总而言之,我毫不怀疑由物联网和尖端技术驱动的元宇宙最终将创造未来的多维体验,最终感觉就像我们周围的物理世界一样正常。
  • [行业资讯] 2022第六届全球物联网大会启动仪式暨首届全球元宇宙大会北京峰会成功举办
    2022第六届全球物联网大会启动仪式暨首届全球元宇宙大会北京峰会2022年5月28日,2022第六届全球物联网大会暨首届全球元宇宙大会北京峰会在北京四海孔子书院举行。由于疫情影响,来自各界的物联网与元宇宙的专家学者,通过线上和少数线下相结合的形式,进行了和谐深入的交流。线上线下参会嘉宾包括三智书院理事长高斌、四海孔子书院院长冯哲、中关村物联网联盟秘书长王正伟、元源书院副院长徐亚光、三智心文化研究院院长张曙中博士、北大公学客座教授李漫博先生、杭州麦塔实验室核心成员余明柳女士、中关村物联网联盟常务副理事长医疗大健康专家迟胜先生、正蒙教育科技公司总经理高怀虎、滴度传媒董事长王迪鹏、全球物联网大会联席主席王德本、中国建筑材料联会学部委员中国建筑技术集团副院长王玮以及来自泰国、马来西亚、拉美代表、日本等海内外嘉宾。会前先播放了本次峰会海内外联办机构负责人视频贺辞。中关村物联网联盟秘书长王正伟以“从物联网到元宇宙”为题进行首个主旨发言,他讲到从物联网到元宇宙需要足够的智慧。这是虚拟世界和真实世界的完美结合,物联网是实体空间,并通过元宇宙虚拟世界实现万物互联,产业链价值巨大。大数据时代也是元数据世界,元宇宙是当前多种数字技术的综合试验田。大部推动者是区块链中的人士和互联网圈。各类提供元宇宙服务的新公司将成为新产业主力。冯哲院长从“中国文化元宇宙的大航海时代”的角度,分析数字技术构建的元宇宙,在现实空间与虚拟空间交互当中,人、事、物全息互联,循环不已。无疑是为人类打开了另一个更大的美幻世界,代表着人类对未来美好世界的无穷新希望。理想的“元宇宙”体现了全息哲学思想,东西方元典与哲学合一于“元宇宙”。徐亚光先生对“元宇宙的哲学原理”做了解析。元宇宙中人的生活形态是真正的追求的生活态,大概对人的物化和异化。在科学的最高伦理引领下,中国优秀传统文化定义的元宇宙理念,让全球彰显中国文化的爱的大同世界,这是人类的最高社会理想。张曙中博士对“元宇宙数字时代的文字文化和文明”进行了讲解。他说,宇宙两个字,本都是生活的空间,然后演化为人们生活的时空。因此,我们的哲学总是围绕着人和环境的关系而发展。比如我们推崇大同世界,天下太平,关乎人文,化成天下,这个理论就是来自于人世间。张老师从汉字的本源意义深入阐述了元宇宙的中国文化意义,发人深省。李漫博先生从“中国元宇宙文明”的角度,以天时之变、地利之变、人文之变、文明之变、社会技术构成之变、原理之变分别讲述,他认为,以此六变而成大变局,此百年未有之大变局,现代中国已经完成工业化之转变,又迎来信息化之变,所以当代变局的性质是工业化与信息化的社会文明转型之变。余柳明女士以“电竞与元宇宙”为切入点,讲述麦塔实验室在元宇宙时代成立,游戏与元宇宙的结合其实就是电子竞技运动的新发展,是信息时代人类体育行为的新发展和演化。人类未来是可以通过显示设备让人进入到元宇宙的环境当中,这个环境包括与虚拟的数字世界和现实世界。元宇宙和电竞业的发展是很密切的,电竞元宇宙基本框架包括区块链、元宇宙积分、元宇宙物品组成虚拟的生存空间。迟胜先生分析了“元宇宙在健康领域的应用”,他提到,以数据为火炬,照见身体里的山川河流。元宇宙的出现,连接了虚拟和现实世界,通过感知和创新技术助力科技健康的迅速发展,即将形成未来数字社会实现健康保健、医疗诊断、治疗和学习的全息、全球、全时的共享服务模式。高怀虎总经理分析了“家庭教育与元宇宙”的关系,这是人类命运共同体构建之时,传承中国优秀传统文化的需要。回归家庭,以修身为本。从元宇宙理念来说,我们就可以开发出这样的产品形态,以家为根本,虚拟现实相结合,进行沉浸感知培训,形成家庭教育的产业形态。最终,这个项目可以达到一个愿景,智慧赋能幸福家庭,在有兴趣、有氛围、可持续的元宇宙虚拟世界生活学习当中解决家庭教育的难题,成就家国两旺。王迪鹏董事长以“社区与元宇宙”为题,诠释元宇宙世界人类数字化时代虚拟与现实高度融合的世界。把元宇宙和真实社区融合起来,形成数字版本的孪生社区,和虚实结合的现下社区。基于此,我们开发出智慧社区的商业发展生态链。截止现在,已经与华为、百度等高科技产业实现对接,用科技把虚拟与现实进行全息连接交互,建立元宇宙智慧社区。王德本先生总结了“元宇宙发展机遇、危机与挑战的理想思考”,他讲到,从各种诠释和发展形态中,元宇宙也衍生出很多风险,我们要注意元宇宙经济运行模型的开发建设,元宇宙市场规则与自律公约的建立,元宇宙市场运营标准制定,元宇宙运营监管、监督机制的建立,元宇宙金融、保险机制审核、监督机制的建立。最后,参会嘉宾一起宣读《元宇宙北京宣言》,在宣言中,大家一致认为,元宇宙是一个长期的演进过程,是数字技术的主力军,是数字经济的引擎。元宇宙会孕育出新的数字场景和生态系统,一个全新的虚拟数字空间将吸引人类去穿越时空,探索宇宙和未来。
  • [热门活动] 【华为伙伴暨开发者大会·市集活动】参与元宇宙数字人话题互动,赢取好礼!
    参与元宇宙数字人话题互动,赢取好礼!!!虚拟数字人作为元宇宙重要基本元素之一,在过去的一年里百花齐放,未来可见将以极高增速增长,全球虚拟数字人市场规模预计在2028年发展成为千亿美元级别。数字人火爆的同时,在实际的发展中也面临着各方面的挑战,这些问题在⼀定程度上制约了⾏业的⼤规模应⽤和发展。但在未来伴随建模、软件、设备各⽅⾯的⽇益成熟,虚拟数字⼈的制作⻔槛逐步降低,也将能够打造更智能的虚拟数字人,适用更多场景,推动商业化落地。每个人对虚拟数字人理解的深度和广度是不一样的,针对在元宇宙中,数字人如何改变我们社会,我们一起来讨论,希望看到大家精彩的评论:1、讲讲你认为在哪些场景中可以应用到数字人?2、你对自己的数字人最在意的技术点是什么?(eg形象?互动性?真实性?等等)3、讲讲你所知道的,当前数字人制作过程中有哪些问题和困难?(eg 成本、周期、异地协作等等)4、结合你对即将到来的元宇宙的理解,讨论未来数字人可能会出现的新业务和新应用?  微话题活动:参与本次微话题讨论,有机会获得优质评论奖活动时间:2022年5月25日-6月30日参与方式:直接在本帖回复你关于以上任意问题的理解或评论获奖方式:活动结束后,将由评委组选取出5名优质评论奖,各送出蓝牙鼠标1份  解锁 知识大比拼 问卷答案数字人制作的关键环节中顺序正确的是C 建模-绑定-驱动-渲染-合成了解更多技术细节,敬请关注华为云技术峰会知识大比拼传送门:https://devcloud.huaweicloud.com/expertmobile/qtn?id=017351afffe24742a4ec08147f198281
  • [Atlas300] 【atlas 300 ai加速卡】【XXX功能】虚拟机能否直通npu
    虚拟机能否直接访问到插入主机了的npu
  • [技术干货] MindSpore新年新版本v1.1安装步骤
    版本号截图:硬件平台和操作系统:CPU+windows-x64  体验内容:安装步骤1.首先,我们进入到MindSpore的官网,进行查看安装命令,先选取你需要的版本,硬件平台和操作系统,会自动生成安装命令。2.我使用的是pip的安装,在Anaconda的安装环境里进行安装,可以在命令行进行环境创建:当前存在的 conda 虚拟环境: conda env list创建新的虚拟环境: conda create -n new_name python=3.6激活其中一个虚拟环境:conda activate new_name退出当前虚拟环境:conda deactivate也可以在Anaconda图形化界面进行创建,可自动安装python,最好进行新建环境,如果你之前在base环境下安装过其他框架,安装会失败。失败安装:建议安装:3.在Anaconda prompt进行pip安装MindSpore4.粘贴命令行,注意版本,下图是成功安装。5.进行查询版本。 转载链接:https://bbs.huaweicloud.com/forum/thread-101344-1-1.html
  • [技术干货] 【论文分享】基于AR虚实图像注意力机制的电缆装配质量检测方法
    基于AR虚实图像注意力机制的电缆装配质量检测方法赵甘霖1, 余畅1, 张建富1, 杨建新2, 冯平法1,3, 沈群41 清华大学机械工程系,北京1000842 清华大学基础工业训练中心,北京 1000843 清华大学深圳国际研究生院先进制造学部,广东 深圳 518055;4 航天东方红卫星有限公司,北京 100094摘要航天器中电缆装配在总装环节占据大量比重,电缆装配质量直接影响着产品整机的工作性能。现有的增强现实辅助电缆装配系统缺乏对装配结果实时判断和反馈的能力,无法识别当前装配的电缆是否符合装配质量要求。为了解决上述问题,提出了一种基于AR虚实图像注意力机制的电缆装配质量检测方法,通过构建虚拟辅助模型,在拍摄的装配结果图像中定位检测关键区域,过滤冗余图像信息;进而基于 YOLOv4-Tiny 图像检测模型对电缆装配关键节点位置进行了判断,基于计算电缆邻域平均重合度的方法求得了敷设路径的重合度,基于相机逆投影的方法得到了电缆的弯曲半径。最后,利用HoloLens2开发了基于增强现实技术的电缆装配质量检测系统,并对设计的4个电缆装配案例进行了质量检测,实验验证了本文方法及系统的可行性和有效性。关键词: 电缆装配 ; 质量检测 ; 增强现实辅助装配 ; AR虚实图像 ; 注意力机制1 引言电缆是传输电流和信号、保证设备连接和运行的重要部件。在航天器产品中,各种电缆及其附件的质量占产品总质量的比例可达20%[1],同时电缆装配质量在很大程度上影响了产品的整体性能[2]。目前,航天器电缆装配大多采用依托二维或三维图纸的手工作业。由于操作步骤复杂,工作空间狭窄,引导方式落后,装配任务的效率和质量高度依赖于操作人员的技术水平。这种情况导致了电缆敷设的节点位置、弯曲程度、敷设走向等质量参数因人而异,给装配质量一致性保障带来了很大挑战。随着增强现实(AR, augmented reality)技术的不断发展,增强现实辅助装配技术逐步替代传统的图纸。增强现实辅助装配是一种在装配过程中,将虚拟的特殊效果与现实世界以特定的空间关系结合起来的技术[3]。计算机模拟将物理信息(三维模型、动画、图像、视频、符号、文字等)叠加在屏幕上,使用户获得超越现实的感官体验,提高装配任务的效率和质量。20世纪90年代,波音公司[4-5]率先将AR技术用于飞机制造中的电缆安装。结合谷歌AR眼镜,波音公司开发的系统可以在操作人员的视野中显示电缆路径、文字标注信息。这种AR 装配系统使装配效率提高约 20%、装配精度提高约24%。空客公司[6]将AR技术应用于军用运输机的装配过程,开发了一套名为“MOON”的 AR智能电缆装配引导系统,使电缆装配制造周期缩短50%。Zheng 等[7]开发了一种电缆装配智能辅助系统,该系统能够识别支架的数量、类型和位置,正确读取飞机电缆的文字,从而辅助操作者高效地完成装配任务。Zhang 等[8]设计了基于 AR 技术的电缆装配系统,该系统可以通过 HoloLens 将轻量化的三维电缆模型和信息按照真实的遮挡关系显示在物理环境中,引导工人完成电缆装配。陈华俊等[9]采用 Vuforia 平面标志以及即时定位与地图构建(SLAM, simultaneous localization and mapping)技术定位虚拟模型,并在航天器电缆装配过程中进行了应用验证,证明了增强现实装配电缆在时间上具备优势。增强现实辅助装配技术因指令清晰、直观、易懂,在一定程度上降低了操作人员出现装配错误的概率。然而,目前大多数研究采取的装配引导方式无法给予操作者装配结果反馈信息,只能够被动地显示固定的装配引导信息。这种情况导致了系统无法判断操作者是否按照引导信息正确地完成了装配,也就无法确认装配质量是否满足检测要求。为了使系统能够在装配过程中实时判断电缆装配的结果是否正确,进一步地提升装配质量,并提供实时的纠错引导功能,利用机器视觉进行电缆装配质量检测的研究得到广泛关注。Parmar等[10]采用基于滑动窗口和轮廓检测算法检测交叉电缆走向,可以对交叉的多条电缆进行提取区分。Sun等[11]提出一种基于模拟退火算法的二维算法,能够从低对比度图像中提取电缆前景。温沛涵等[12]针对发动机软管装配问题,利用颜色分割与形状约束从复杂背景中提取软管与接头的图像。焦晨航[13]针对电缆变形检测问题,提出了有标记和无标记两种变形检测方法,实现了简单背景下较高精度的定位。为了解决平面检测不能完全反映出电缆在空间中的走向问题,有研究者尝试在平面图像的基础上结合深度信息,对电缆的空间走向进行分析。刘睿等[14]利用手指特征分割电缆图像,并结合深度数据对两指之间的电缆弯曲半径进行检测。魏煌涛[15]采用Kinectv2相机采集电缆点云,并利用贝塞尔曲线拟合电缆形状,得出电缆的空间走向信息。除电缆本身的检测外,也有不少针对电缆装配中的组件检测的研究。冒文彦[16]将基于区域的卷积神经网络(Mask RCNN, Mask region-based convolutional neural networks)应用在电缆的线夹检测上,能够准确检测出线夹是否存在装配错误。Li等[17]研究大场景下的电缆检测,基于远距离输电线缆与输电塔的关联关系,选择不同分层模型进行电缆检测,对小场景下的电缆检测也具有启发意义。Li等[18]开发了一套基于AR眼镜与深度学习方法的航空连接器引脚检测系统,能够自动检测线束的不匹配引脚。虽然现有的基于像素运算和特征提取的电缆检测方法可以在一些情况下较好地完成检测任务,但是这类方法也存在着计算开销大,对拍摄位姿、光照和遮挡等客观环境因素较为敏感、复杂环境精度较差等问题,并不适用于计算能力有限且拍摄位姿、光照和遮挡情况多变的基于移动AR设备的增强现实辅助装配场景。为此,本文旨在以移动 AR设备为主体,提出一种在增强现实辅助装配环境下基于AR虚实图像注意力机制的电缆装配质量一致性检测的方法,并完成系统搭建和验证,使设计的系统可以在用户按照AR引导信息完成装配后对电缆关键节点位置、敷设路径和弯曲程度进行检测,并将检测信息实时反馈给操作者并进行记录。2 结束语为了在增强现实辅助装配环境下对装配结果进行实时质量检测,本文提出了一种基于AR虚实图像注意力机制的视觉检测方法。本文方法利用增强现实中虚实空间匹配对准的机制,通过对设计模型特定关注区域的重构和添加形成新的辅助检测的虚拟模型,使其在拍摄出的真实装配物体检测图像中形成遮罩,过滤冗余图像信息,形成图像检测注意力聚焦的区域。进而,基于提取出的图像注意力区域,根据提出的电缆装配质量评价标准,提出了关键节点位置、敷设路径重合度、电缆装配弯曲半径的检测和计算方法。(1)关键节点位置检测:通过提取节点处的半球形注意力区域图,并利用 YOLOv4-Tiny 模型对节点区域内的电连接器和固定卡扣进行了检测,从而判断关键节点的装配位置是否正确。(2)敷设路径重合度检测:提出了一种通过像素点数量计算的电缆敷设领域平均重合度的计算方法,并利用通过扩倍电缆模型获得的电缆路径注意力区域图完成了重合度的计算。(3)电缆装配弯曲半径检测:提出了一种基于相机逆投影的电缆空间弯曲半径计算方法,并通过弯折区域图计算得到了电缆实际空间弯曲半径。最后,基于HoloLens2增强现实头显开发了基于增强现实技术的电缆装配质量检测系统,并在搭建的实验平台上对4条装配的电缆进行了测试。实验证明,开发的系统可以正确地对电缆装配关键节点位置、敷设路径重合度和弯曲半径进行检测,并有效判断电缆的装配质量是否满足设计要求。在未来工作中,本系统还需要解决如下两个问题:(1)如何通过增加额外的拍摄检测机位克服在空间狭小、视野受限的装配场景中电缆检测的问题;(2)如何自动生成准确且交互便捷的装配错误反馈信息。本文研究的最终目标是形成一套在人工电缆装配场景下辅助进行智能化指导、检测和反馈的增强现实辅助装配及检测系统。3 原文链接http://www.infocomm-journal.com/wlw/article/2021/2096-3750/2096-3750-5-3-00027.shtml
  • [行业资讯] Arm虚拟硬件正式落地中国,物联网产品研发迎来颠覆性改变?
    近日,Arm宣布扩展其物联网全面解决方案 (Total Solutions for IoT) 产品路线图,并发布两款全新基于Arm® Cortex®-M和Cortex-A处理器的解决方案。过去,人们对于Arm公司的固有印象或许还停留于其在硬件与IP领域的成就。而就在去年10月,Arm推出了由Arm Corstone子系统、Arm虚拟硬件和Project Centauri标准组成的物联网全面解决方案,通过结合硬件IP、平台软件、机器学习 (ML) 模型、工具等,简化开发并加速产品设计。近日,Arm宣布扩展其物联网全面解决方案 (Total Solutions for IoT) 产品路线图,并发布两款全新基于Arm® Cortex®-M和Cortex-A处理器的解决方案。同时,在此次扩展的产品路线图中,Arm还推出了迄今性能最强且安全性最高的Cortex-M处理器Arm Cortex-M85,并将Arm虚拟硬件扩展至包括第三方设备的更多平台,进而使开发流程更简单流畅。“最新、最快、最安全的Cortex-M处理器”其中,Arm的云原生边缘设备全面解决方案是首款为Cortex-A设计、且基于Corstone-1000的产品。它使物联网开发者首次能使用Linux等操作系统,实现在智能可穿戴设备、网关和高端智能摄像头等设备上进行应用级工作负载的开发。Arm语音识别全面解决方案是基于Corstone-310子系统。它预先集成了新的Cortex-M85和Arm Ethos™-U55,成为Arm目前最高性能的MCU级处理器。该解决方案面向智能音箱、恒温器、无人机、工厂机器人等用例。开发者还可通过将Corstone-310与不同的参考软件相结合,开发各式各样的高性能产品。值得一提的是,Cortex-M85被Mohamed Awad称为“Arm最新、最快、最安全的Cortex-M处理器”,其具有Arm Helium技术,可支持终端机器学习和DSP工作负载,同时还是首个从Arm-v8.1M架构中集成指针认证和分支目标识别(Pointer Authentication and Branch Target Identification, PACBTI)的Cortex产品,该技术能有效增强安全性。Mohamed Awad表示,随着物联网深化发展,微控制器软件开发者希望在产品中添加更多的功能与“智能性”,所以在产品设计时也面临着巨大挑战,需要从当前的微控制器中在每个时钟周期挤出更多的处理能力,或者选择放弃功能,显然二者都绝非良策。同时,日益严峻的物联网安全问题也成为了捆绑开发者的一道“枷锁”,而Cortex-M微控制器系列可提供低中断延迟、先进的低功耗管理模式,以及基于TrustZone实现的安全功能,而Cortex-M85最为进阶款产品,对于具有额外性能和安全要求的应用程序而言,无疑是理想之选。与上一代Cortex-M7相比,Cortex-M85在传统工作负载性能上提升了30%。Cortex-M85还在机器学习性能上较Cortex-M55提升了20%。相比M7和M55,Cortex-M85能够同时提供较高的传统性能和机器学习性能,可通过灵活的搭配应用于各类应用中。据Mohamed Awad预计,Arm合作伙伴将会在2022年陆续发布基于Cortex-M85的芯片产品。Arm虚拟硬件落地中国去年10月,Arm推出了基于云的Arm虚拟硬件(Arm Virtual Hardware),可提供Corstone子系统的虚拟模型,使得软件开发无需基于实体芯片进行,为物联网及嵌入式平台带来现代化敏捷的软件开发方法,包括持续集成/持续开发(CI/CD)、DevOps与MLOps,免去投资复杂的硬件农场。通过基于Arm架构SoC的准确模型提供了模拟内存与外设等机制,软件的开发与测试现可在芯片完备之前就着手进行,如此一来,典型的产品设计周期可以从平均的五年,最多缩短为三年。如今,近半年的时间过去了,Arm虚拟硬件也经历了产业落地的淬炼,并得到了开发者的诸多需求反馈。首先,开发者喜欢在硬件可用之前就能为其编写软件,同时也希望能够在该领域的数十亿物联网设备中访问和扩展其软件。其次,开发者希望可以将Arm虚拟硬件集成到他们认为合适的开发流程中,同时保证其流程不被改变,并且倾向于将Arm虚拟硬件直接集成到他们每天使用的现有工具和服务中。最后,在中国,生态系统需要本地支持,所以开发者希望既要确保Arm虚拟硬件目标易于获取,又要确保本地人工智能合作伙伴能够轻松访问并利用该技术。针对于此,Arm也新增了数款新的虚拟设备,以扩大Arm虚拟硬件的吸引力,包括针对新款Corstone设计的Arm虚拟硬件,以及涵盖从Cortex-M0至Cortex-M33七款Cortex-M处理器的Arm虚拟硬件。此外,Arm也正借助恩智浦半导体、意法半导体和树莓派等合作伙伴的第三方硬件进一步扩展技术库。通过Arm虚拟硬件扩展至生态系统设备和绝大多数的Cortex-M产品,独立软件供应商和云服务提供商现可利用已部署的数十亿个基于Arm架构的物联网和嵌入式设备。同时,Arm虚拟硬件现已正式落地中国,中国开发者可通过亚马逊云科技Marketplace(中国区)使用该服务。目前,百度、声加科技、未艾智能等国内厂商已成为Arm虚拟硬件的人工智能合作伙伴。据百度公司PaddlePaddle产品团队负责人赵乔介绍,“在物联网时代,深度学习开源开放平台与芯片设计平台的高效融合,将极大提升产业开发者研发智能设备的效率。通过将飞桨产业级模型库及推理能力与Arm虚拟硬件平台深度整合,开发者无需完成芯片,即可在云上将Github上最热门的PP系列产业级特色模型快速、高效部署在Cortex-M系列硬件上,快速完成AI小型系统的原型验证。”结语随着物联网产业深化落地,多点开花,其所服务的市场也在不断扩大,面向行业的多元化需求,Arm作为全球半导体IP龙头以及最先布局物联网的半导体公司之一,基于其在物联网芯片领域的先天优势,率先来到了物联网新时代的起点——一个软件与硬件在系统层面真正共同设计的时代。在Arm虚拟硬件以及高性能处理器的加持下,Arm或将引领新一轮颠覆性革新。
  • [新手课堂] 类实例的生命周期
    ①类加载检查: 虚拟机遇到⼀条 new 指令时,⾸先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引⽤,并且检查这个符号引⽤代表的类是否已被加载过、解析和初始化过。如果没有,那 必须先执⾏相应的类加载过程。②分配内存:在类加载检查通过后,接下来虚拟机将为新⽣对象分配内存。对象所需的内存⼤⼩在类加载完成后便可确定,为对象分配空间的任务等同于把⼀块确定⼤⼩的内存从 Java 堆中划分出来。分 配⽅式有 “指针碰撞” 和 “空闲列表”两种,选择那种分配⽅式由 Java 堆是否规整决定,⽽Java堆是 否规整⼜由所采⽤的垃圾收集器是否带有压缩整理功能决定。内存分配的两种⽅式:(补充内容,需要掌握) 选择以上两种⽅式中的哪⼀种,取决于 Java 堆内存是否规整。⽽ Java堆内存是否规整,取决于 GC 收集器的算法是"标记-清除",还是"标记-整理"(也称作"标记-压缩"),值得注意的是,复制算法内存也是规整的 内存分配并发问题(补充内容,需要掌握)在创建对象的时候有⼀个很重要的问题,就是线程安全,因为在实际开发过程中,创建对象是很频繁的事情,作为虚拟机来说,必须要保证线程是安全的,通常来讲,虚拟机采⽤两种⽅式来保证线程安全: CAS+失败重试: CAS是乐观锁的⼀种实现⽅式。所谓乐观锁就是,每次不加锁⽽是假设没有冲 突⽽去完成某项操作,如果因为冲突失败就重试,直到成功为⽌。虚拟机采⽤CAS 配上失败重 试的⽅式保证更新操作的原⼦性。 TLAB:为每⼀个线程预先在Eden区分配⼀块⼉内存,JVM在给线程中的对象分配内存时,⾸先在TLAB分配,当对象⼤于TLAB中的剩余内存或TLAB的内存已⽤尽时,再采⽤上述的CAS进⾏内存分 配③初始化零值:内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值(不包括对象 头),这⼀步操作保证了对象的实例字段在 Java代码中可以不赋初始值就直接使⽤,程序能访问到这 些字段的数据类型所对应的零值④设置对象头:初始化零值完成之后,虚拟机要对对象进⾏必要的设置,例如这个对象是那个类的实 例、如何才能找到类的元数据信息、对象的哈希吗、对象的 GC分代年龄等信息。 这些信息存放在对 象头中。 另外,根据虚拟机当前运⾏状态的不同,如是否启⽤偏向锁等,对象头会有不同的设置⽅ 式。⑤执⾏init ⽅法: 在上⾯⼯作都完成之后,从虚拟机的视⻆来看,⼀个新的对象已经产⽣了,但从 Java 程序的视⻆来看,对象创建才刚开始,⽅法还没有执⾏,所有的字段都还为零。所以⼀ 般来说,执⾏ new 指令之后会接着执⾏⽅法,把对象按照程序员的意愿进⾏初始化,这样 ⼀个真正可⽤的对象才算完全产⽣出来。
  • [活动公告] 邀好友一起来读《深入理解Java虚拟机》,还有精美礼品拿!
     华为云 · 云享读书会 第12期 本期领读书籍为《深入理解Java虚拟机》报名现已开启>>>>> 点击了解详情邀好友,读好书,赢好礼!邀请好友一起报名云享读书会,就有机会得到好礼! 一起阅读,共享进步!- 邀请活动时间:即日起-5月20日活动结束活动奖励>>>>邀友报名活动, 享受以下奖励:奖励1:完成一个有效邀请即可获得活动积分+5,最高50分奖励2:达到相应有效邀请人数即可获得以下奖品说明:若邀请人数符合条件,则按照完成有效邀请时间进行排序发奖,奖品不兼得。有效邀请:见下方活动规则邀请条件奖品名称获奖名额有效邀请人数≥50定制机械键盘1有效邀请人数≥30京东京造充电宝PD 18W 100003有效邀请人数≥20爱国者 64GB U盘5 邀请方式步骤一:邀请人成功报名【云享读书会《深入理解Java虚拟机》】活动后(点此去报名)点击图示中的“分享有礼”按钮步骤二:通过生成的专属链接/邀请二维码,即可邀请好友报名活动步骤三:好友点击邀请链接,报名即可。(邀请链接打开就是报名表格,无需填写【邀.请.码】)步骤四:邀请好友通过指定沙箱任务(见活动规则)活动规则>>>>参与邀请要求:参与邀请用户与被邀请用户必须完成华为云官方平台实名认证;参与邀请活动的用户需进行课程报名与学习,成功获取100+积分 >>>>有效邀请者要求:1、被邀请用户必须完成华为云官方平台实名认证且报名本次活动:点击报名链接2、完成沙箱实验:通过鲲鹏开发套件实现Java代码迁移3、将实验完成截图回复至本帖注意事项1、活动从即日起至2022年5月13日课程结束,此外时间内邀请人数不算有效邀请2、专属链接/二维码禁止在本期课程学习群内露出,如发现群内露出将取消活动邀请资格3、参与活动需获取专属链接,专属链接需大家按照上述活动步骤自行获取4、本次邀请活动会在本次读书会结束后20个工作日内结算并将奖品寄出,寄出时间根据实际情况动态调整,如有延期敬请见谅;5、活动结束后将统计最终排名及获奖结果,如核查发现存在邀请账号为机器注册账号或无效账号将取消此部分邀请数据。如出现邀请人数并列的情况,按最先达成人数的时间优先排名。更多活动信息详见:https://bbs.huaweicloud.com/forum/thread-185953-1-1.html
  • [活动公告] (活动结束)【云享读书会第12期】《深入理解Java虚拟机》在书籍中探索Java虚拟机的奥秘
    限时奖励名单公布如有异议请与课程社群中的小助手联系获奖用户填写以下问卷,问卷填写信息截止6月9日收货信息填写:https://devcloud.huaweicloud.com/expertmobile/qtn?id=147fdfb4857240098a1a88425d3dc678开发者,你好!欢迎来到 华为云 · 云享读书会 第12期 本期领读书籍为《深入理解Java虚拟机》由十年游戏行业经验、技术合伙人,技术博主, CSDN认证博客专家,2021年度华为云年度十佳博主,华为云享专家——香菜,带你精读这本JVM高级特性与最佳实践活动时间:2021.04.15 - 2021.05.27- 活动报名(报名才能积分):  点此报名活动- 领读视频&自测题: 点此查看 -学习笔记提交:点此提交-互动问答:点此参与-邀请好友一同学习:点击参与活动规则1)完成自测题:社群内公布自测题答题入口,每题回答正确后,增加5分;回答错误,0分。本次活动通过自测题获取积分上限为125分;2)提交读书笔记:读书会进入领读期后,在指定云社区活动帖内,按照示例格式回复笔记内容(字数要求≥300字,内容要求与书籍内容、领读视频内容相关,要求原创不可抄袭),通过审核后,增加50分/篇。本次活动通过提交读书笔记获取积分上限为200分。3)互动问答:学员在结业期可参加互动问答,参与话题讨论或向专家提问、与专家互动。参与即可获得10分,上限50分,优质互动可根据质量额外获得10分或20分。评奖方式1)排行榜前20名;在活动结束后15个工作日内,积分获取方式关闭并停止更新积分榜,按照最终积分榜发放活动奖励,发放标准为:积分排行1-5 名 定制无线鼠标活动积分排行 6-20 名 文件收纳袋2)针对活动时间内提交的有效读书笔记,领读专家将根据内容质量和完成篇数综合评选1位最佳读书笔记获奖者,并奖励提交人 猫王收音机1个,每个笔记提交人仅可获得一次最佳读书笔记奖励。活动积分注意事项1) 其他未说明的积分获取方式,请以社群公告为主;2) 活动涉及的所有积分仅在活动周期内生效,过期失效;3) 若积分值相同则以完成学习任务的时间先后排序,其中任务完成时间的判定优先级为:读书笔记>自测题>专家坐堂Q&A>其他;05.加入学习社群添加小助手微信,备注“虚拟机”加入学习社群。
  • [问题求助] 【Atlas200DK+虚拟机开开发环境——acllite依赖的安装
    【功能模块】分设时安装好acllite后拷贝相关文件到200DK【操作步骤&问题现象】1、执行上图红框命令时出现以下报错2、【截图信息】【日志信息】(可选,上传日志内容或者附件)