Difference between revisions of "ArtifactVis with Android Device"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Week 2)
(Developers)
 
(111 intermediate revisions by one user not shown)
Line 1: Line 1:
===Project Summary===
+
===Project Overview===
  
===Usage Instructions===
+
This project allow users to use the android device (as a client) to connect with CalVR (as a server) by the TCP protocol, then they can move any object and interact with it in the virtual world by using the android device.
 +
It allow users to move objects on the CalVR by using any kind of mode such as Move World, Scale, Drive and Fly, and then see the object movement changes on the android device. Also, they can use the android device (client side) to move the camera around the object to see the object from all sides. Finally, they can use the android device (client side) for picking objects to receive pictures about this object. They can use all these techniques with Artifact Archeology project to interact with the historical objects in the real world. Also they can use this plug-in with other projects.
  
===Screen Shots===
 
  
===Progress===
+
===Usage Instructions===
  
====Week 1====
+
*'''Server'''
 +
** This is the path to find the server code '''/home/saseeri/CVRPlugins/calit2/MagicLens'''
 +
** IP Address: Use this command line to find the IP address '''ifconfig'''
 +
** Use this PORT '''28888'''
 +
** We can find objects on '''/home/saseeri/Development/OpenSceneGraph-Data''' folder
  
- look for tutorials on OSG                  (Done part of them)
+
*'''Client'''
 +
** This is the path to find the client code '''/home/saseeri/CVRPlugins/calit2/MagicLens''', the name of the folder '''OSGTest1-AndroidClient'''
 +
** IP Address: Use the same IP address on the server side and put it on the code 
 +
** Use this PORT '''28888'''
 +
** Use the same object that is used in server side and put the object on the android memory card and wrtie this path on the code '''/mnt/sdcard/create_any_file name/object_name'''
  
- creating boxes and spheres                (Done)
+
'''To compile and run the code do the following:'''
  
- displaying images from JPEG files          (Working on it)
+
Start with the server
 +
*Go to this path on the terminal '''/home/saseeri/CVRPlugins/calit2/MagicLens'''
  
- mouse control: move/rotate objects in 3D  (Done the rotation)
+
'''Write on the terminal'''
  
- understand the concept of a scene graph   (Done)
+
   '''make'''
 +
  ... 
 +
  '''CalVR'''
  
====Week 2====
+
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 '''/home/saseeri/workspace/OSGTest1-AndroidClient'''
  
 +
'''Write on the terminal'''
 +
  '''ndk-build'''
 +
Then go to the eclipse right click on the project then run it after you connect the android device
  
 +
*Click on Start Client
 +
*Then Connect Server
  
'''First: OpenSceneGraph'''
 
  
The resources that I used to learn OSG
+
[[Image:client.jpg]]    [[Image:plane.jpg]]
  
"OpenSceneGraph 3.0 Beginner's Guide book" and the OpenSceneGraph website.
 
  
I read the following chapters:
+
===Software Tools and Equipment===
  
'''Chapter 1:''' The Journey into OpenSceneGraph
+
'''Software Tools'''
  
'''Chapter 3:''' Creating Your First OSG Program
+
'''On PC (Server):'''
 +
* Linux Operating System
 +
* OpenSceneGraph 3.1
 +
* CalVR
  
'''Chapter 4:''' Building Geometry Models
+
'''On Phone Device (Client):'''
 +
* Eclipse
 +
* Linux-sdk
 +
* Android-ndk
 +
* OpenSceneGraph 3.1 Android
  
'''Chapter 5:''' Managing Scene Graph
+
'''Equipment'''
 +
*Android Device (I used Galaxy Phone Samsung)
  
'''Chapter 6:''' Creating Realistic Rendering Effects
 
  
'''Chapter 9:''' Interacting with Outside Elements
+
===Installing OSG for Android on Linux OS===
  
And some tutorial related to the following topics:
+
This is the path to find installation of OSG for Android on Linux OS
  
* Geometry
+
'''/home/saseeri/CVRPlugins/calit2/MagicLens/Installing OSG for Android on Linux OS.pdf'''
  
* 2D Text
 
  
* Transformation (Translation, Rotation, Scaling)
+
===Screen Shots===
 
+
* 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
+
[[Image:1.jpg]]    [[Image:2.jpg]]    [[Image:3.jpg]]
  
 +
[[Image:4.jpg]]    [[Image:5.jpg]]    [[Image:6.jpg]]
  
