华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力3-获取设备位姿

news2024/11/7 2:57:32

设备位姿描述了物体在真实世界中的位置和朝向。AR Engine提供了世界坐标下6自由度(6DoF)的位姿计算,包括物体的位置(沿x、y、z轴方向位移)和朝向(绕x、y、z轴旋转)。通过AR Engine,您可以实时获取设备在空间中任意时刻的位姿。

创建ARSession

您可以参考管理AR会话创建ARSession。

世界坐标系

设备位姿一般在世界坐标系下进行表示。世界坐标系描述了真实物理空间中物体的绝对位置,其正方向如图所示。

图1 世界坐标系示意图

AR Engine会帮助您自动完成世界坐标系初始化。

获取设备当前位姿

  1. 创建一个空位姿变量cameraPose。
     
      
    1. AREngine_ARPose *cameraPose = nullptr;
    2. HMS_AREngine_ARPose_Create(arSession, nullptr, 0, &cameraPose);
  2. 获取当前时刻相机位姿信息,并存储在cameraPose变量中。
     
      
    1. // 创建一个新的AREngine_ARFrame对象。
    2. AREngine_ARFrame *arFrame = nullptr;
    3. HMS_AREngine_ARFrame_Create(arSession, &arFrame);
    4. // 更新当前帧的结果到arFrame。
    5. HMS_AREngine_ARSession_Update(arSession, arFrame);
    6. // 获取当前帧的相机参数对象。
    7. AREngine_ARCamera *arCamera = nullptr;
    8. HMS_AREngine_ARFrame_AcquireCamera(arSession, arFrame, &arCamera);
    9. // 获取当前时刻相机位姿信息。
    10. HMS_AREngine_ARCamera_GetPose(arSession, arCamera, cameraPose);
  1. 从cameraPose中获取相机位姿的不同分量,包括平移分量和旋转分量。
     
      
    1. float poseRaw[7] = { 0.0f };
    2. HMS_AREngine_ARPose_GetPoseRaw(arSession, cameraPose, poseRaw, 7);

AR Engine中,设备位姿由一个7维向量描述,包括旋转量

和位移量

。其中旋转量

是一组四元数,描述了设备相对于坐标原点的旋转状态;位移量是一组三维向量,描述了设备相对于坐标原点的平移状态,如下图所示。

图2 设备位姿的旋转和平移变化示意图

通过旋转分量和平移分量,您可以完备的描述设备位姿在空间中任意时刻的位姿状态。

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

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

相关文章

Ubuntu 扩容磁盘

1.没有机子,用虚拟机模拟一下将sdc扩到sdb下面去 2.先查看磁盘是否为ext4的格式 lsblk -f 3.发现不是 那就格式化一下 mkfs.ext4 /dev/sdc 4.转换为物理卷 pvcreate /dev/sdc 5.查看所要扩容的vg名称 vgs 6.物理机扩容到卷组 vgextend vgHome /dev/sdc 7.查看目…

真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇

点击蓝字 关注我们 zCloud 作为一款业界领先的数据库云管平台,通过云化自治的部署能力、智能巡检和诊断能力、知识即代码的沉淀能力,为DBA的日常管理工作带来了革新式的简化与优化。经过一周的深度体验,今天笔者与您深入探讨 zCloud 在数据库…

大数据之多级缓存方案

多级缓存介绍?多级缓存优缺点,应用场景?多级缓存架构? 多级缓存介绍 多级缓存方案是一种优化手段,通过在多个级别上存储数据来提高应用程序的性能和响应速度。以下是对多级缓存方案的详细解析: 一、多级缓…

前端三件套(HTML + CSS + JS)

前言: 前端三件套,会用就行 毕竟在后面学习JavaWeb,以及在学习vue的时候也有帮助 前端三件套: HTML 定义网页的结构和内容。CSS 负责网页的样式和布局。JavaScript 添加动态交互和功能。 使用到的工具是Visual Studio Code 即…

Zabbix proxy 主动模式的实现

1. 准备三台机器 zabbix-server10.0.0.200zabbix-agent10.0.0.203zabbix-proxy10.0.0.204 2. 创建独立的数据库(最好部署在单独的机器上,或者部署在porxy机器上) # 按照官网下载 proxy 的步骤中创建库和用户即可 # mysql -uroot -p passwo…

【linux】的爱恨情仇

Linux发展史:一段关于黑客、企鹅和科技巨头们的传奇冒险 个人主页:chian-ocean 文章专栏 各位朋友们,欢迎来到Linux的世界!今天,我将带你们进入一段不拘一格的故事,充满了怪咖、极客、反派巨头&#xff…

