Angelos-Kard / thesis-project

0 stars 0 forks source link

Thesis Project

1. Introduction

The scope of this thesis project is to develop an app for Hololens 2, which will assist users who face vision impairment (partial or complete vision loss) t and would like to navigate in a specific area, unknown to them.

1.1. Current Solutions and State of the Art

2. Technology

The technology (devices, software), which was used during the development of the app is:

2.1. Hololens > Spatial Mapping

...

2.2. Hololens > Spatial Audio

...

2.3. Hololens > Voice Input

...

2.4. Unity > Raycast

...

3. Analysis Phase

...

4. Development Phase

...

4.1. Voice Commands

Voice Command Description
Scan 9 rays are casted from multiple positions (Raycasts Origin Point), as they are displayed in the image:
The first row is placed at the height of user's gaze. The distance between each Origin Point with its adjacent ones is 0.5 units[^4.1].
When a ray hits the mesh[^4.2] of the room, then an alert box is placed at the hit point in order to alert the user for an obstacle. One alert box correspond to each raycast. If the ray doesn't hit the mesh within 5 units[^4.1], then its alert box is deactivated.
If the user uses the command again, the alert boxes are moved to the new hit points.

Note: If the user turns his gaze, the alert boxes stay in their positions. For the alert boxes to follow the movement of the user's head, use the command Continuous Mode.
Stop All alert boxes are deactivated.
Continuous Mode When this mode is activated, then the rays (which have been selected to be activated for this mode) are casted in each frame. The alert boxes are placed on the hit points. Since the rays are casted in each update, this means that the alert boxes follow the movement of user's head.
Using the same command, the mode is deactivated.

Note: For now, only one ray is casted in this mode at the height of user's gaze.
Hands Mode When this mode is activated, then, if the user place his hand in front of him, at the end of the pointer, which extends from his arm and works as a raycast, an alert box is placed in the hit point between the pointer and the mesh[^4.2].
If no point of the mesh is hit by the pointer, the alert box is deactivated. If the user uses the same command, the mode is deactivated.

Note: If the user does the pinch gesture, the sound of the alert box is temporarily muted. If the user "release" the gesture, the sound is unmuted.

[^4.1]: Unity doesn't have a specific unit of measurement for distances, so the generic term units is used. We can accept that: $1 unit \approx 1 meter$. [^4.2]: The mesh is retrieved from the spatial mapping.

5. How to use

6. Appendix