我正在尝试阅读并理解Google ARCore的域模型,尤其是Android SDK包.目前,此SDK处于" 预览 "模式,因此没有关于如何使用此API的教程,博客,文章等.甚至谷歌本身也建议只阅读源代码,源代码注释和Javadocs以了解如何使用API.问题是:如果您还不是计算机视觉专家,那么域模型对您来说会有点陌生和陌生.
具体来说,我有兴趣了解以下类之间的根本区别和正确用法:
根据Anchor's javadoc:
" 描述现实世界中固定的位置和方向.为了保持物理空间中的固定位置,当ARCore对空间的理解得到改善时,该位置的数字描述将更新.使用getPose()获取当前数字位置任何时候调用update()都会改变这个位置,但永远不会自发地改变. "
所以主持人有一个姿势.听起来像是" 把一个锚点 "放到相机中可见的东西上,然后ARCore跟踪Anchor并不断更新它Pose以反映其屏幕坐标的性质?
从Posejavadoc:
" 表示从一个坐标系到另一个坐标系的不可变刚性变换.正如所有ARCore API所提供的那样,Poses总是描述从对象的局部坐标系到世界坐标系的变换(见下文)......这些变化意味着每一帧应该是被认为是一个完全独特的世界坐标框架. "
所以它听起来像Pose只是相机的" 当前帧 "所独有的东西,并且每次更新帧时,所有锚点的所有姿势都可能重新计算?如果没有,那么锚点,它的姿势,当前帧和世界坐标系之间的关系是什么?什么是Pose 真的,反正呢?"姿势"只是一种存储矩阵/点数据的方式,以便您可以将Anchor从当前帧转换为世界帧吗?或者是其他东西?
最后,我看到Frames,Poses和Anchors之间有很强的相关性,但接下来就是PointCloud.我能看到的唯一com.google.ar.core一个使用这些的类是Frame.PointClouds似乎是(x,y,z) - 与第4个属性协调,表示x/y/z组件实际上正确的表示ARCore的"置信度".所以如果一个Anchor有一个Pose,我会想象一个Pose也会有一个PointCloud来表示Anchor的坐标和那些坐标的置信度.但是Pose 没有 PointCloud,所以我必须完全误解这两个类建模的概念.
我在上面提出了几个不同的问题,但它们都归结为一个简洁,可回答的问题:
Frame,Anchor,Pose和PointCloud背后的概念有什么不同,你何时使用它们(以及用于何种目的)?
computer-vision augmented-reality android-sdk-2.3 android-augmented-reality arcore
所以我想使用增强现实SDK(ARToolkit)
不幸的是,给定的代码示例有点过时(使用gradle 0.8和stuff)所以我不得不稍微修改gradle文件.
我现在收到以下错误:
Error:Attempt to read property 'main' from a write only view of model element 'android.sources' given to rule android.sources { ... } @ aRMarkerDistance\build.gradle line 23, column 5
Run Code Online (Sandbox Code Playgroud)
第23 android.sources行是该行.
Gradle文件:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
defaultConfig.with {
applicationId = "org.ar.artoolkit.org.ARMarkerdistance"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 22
versionCode = 104
versionName = "1.0.4"
}
}
android.buildTypes {
release {
minifyEnabled = …Run Code Online (Sandbox Code Playgroud) 我在为我的 arcore 项目创建图像数据库 (.imgdb) 时遇到问题。我已经下载了适用于 android 的 arcore sdk,在文件夹工具中有适用于 mac 的 arcoreimg。当我尝试按照此处的步骤操作时:
https://developers.google.com/ar/develop/c/augmented-images/arcoreimg
以下不起作用:
./arcoreimg build-db --input_image_list_path=/path/to/image_list_file.txt \
--output_db_path=/path/to/myimages.imgdb
Run Code Online (Sandbox Code Playgroud)
(显然改变了我的图像的路径)
当我在终端中执行它时,它说找不到arcoreimg 命令。我该怎么办?有任何想法吗?
我正在开发一个应用程序,其概念是可以在实际放置对象之前“选择”对象。因此,我想做的是在架子上放置一些低质量的物品或类似物品。当用户选择对象时,他然后可以点击以将高质量版本的对象放置在他的区域中以供进一步查看。
我想知道vuforia是否可能。我想使用这个平台,因为据我所知它可以很好地运行,并且它是跨平台的(该应用程序需要用于android和HoloLens)。
我已经建立了基本的应用程序,您可以在其中放置胶囊。现在,我想在vuforia检测到接地平面后自动放置(在本例中为胶囊)。从我可以看到的平面搜索器中,有一些事件在检测到输入时熄灭,但是我找不到在检测到地平面时熄灭的事件。vuforia还有可能吗?我知道它可以与HoloLens一起使用,但我想知道对于Android或其他移动设备是否可行。我真的不知道从哪里开始寻找,所以我希望有人能指出我正确的方向。
让我知道是否需要提供更多信息!
I am new to sceneform sdk for Android . I have added one Transformable Node , then i applied some rotation , scaling and changed its position also. Now on click of button i need to place second node with same rotation , scaling and position.
For that what i did is:
Node nodeTwo = new Node(); // second node
nodeTwo.setLocalPosition(nodeOne);
nodeTwo.setLocalRotation(nodeOne);
nodeTwo.setLocalScale(nodeOne);
nodeTwo.setRenderable(renderable);
Run Code Online (Sandbox Code Playgroud)
I have also tried with setWorldPosition() , setWorldRotation().. But nothing works , second node got …
android augmented-reality android-augmented-reality arcore sceneform
我正在尝试将大型3D对象(从.obj文件生成)放置在相机前面,但无法执行此操作。以命中结果为中心放置模型。有办法完成吗?
我在哪里将 sceneform_hand_phone.png 图像更改为自定义图像?。这是在带有 ARCore 的 Android 库场景表单中使用的手部图像。
谢谢