Difference between revisions of "Android Navigator"
(→To-Do) |
(→Future Work) |
||
(11 intermediate revisions by one user not shown) | |||
Line 2: | Line 2: | ||
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. | 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 | + | 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''' | * '''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". | 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". | ||
Line 42: | Line 44: | ||
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. | 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. | ||
− | --''Fly | + | --''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. | 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. | ||
Line 78: | Line 80: | ||
Lets you return to the main Menu 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== | ==To-Do== | ||
− | |||
− | |||
==Future Work== | ==Future Work== | ||
− | * | + | * Add more interactions with object selection. For example, selecting non-AndroidTransform objects. |
+ | * Add Scale mode to adjust world scale size. | ||
==Participants== | ==Participants== | ||
Line 106: | Line 142: | ||
* Philip Weber | * Philip Weber | ||
− | |||
− | |||
− | |||
− |
Latest revision as of 14:50, 15 September 2011
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.
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