Sunday, April 2, 2017

Introduction of Augmented Reality

Augmented Reality is a type of virtual reality that aims to duplicate the world's environment in a computer. An augmented reality system generates a composite view for the user that is the combination of the real scene viewed by the user and a virtual scene generated by the computer that augments the scene with additional information.




The goal of Augmented Reality is to create a system in which the user cannot tell the difference between the real world and the virtual augmentation of it. Today Augmented Reality is used in entertainment, military training, engineering design, robotics, manufacturing and other industries.

A quick example will make the idea clearer

You're watching a tennis grand-slam on TV and there's a controversial call from one of the line judges. Was that serve in or out? The TV station runs an instant replay with a computer animation showing the exact trajectory of the ball and where it landed - just outside the line. Then a little table comes up on the screen showing how many serves have been in or out for each player and how the figures have changed over the course of the match.

You can see that augmented reality is actually a mixture of real life and virtual reality, somewhere in between the two, so it's often referred to as mixed reality. The key point is that the extra information it gives you is highly topical and relevant to what you want to do or know in a certain place and time.

My Client wants an iOS app for students/users to show pre-decided and selected popular university location - POI (Point of Interest) in Augmented Reality (on mobile camera), Google Maps, and List mode. On selection of a particular POI, an app should show more information and also should help a user to show walking route (path) and navigate to that location.

Features of Augmented Reality – POC

  • The user can see POIs and Google Places as a marker on Google Map.
  • The user can choose a language (English/ Welsh) through setting option.
  • In AR Mode, the rear camera is on. The device shows only those POIs along with the distance (in miles), where the device is pointing to.
  • The user can see all POIs in the list view. A search option is being provided on the top of the screen where the user can search by the name of POI.
  • The user can see the details of the selected POIs in the more info screen.
  • The user can get the walking direction to the selected POIs from his/her current position.

Considerations for making Augmented Reality - POC

  • Finding a right approach for developing an app.
  • Functionality added in iOS platform can be replicated in Android platform.
  • Considered only 3 POI for POC, but in future, an app will have support any number of POI.
  • One building can have multiple POI, AR mode should show all POI along with distance (in miles) from the current user location.
  • The app should support English and Welsh language.
  • Google Places API Integration.
  • Google Maps SDK Integration.
  • Google Direction API Integration.

Technology and Framework Evaluation
         
Considering the client requirement, following technologies were evaluated:

  •   Unity + Vuforia     
Advantages:
  • Enables building complex AR Apps with little coding.
  • No need to code separately for Android and IOS.
  • Apps can be made interactive with graphical UI elements.
  • Provide faster local detection of targets with the capacity of tracking 10 targets simultaneously.
  • Efficient tracking in low light conditions and even though the target is covered partially.
  • Extended tracking capabilities, which enable an app to keep tracking targets and helps maintain a consistent reference for augmentations of an object even when the targets are no longer visible in real-time camera view.
  • Extensive documentation
Disadvantages:
  • New Visitor/Students need to need to be aware of Targets as Tracking is based on Markers and user needs to point the camera in direction of marker to get information.
  • Integrating GPS and Vuforia Marker tracking is not yet achieved. It would require additional research.
  • There is a limitation of 100 active targets that applies to Device Databases (i.e. local databases). The Cloud Recognition Service will support up to 1000 images for free accounts and up to 1 million for commercial accounts.
  • Not more than 10 images can be tracked simultaneously as it impacts tracking.
  • The graphic designer resource would be required if the animation is in scope.


  •  Angular JS 2 + Native Script
Advantages:
  • Pure native. Developed by Google.
  • GPS and device direction can be achieved using inbuilt features by accessing device hardware (Accelerometer sensor, Gyroscope sensor, Magnetometer sensor).
  • Easy to develop.
  • Support multiple platforms.
Disadvantages:
  • Not many tutorials found on the Internet for achieving Augmented Reality.
  • New technology, therefore not much matured.
  • In Angular 4.0 which will be launched in March 2017, some of the methods of Angular 2.0 might be deprecated. 


  •  Native Development (XCode with Swift language) 
Advantages:
  • Since the applications are built utilizing the native platform interface components and adhere to platform UI guidelines, they appear as natural extensions of the platform, which provides a visually seamless user experience.
  • Apps have direct access to all platform-specific capabilities including embedded hardware, peripherals, and specialized UI libraries or components.
  • Native apps can access a smartphone’s GPS, USB, cameras, and networking hardware.
  • Native applications have been written with standardizing languages and toolkits to achieve the highest possible runtime performance because they are being compiled to run directly on the hardware without intervening abstraction layers.
  • IOS: Applications has been written within Apple’s proprietary integrated development environment named Xcode, which includes the Swift and Objective-C compilers, 4,000 IOS SDKs, an interface builder, IOS simulator, testing platform and hardware instrumentation. Xcode is open source. Even many open source components are available for AR mode.
  • Android: Android Studio is the officially integrated development environment (IDE) for the Android platform which includes Java and C++ compilers, SDKs, Simulator, testing platform and hardware instrumentation. Even it’s open source. Many open source components are available for AR mode.
Disadvantages:
  • The code cannot share between other platforms.
  • For creating an Android app, the developer has to use some other IDE.
  • This POC uses external API’s to show map, direction and nearby places on the devices.
Following External API’s were used in the POC.
  • Google Direction API: Google Maps Directions API is a service that calculates directions between locations.
  •  Google Places API: This API gets the detailed information about 100 million places across a wide range of categories.
  • Google Maps SDK: For showing map & POI marker on the device.

 The app will have extendibility with following features in future.
  • Predefined route with multiple POI
  • Business user to have an option to create/ manage the POI
  • App to work in offline mode
  • Navigation inside the building


You have now leveled up by knowing about Augmented Reality.


Happy learning…!!

2 comments:

  1. Good examples of AR! If you are anybody else is looking for new augmented reality products, you can find them on AR/VR Tips.

    ReplyDelete
  2. Excellent intro to augmented reality. The main points I took away from this are the advantages and disadvantages that you have highlighted. For example, I had no idea that you could track only 10 images at a time with Unity and Vuforia. AR website

    ReplyDelete