微服务系列二:跨微服务请求优化,注册中心+OpenFeign

目录 前言 一、纯 RestTemplate 方案存在的缺陷 二、注册中心模式介绍 三、注册中心技术:Nacos 3.1 Docker部署Nacos 3.2 服务注册 3.3 服务发现 四、代码优化:OpenFeign工具 4.1 OpenFeign快速入门 4.2 连接池的必要性 4.3 抽取服务、最佳实…

SRS:构建实时免费视频服务器的全方位指南

SRS(Simple Realtime Server)是一个开源的、基于MIT协议的实时视频服务器,以其简单、高效而著称。它支持多种流媒体协议,包括RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等,使其成为直播和WebRTC领域的理想…

copilot教我学408---OS之文件管理

四、文件管理 (一)文件 1.文件的基本概念 2.文件元数据和索引节点(inode) 3.文件的操作 建立,删除,打开,关闭,读,写 4.文件的保护 5.文件的逻辑结构 6.文件的物理结构 (二)目录 1.目录的基本概念 2.树形目录 3.目录的操作 4.硬链接和软链接 (三)文件系统 1.文件系统的全局结构(…

论文阅读笔记:Activating More Pixels in Image Super-Resolution Transformer

论文阅读笔记:Activating More Pixels in Image Super-Resolution Transformer 1 背景1.1 问题1.2 提出的方法 2 创新点3 方法4 模块4.1 混合注意力模块(HAB)4.2 重叠交叉注意力模块(OCAB)4.3 同任务预训练 5 效果5.1 …

导师双选系统开发:Spring Boot技术详解

第一章 绪论 1.1 选题背景 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,尽管身边每时每刻都在产生大量信息,这些信息也都会在短时间内得到处理,并迅速传播。因为很多时候,管理层决策需要大量信…

关于wordpress instagram feed 插件 (现更名为Smash Balloon Social Photo Feed)

插件地址: Smash Balloon Social Photo Feed – Easy Social Feeds Plugin – WordPress 插件 | WordPress.org China 简体中文 安装后,配置教程: Setting up the Instagram Feed Pro WordPress Plugin - Smash Balloon 从这里面开始看就…

Redis学习:BitMap/HyperLogLog/GEO案例 、布隆过滤器BloomFilter、缓存预热+缓存雪崩+缓存击穿+缓存穿透

Redis学习 文章目录 Redis学习1、BitMap/HyperLogLog/GEO案例2. 布隆过滤器BloomFilter3. 缓存预热缓存雪崩缓存击穿缓存穿透 1、BitMap/HyperLogLog/GEO案例 真实需求面试题 亿级数据的收集清洗统计展现对集合中数据进行统计,基数统计,二值统计&#xf…

基于Python的智能旅游推荐系统设计与实现

一、摘要 本毕业设计的内容是设计并且实现一个基于Python技术的智能旅游推荐系统。它是在Windows下,以MYSQL为数据库开发平台,使用Python技术进行设计。智能旅游推荐系统的功能已基本实现,主要实现首页,个人中心,用户…

从零开始的c++之旅——多态

1. 多态的概念 通俗来说就是多种形态。 多态分为编译时多态(静态多态)和运行时多态(动态多态)。 编译时多态主要就是我们之前提过的函数重载和函数模板,同名提高传不同的参数就可以调 用不同的函数&#xff0c…

第二十六章 Vue之在当前组件范围内获取dom元素和组件实例

目录 一、概述 二、获取dom 2.1. 具体步骤 2.2. 完整代码 2.2.1. main.js 2.2.2. App.vue 2.3. BaseChart.vue 三、获取组件实例 3.1. 具体步骤 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. BaseForm.vue 3.3. 运行效果 一、概述 我们过去在想要获取一…

plt中subplot综合实战

目录 背景介绍实战 背景介绍 下面是一份贸易数据(Prod_Trade.xlsx),需要多角度针对2012年数据进行报表分析,需使用subplot分格展示。Prod_Trade的数据结构包括 Date,Order_Class,Sales Transport,Trans_Cost, Region ,Category, …

DevOps开发运维简述

DevOps平台是一套集成的解决方案,旨在协调软件开发(Development)和信息技术运维(Operations)。它促进跨功能团队合作,实现自动化流程,确保持续集成与持续交付(CI/CD)。 一…

基于java+SpringBoot+Vue的微服务在线教育系统设计与实现

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测

粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测 目录 粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现PSO-BiTCN-BiGRU-Attention粒子…