Difference between revisions of "ArtifactVis with Android Device"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Usage Instructions)
(Usage Instructions)
Line 3: Line 3:
 
===Usage Instructions===
 
===Usage Instructions===
  
*Server
+
*'''Server'''
 
** This is the path to find the server code '''write the path here'''
 
** This is the path to find the server code '''write the path here'''
 
** IP Address: Use this command line to find the IP address '''ifconfig'''
 
** IP Address: Use this command line to find the IP address '''ifconfig'''
Line 9: Line 9:
 
** This is the path to use any object '''write the path here'''
 
** This is the path to use any object '''write the path here'''
  
*Client
+
*'''Client'''
 
** This is the path to find the client code '''write the path here'''
 
** This is the path to find the client code '''write the path here'''
 
** IP Address: Use the same IP address on the server side and wirte it on the code   
 
** IP Address: Use the same IP address on the server side and wirte it on the code   
Line 19: Line 19:
  
 
*Start with the server  
 
*Start with the server  
Go to this path on the terminal '''write the path here'''
+
Go to this path on the terminal '''write the path here'''
  
 
** Write on the terminal  
 
** Write on the terminal  
Line 28: Line 28:
  
 
*After that Copy the client code to the eclips workspase and do compile to the Android ndk (C++) by using the following:
 
*After that Copy the client code to the eclips workspase and do compile to the Android ndk (C++) by using the following:
Go to this path on the terminal '''write the path here'''
+
Go to this path on the terminal '''write the path here'''
  
 
** Write on the terminal  
 
** Write on the terminal  

Revision as of 04:14, 19 August 2012

Contents

Project Overview

Usage Instructions

  • Server
    • This is the path to find the server code write the path here
    • IP Address: Use this command line to find the IP address ifconfig
    • Use this PORT 28888
    • This is the path to use any object write the path here
  • Client
    • This is the path to find the client code write the path here
    • IP Address: Use the same IP address on the server side and wirte it on the code
    • Use this PORT 28888
    • Use the same object in client side and put the object on the android memory card and wrtie this path on the code
  write the path here

To compile and run the code do the following:

  • Start with the server

Go to this path on the terminal write the path here

    • Write on the terminal
  make
  then  
  CalVR
  • After that Copy the client code to the eclips workspase and do compile to the Android ndk (C++) by using the following:

Go to this path on the terminal write the path here

    • Write on the terminal
  ndk-build
  then go to the eclipse right click on the project then run after connect the android device

Software Tools and Equipment

Installing OSG for Android on Linux OS

Goals

Screen Shots

Future Work

Developers

Progress

Week 1

- look for tutorials on OSG (Done part of them)

- creating boxes and spheres (Done)

- displaying images from JPEG files (Working on it)

- mouse control: move/rotate objects in 3D (Done the rotation)

- understand the concept of a scene graph (Done)

Week 2

First: OpenSceneGraph

The resources that I used to learn OSG

"OpenSceneGraph 3.0 Beginner's Guide book" and the OpenSceneGraph website.

I read the following chapters:

Chapter 1: The Journey into OpenSceneGraph

Chapter 3: Creating Your First OSG Program

Chapter 4: Building Geometry Models

Chapter 5: Managing Scene Graph

Chapter 6: Creating Realistic Rendering Effects

Chapter 9: Interacting with Outside Elements

And some tutorial related to the following topics:

  • Geometry
  • 2D Text write function to set camera position in osg from head node: for

testing, transfer 4x4 matrix of head pos

  • Transformation (Translation, Rotation, Scaling)
  • Shapes (Box, Cone, Sphere, Capsule, Cylinder)
  • Polygon mode
  • 2D Texture (load image from images file)
  • Interaction with outside element (keyboard and mouse)

I read the previous topics and ran them on my PC and made some changes to the code to understand what each method does in the code.


Second: CalVR

I read the CalVR website, and I will focus on it more on Monday


Third: Android

I started with android: installed it on my laptop, done the "Hello World" program and ran it in my android devise. I also read about the following topics:

  • Camera
  • Kind of sensor
  • Activity
  • Create list, buttons


roadblocks I have encountered:

  • Working with OSG installation
  • Write a makefile
  • Working with some linux commands.
  • Understanding CalVR (but I did not give CalVR much time to work on)
  • There were no simple Examples for OSG on the internet so I used the book "OpenSceneGraph 3.0 Beginner's Guide book" to practice some simple examples.
  • I couldn't understand some mathematical equations in your slides.


Summery

Look for tutorials on OSG and compile them on your PC in my lab Done

Creating boxes and spheres Done

Displaying images from JPEG files Done (I used the image as texture)

Mouse control: move/rotate objects in 3D Done (move/rotate objects in 3D and Picking objects)

Understand the concept of a scene graph Done

Go through the slides on this web site Done (Lecture 1, 2, 3, 4, 5, 6, 10) I read in general and will continue reading

Week 3

Reading and understanding the code (Done 60%)

Read about socket programming (Done without any practical code)

Week 4

Install OSG on the Android device (Motorola Xoom tablet) Done But it's doesn't work Load any Object and I apply rotation, translation, and scaling it by touch screen Done

Week 5

Continu install OSG on the Android device but on the Galaxy mobile Done' Load any Object and I apply rotation, translation, and scaling it by touch screen Done load excavation site model (osg file) into mobile with OSG Done But the output is a black screen

Week 6

osg::MatrixTransform * getObjectTransform () returns the position of the data set in room coordinates; send this to phone; on phone, put it in a MatrixTransform just above the node with the cow

TODO

  • load excavation site model (VRML file) into tablet with osg:
    • osg::MatrixTransform * getObjectTransform () returns the position of the data set in room coordinates; send this to phone; on phone, put it in a MatrixTransform just above the node with the cow
    • Goal: when flying around data set in CalVR, the view on the phone should change accordingly
    • getHeadMat() returns the head position in room coordinates: this is constant at a desktop, but changes in the caves

- write function to set camera position in osg from head node: for testing, transfer 4x4 matrix of head position over wifi to tablet: this will effectively copy the view on the Calvr system to the tablet

- sense touch on artifact, then send touched artifact ID to Calvr computer, which will send associated photograph to tablet; display photograph on tablet. This will allow the user to view pictures associated with artifacts on the screen

- connect tracking system to tablet to allow moving tablet around starcave and view excavation site model from arbitrary perspectives on tablet screen.