Is there a way to use ARCore for projection based AR? - arcore

I am trying to implement a projection based AR prototype which is meant to detect and track QR markers on a surface and projects corresponding images next to them simultaneously. I know the first part of the project is possible using ARCore but I was wondering if there is a way to send AR output to a projector instead of a phone screen. If so, how do I do that?

You don't really need AR for this - you can simply have your detection trigger a regular image to be projected to the surface you want:
QR reader / Phone etc detects QR code and sends message to 'controller'
Controller recognises code and sends message to directly connected or network connected projector
Projector projects image onto screen/surface
You do obviously have to have some sort of screen or surface to project the image onto, unless you are thinking of 3D models in which case you would need something like a Holographic Projector.

Related

Is it Possible to Place an AR Object above an AR Object?

I want to Place an AR object(Chair) onto another AR Object(Platform).
Lets say chair is 3X3 and platform is 6x6 in horizontal plane. I want to ask if it is possible? If Yes, I want to ask if it is possible in which of the following 1. ARCore, 2. ARKit, 3. VIRO React.
I know AR detects real world planes and we can place objects onto it. Also I have seen Videos of APP where in ARCore objects interact with each other.
It is possible, but you do not stack ar object over another ar object. You have to manually create a new type and then you stack the new type over one another.
An example:
You spawn a class Platform and then you detect platform similar way you detect plane, you can use a raycast to do this. Then when you detected the platform, you then offset chair from platform and you spawn it on top of it.

ARcore Augmented images with 3D object interaction

I want to build a digital catelog application
where i detect the image in a catelogue and place a 3D object on it
This can be achieved by ARcore Augmented images.
what i need is When i click/touch the 3D object I need to show some information and videos
For this particular task i need some SDK options
without Vuforia can this be achieved using ARCore+Unity or Android OpenCV or any other.
This requires a lot of work from creating animations and layers to define colliders and controlling with backend code.
First you create the animations and animation controllers, then add colliders to the hot spots where you want to click on the object (e.g. touch the door to open), then map each collider click event to fire a specific animation.
actually it is better to follow a tutorial that shows the animating basics, then it will be easy to combine with AR project,
https://unity3d.com/learn/tutorials/s/animation

How to turn off/on AR in an augmented reality app using ARkit?

I'm starting to learn how to use ARkit and I would like to add a button like the one in the Pokemon go application where you can switch between AR ON (with a model into the real world) and AR OFF (without using a camera, having just the 3D model with a fixed background). Are there any easy way to do it?
Another good example of what you're asking about is the AR Quick Look feature in iOS 12 (see WWDC video or this article): when you quick look a USDZ file you get a generic white-background preview where you can spin the object around with touch gestures, and you can seamlessly switch back and forth between that and a real-world AR camera view.
You've asked about ARKit but not said anything about which renderer you're using. Remember, ARKit itself only tells you about the real world and provides live camera imagery, but it's up to you to display that image and whatever 3D overlay content you want — either by using a 3D graphics framework like SceneKit, Unity, or Unreal, or by creating your own renderer with Metal. So the rest of this answer is renderer-agnostic.
There are two main differences between an AR view and a non-AR 3D view of the same content:
An AR view displays the live camera feed in the background; a non-AR view doesn't.
3D graphics frameworks typically involve some notion of a virtual camera that determines your view of the 3D scene — by moving the camera, you change what part of the scene you see and what angle you see it from. In AR, the virtual camera is made to match the movement of the real device.
Hence, to switch between AR and non-AR 3D views of the same content, you just need to manipulate those differences in whatever way your renderer allows:
Hide the live camera feed. If your renderer lets you directly turn it off, do that. Otherwise you can put some foreground content in front of it, like an opaque skybox and/or a plane for your 3D models to rest on.
Directly control the camera yourself and/or provide touch/gesture controls for the user to manipulate the camera. If your renderer supports multiple cameras in the scene and choosing which one is currently used for rendering, you can keep and switch between the ARKit-managed camera and your own.

Placing objects automatically when ground plane detected with vuforia

I'm working on an application where the concept is that you can 'select' objects before actually placing them. So what I wanted to do was have some low quality objects on a shelf or something like it. When the user selects the object he then can tap to place the high quality version of the object in his area for further viewing.
I was wondering if it's possible with vuforia. I wanted to use this platform since it works well from what I could tell and it's cross platform (The application needs to be for android and the HoloLens).
I have set up the basic application where you can place a capsule in the area. Now I wanted to automatically place the (in this case capsule) once vuforia has detected a ground plane. From what I could see the plane finder has events that go off when an input is detected, but I couldn't find an event that goes off when the ground plane is detected. Is it still possible with vuforia? I know it's doable with the HoloLens, but I would like to know if it's possible for android or other mobile devices. I really don't know where to start/look for so I hope someone can point me in the right direction.
Let me know if I need to include more information!
The Vuforia PlaneFinderBehaviour (see doc here) has the event OnAutomaticHitTest which fires every frame a ground plane is detected.
So you can use it to automatically spawn an object.
You have to add your method in the On Automatic Hit Test instead of the On Interactive Hit Test list of the "Plane Finder":
I've heard that vuforia fusion, does not yet support ARCore (it supports ARKit) so it uses an internal implementation to simulate ARCore functionality, and they are waiting for a final release of ARCore to support it. Many users reported that their objects move even when they use an ARCore supported device.

How to detect distance using an image (similar to EasyMeasure app)

I am developing an autonomous robot using an iPhone. I want it to analyze images from its camera to determine its distance to objects.
I know it is possible to detect distance using a single, regular camera because there is an app in the app store called EasyMeasure that detects the distance from the phone to the object using only the rear camera.
So my question is: a) what algorithm can achieve this? b) are there any open source libraries out there that do this?
Thank you.
It is not possible without additional scale information about the scene. The app you mention is rubbish. Sorry.

Resources