ubiquitous and mobile computing introduction to arcoreemmanuel/courses/cs528/f19/... ·...

25
Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros Konstantopoulos Skyler Kim Khulood Alkhudaidi Aritra Kundu Computer Science Dept. Worcester Polytechnic Institute (WPI)

Upload: others

Post on 21-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Ubiquitous and Mobile Computing Introduction to ARCore

● Manas Mehta

● Theodoros Konstantopoulos

● Skyler Kim

● Khulood Alkhudaidi

● Aritra Kundu

Computer Science Dept.

Worcester Polytechnic Institute (WPI)

Page 2: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

What is Augmented Reality?

● Projection of digital objects onto reality.● Large application with mobile phones.

Page 3: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

The History of Augmented Reality?

Page 4: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Problems can be solved by AR

● Medical training● Education● Online Shopping● Logistics

Page 5: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

What is ARCore?

- ARCore is Google’s Software development kit for building augmented reality experiences.

- ARCore uses three key technologies:● Motion Tracking● Environmental Understanding● Light estimation

Page 6: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Apps Using ARCore

Page 7: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Other Uses of ARCore

Page 8: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Setting Up Project for AR Core

● Add permissions and data to Android Manifest.

● Add dependency to android app’s build.gradle.

Page 9: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Creating AR Core Session

Page 10: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

● Create GL Surface View in Activity. ● Create OpenGL program using Android calls.● Get trackable planes from AR Core Session.● Get Pose translation from AR Core Camera.● Draw Planes with OpenGL calls based off Plane

and Camera data.

Page 11: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 12: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 13: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 14: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 15: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 16: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 17: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Tracking Planes in Scene

Page 18: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Rendering Objects In AR

● Save .obj file in res folder. ● Create OpenGL program using Android calls.● Save anchor positions of places where objects

should be.● Use OpenGL program to render 3D object at

anchor point. ● Update render from OpenGL program on

SurfaceView Callback.

Page 19: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Prepare 3D Models for Render

Page 20: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Setting Anchors

Page 21: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Drawing Objects

Page 22: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

AR Core Example

Page 23: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Other Features of AR Core

● Viewing 3D models in AR from an Android Browser.

● Augmented Faces + Face detection.● Cloud Anchor objects via AR Core

Cloud Anchor API.

Page 24: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

Questions?

Page 25: Ubiquitous and Mobile Computing Introduction to ARCoreemmanuel/courses/cs528/F19/... · 2019-11-21 · Ubiquitous and Mobile Computing Introduction to ARCore Manas Mehta Theodoros

References

https://developers.google.com/ar/develop/java/quickstart

https://github.com/google-ar/arcore-android-sdk

https://learn.g2.com/history-of-augmented-reality

https://www.ualberta.ca/science/science-news/2018/january/augmented-reality-tech-see-under-skin-without-

scalpel

https://www.wikitude.com/blog-augmented-reality-101-ar-top-use-cases/

https://www.fi.edu/what-is-augmented-reality