'''roadblocks I have encountered:'''
 
  
* Working with OSG installation
+
We can translate the object from the android device by touch screen
  
* Write a makefile
 
  
* Working with some linux commands.
+
[[Image:translat11.jpg]]    [[Image:translat22.jpg]]    [[Image:translat33.jpg]]
  
* 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.
+
Also, we can rotate the object from the android device
  
* I couldn't understand some mathematical equations in your slides. 
 
  
 +
[[Image:rotate1.jpg]]    [[Image:rotate2.jpg]]
  
  
'''Summery'''
+
===What is done so far ...===
 +
* load model into Android Device and CalVR with osg
 +
* Connect the Android Device and CalVR over wifi (by using TCP protocol)
 +
* Move objects on the CalVR by using any kind of mode such as Move World, Scale, Drive and Fly, and then see the object movement changes on the android device
  
Look for tutorials on OSG and compile them on your PC in my lab Done
 
  
Creating boxes and spheres Done
+
===Future Work===
 +
* Move the camera around the object to see the object from all sides
 +
* Picking objects to receive pictures about this object
  
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)
+
===Developers===
  
Understand the concept of a scene graph Done
+
'''Software Developer'''
 +
* Sahar Aseeri
  
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
+
'''Project Advisor'''
 +
*Jurgen schulze

Latest revision as of 18:08, 27 August 2012

Contents

Project Overview

This project allow users to use the android device (as a client) to connect with CalVR (as a server) by the TCP protocol, then they can move any object and interact with it in the virtual world by using the android device. It allow users to move objects on the CalVR by using any kind of mode such as Move World, Scale, Drive and Fly, and then see the object movement changes on the android device. Also, they can use the android device (client side) to move the camera around the object to see the object from all sides. Finally, they can use the android device (client side) for picking objects to receive pictures about this object. They can use all these techniques with Artifact Archeology project to interact with the historical objects in the real world. Also they can use this plug-in with other projects.


Usage Instructions

  • Server
    • This is the path to find the server code /home/saseeri/CVRPlugins/calit2/MagicLens
    • IP Address: Use this command line to find the IP address ifconfig
    • Use this PORT 28888
    • We can find objects on /home/saseeri/Development/OpenSceneGraph-Data folder
  • Client
    • This is the path to find the client code /home/saseeri/CVRPlugins/calit2/MagicLens, the name of the folder OSGTest1-AndroidClient
    • IP Address: Use the same IP address on the server side and put it on the code
    • Use this PORT 28888
    • Use the same object that is used in server side and put the object on the android memory card and wrtie this path on the code /mnt/sdcard/create_any_file name/object_name

To compile and run the code do the following:

Start with the server

  • Go to this path on the terminal /home/saseeri/CVRPlugins/calit2/MagicLens

Write on the terminal

  make
  ...  
  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 /home/saseeri/workspace/OSGTest1-AndroidClient

Write on the terminal

  ndk-build

Then go to the eclipse right click on the project then run it after you connect the android device

  • Click on Start Client
  • Then Connect Server


Client.jpg Plane.jpg


Software Tools and Equipment

Software Tools

On PC (Server):

  • Linux Operating System
  • OpenSceneGraph 3.1
  • CalVR

On Phone Device (Client):

  • Eclipse
  • Linux-sdk
  • Android-ndk
  • OpenSceneGraph 3.1 Android

Equipment

  • Android Device (I used Galaxy Phone Samsung)


Installing OSG for Android on Linux OS

This is the path to find installation of OSG for Android on Linux OS

/home/saseeri/CVRPlugins/calit2/MagicLens/Installing OSG for Android on Linux OS.pdf


Screen Shots

1.jpg 2.jpg 3.jpg

4.jpg 5.jpg 6.jpg


We can translate the object from the android device by touch screen


Translat11.jpg Translat22.jpg Translat33.jpg


Also, we can rotate the object from the android device


Rotate1.jpg Rotate2.jpg


What is done so far ...

  • load model into Android Device and CalVR with osg
  • Connect the Android Device and CalVR over wifi (by using TCP protocol)
  • Move objects on the CalVR by using any kind of mode such as Move World, Scale, Drive and Fly, and then see the object movement changes on the android device


Future Work

  • Move the camera around the object to see the object from all sides
  • Picking objects to receive pictures about this object


Developers

Software Developer

  • Sahar Aseeri

Project Advisor

  • Jurgen schulze