Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Augmented Reality: Developing AR Applications

Welcome to AR. Lets dive into this field and see how AR apps can be developed.
by

Raj Rathore

on 1 February 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Augmented Reality: Developing AR Applications

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. ... The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.

- F. Brooks ("The Mythical Man Month", pages 7-8) Augmented Reality Augmented reality (AR) is a live, direct or indirect, view of a physical, real-world environment whose elements are augmented by computer-generated sensory input such as sound, video, graphics or GPS data.

As a result, the technology functions by enhancing one’s current perception of reality.

With the help of advanced AR technology (e.g. adding computer vision and object recognition) the information about the surrounding real world of the user becomes interactive and digitally manipulable. Technology Hardware The main hardware components for augmented reality are: processor, display, sensors and input devices. Modern mobile computing devices like smartphones and tablet computers contain these elements which often include a camera and MEMS sensors such as accelerometer, GPS, and solid state compass, making them suitable AR platforms.
Display: Head-mounted, Eye Glasses, Contact Lenses, Virtual Retinal Display, Hand held Spatial
Tracking, Input Devices, Computer Software and algorithms How realistically they integrate augmentations with the real world.
The software must derive real world coordinates, independent from the camera, from camera images. This process is called registration. Applications Augmented reality has many applications, and many
areas can benefit from the usage of AR technology.
AR was initially used for
military, industrial, and medical applications,
but was soon applied to
commercial and entertainment areas as well. Archaeology, Architecture, Art, Commerce Education, Industrial Design Medical, Military, Navigation, Office Workplace, Sports & Entertainment, Task Support,Tourism and Sightseeing, Translation Developing AR Application There are various software development kit available for
developing AR applications, such as ARtoolkit, Vuforia.
I have chosen Vuforia sdk,
which is developed by Qualcomm.
it allows developing apps on mobile platforms
such as iOS and android. System Overview AR application uses the display of the mobile device as a "magic lens" or looking glass into an augmented world where the real and virtual worlds appear to coexist.

The application renders the live camera preview image on the display to represent a view of the physical world. Virtual 3D objects are then superimposed on the live camera preview and they appear to be tightly coupled (i.e. registered) in the real world. Target Resources Target resources are created using the Target Management System.
The downloaded dataset contain an XML configuration file that
allows the developer to configure certain trackable features and a
binary file that contains the trackable database.

These assets are compiled by the application developer into the app
installer package and used at run-time Trackables "Trackables" is the base class that represents all real world objects that the Vuforia SDK can track in six degrees-of-freedom. Each trackable, when detected and tracked, has a name, an ID, status, and pose information. Image Targets, Multi Targets and Markers are all trackables that inherit properties from this base class.

Trackables are updated as each frame is processed, and the results are passed to the app in the State object. Trackable Type
Trackable Name/Identifier
Trackable Status
Trackable Pose Parameters Coordinate Systems The Vuforia SDK uses right handed coordinate systems. Each Image Target and Frame Marker defines a local coordinate system with (0,0,0) in the centre (middle) of the target. +X goes to the right, +Y goes up and +Z points out of the trackable (into the direction from which it can be seen). Relevant API's QCAR::Trackable::
TYPE getType ()
bool isOfType (TYPE type)
STATUS getStatus ()
int getId ()
char* getName ()
Matrix34F& getPose ()
TYPE { UNKNOWN_TYPE, IMAGE_TARGET, MULTI_TARGET,MARKER }STATUS { UNKNOWN, UNDEFINED, NOT_FOUND, DETECTED,TRACKED }

QCAR::State::
Frame getFrame ()
int getNumTrackables ()
Trackable* getTrackable (int idx)
int getNumActiveTrackables ()
Trackable* getActiveTrackable (int idx) Image Targets Image Targets, are images that the Vuforia SDK can detect and track. Unlike traditional markers, data matrix codes and QR codes, Image Targets do not need special black and white regions or codes to be recognized. Multi Targets A Multi Target consists of multiple Image Targets that have a fixed spatial relationship. Once one of the parts of a Multi Target is detected all other parts can be tracked as their relative position and orientation is known. As long as oneof the parts of the target is at least partially visible in the camera image, the Multi Target can be tracked Frame Markers In addition to feature based detection and tracking, the Vuforia SDK can track a special type of fiducial marker called "Frame Markers". The unique id of a Frame Marker is encoded into a binary pattern along the border of the marker image. A Frame Marker allows any image to be placed within the marker borders. They are more desirable as they look more natural than other more traditional fi- ducial markers Virtual Buttons Virtual Buttons are developer-defined rectangular regions on Image Targets, that when touched or occluded in the camera view, trigger an event. Virtual But- tons can be used to implement events such as a button press or to detect if specific areas of the Image Target are covered by an object. Virtual Buttons are only evalu- ated if the button area is in the camera view and the camera is steady. Evaluation of Virtual Buttons is disabled during fast camera movements. Set Up Development Environment The Vuforia SDK requires both the Android SDK and the NDK. The Android NDK is an extension to the Android SDK that lets Android developers build performance-critical parts of their applications in native code. SDK and NDK communicate over the Java-Native-Interface (JNI). To set-up the development environment please
install the following compo- nents in the order they
appear below:

JDK
Eclipse IDE
Android SDK Downloader
Android ADT
Android SDK platform support
Cygwin Environment
Android NDK AR apps I have developed 3 AR apps
AR Sword
AR Forest war scene
AR House Installation transfer the .apk file of the app to your device
tap on the .apk file.Install wizard for android will appear, just follow the instructions. Application is installed :) Running the app Tap on the application icon in app launcher,
just like you do to launch other apps :) 1. AR Sword This app detects a image target and shows a three dimensional model of a sword.

It’s a fun to see a sword sitting on your table, and you can’t get harmed with it. nice, cool..:) Augmented Reality Developing AR Applications AR Forest war scene This augmented reality app brings interactive experience of watching a forest in 3D, showing shrubs, trees, fountains, waterfall, coyotes and soldiers.

You will listen audio playing in this scene. There are three 3D audio sounds are being played.

I linked these sounds to fire, fountain and waterfall respectively.Intensity of the sound will vary as you change the distance from the source, as it happens in real life. This brings an aesthetically pleasing side of augmented reality. AR House This app shows a three dimensional house, you can view this house in all the different angles you want. It shows a house which has a tree in front of it, has a bench outside the house, over the bench is a streetlight. The switch to change the color of the street light is on the ground below the bench.

This application shows how AR can be used in modeling the design of a build- ing, or car or anything else you want. It has aesthetically pleasing appeal to it.

This app also has a music playing near the tree corner of the house and near the bench, the volume of the sound varies with the distance from the source. AR Apps Augmented Reality: Developing AR Applications Raj Singh Rathore,
Centre for converging Technologes Thank You
Full transcript