Android Navigator

From Immersive Visualization Lab Wiki
Jump to: navigation, search

Contents

Project Overview

This project creates an application for the Android phone that allows a more streamlined CalVR interface, especially in regards to the StarCAVE. Intended to be use in conjungution with the wand or mouse for object selection and other plugin initalization, AndroidNavigator implements motion interface that allows you to drive and fly through whatever world loaded in CalVR.


Navigation:

The main navigation page allows you to navigate in a 3d CalVR world. The modes are the ways to navigate.

  • Main Screen

The main page displays the ip that the user is currently connected to, the mode the user is currently using, the current velocity, and the current accelerometer data. The following buttons are also found on the main page and affect the velocity of New Fly mode and Drive mode.

--Fowards

Touching this section allows you to increase your velocity based upon touch duration. Touching quickly only increases by small amounts (ie. .1-.5) while touching for longer increases by large amounts (ie. 100). The velocities are cumulative.

--Stop

Resets velocity back to 0 and completely pauses any forward/backward motion and all rotation/touch motion. This button also recalibrates the phone to make the current orientation into the base orientation.

--Backwards

Touching this section allows you to decrease your velocity based upon touch duration. Touching quickly only increases by small amounts (ie. .1-.5) while touching for longer increases by large amounts (ie. 100). The velocities are cumulative.


This information is found in the submenu of the navigation side.

  • IP Address

This mode allows you input an Ip address to connect the phone to by typing in the text field and then hitting "Add IP". Ip addresses can be removed by using the Spinner underneath the "Remove IP" button to select an Ip and then by hitting "Remove IP". Once your Ip address is inputted and selected, you can then hit "Connect" to connect to the server. If all goes well, it will display "Connected!" and revert back to the main screen.

  • Movement Modes

This allows you to select the following modes:

-- Fly Mode

This mode lets you rotate the world up/down or left/right by rotating the phone in that direction. In addition, you can try forward or backward by using the zoom pinch and exapansion, respectively, on the touch screen. By dragging on the touch screen, you can move the world in that direction.

--Drive Mode

In this mode, you drive forward by touching the velocity buttons on the side. Tilting left or right allows you to turn left or right. Tilting up or down allows you to move the object up or down (if there are terrain elevation changes). In addtion, touching and dragging on the screen (where the velocity buttons are not located) allows you to tilt the world left or right to fix any orientation issues.

--New Fly Mode

This mode allows you to fly around in CalVR. Touch the velocity buttons to go forward or backward. Tilting up/down or left/right allows you to turn in that direction. Touching and dragging on the screen (where the velocity buttons are not located) also allows you to tilt the world left or right to fix any orientation issues in this mode.

--Rotate World

This mode allows to to fix the tilt of the world by rotating left or right with the phone.

  • Settings

This allows you to toggle various options.

--Invert Pitch

Inverts/reverts vertical rotation.

--Invert Roll

Inverts/reverts horizontal rotation.

--Toggle Pitch

Toggles on/off vertical rotation.

--Toggles Roll

Toggles on/off horizontal rotation.

  • Menu

Changes the menu to allow for other interaction forms.

--Return to Main Screen

Lets you return to the main Menu screen.

Nodes:

Nodes allows you to move and rotate any node that is connected to an AndroidTransform (a class that extends Matrix Transform).

  • IP Address

Functions the same as in Navigation.

  • Find Nodes

This is the main Node screen.

--Find Nodes Once connected to the server, you can use find node to get all nodes that are AndroidTransforms.

--Spinner with Nodes List of nodes that are AndroidTransforms

--Select Node Whichever node has been picked in the spinner gets selected. This becomes the node you can act upon.

--Hide Node This checkbox allows you to hide/show a node. This cannot be used until you have selected a node. Warning: If you hide a node and then use Find Nodes, this node will not reappear. CalVR thinks it has disappeared.

  • Adjust Nodes

Once a node is selected, you can use this page to actually move or rotate the node.

--Select Movement This allows you to select the type of node movement. The options are: X-axis Translation, Y-axis Translation, Z-axis Translation, Rotation about X-axis, Rotation about Y-axis, Rotation about Z-axis.

Once you have selected a type of movement, you can adjust with that movement. Along the x-axis of the phone is the magnification scale. The further you are to the right, the higher the magnification. The y-axis the movement scale. Using a combination of these two axis you can move/rotate your objects either to a large degree or small degree. This also depends upon the scale of your world. When calculated in the CalVR plugin, scaling is multiplied to adjust all movements.

  • Menu

Changes the menu to allow for other interaction forms.

--Return to Main Screen

Lets you return to the main Menu screen.

To-Do

Future Work

  • Add more interactions with object selection. For example, selecting non-AndroidTransform objects.
  • Add Scale mode to adjust world scale size.

Participants

Software Developers:

  • Brooklyn Schlamp

Project Advisors:

Development Assistance:

  • Philip Weber