Design Document

Architecture

The purpose of the Front End is to create a way to interact directly with two different software environments - a Virtual Reality Application and the Treadmill Control System. The Front End will be a two way communication system that will be able to display information to the user, as well as be able to allow the user to adjust the treadmill settings. As seen in the diagram, the Treadmill Control System is the centerpiece of the treadmill's architecture. It will directly interact with the Front End, the Virtual Reality Application, and an application to adjust the treadmill speed. The applications work together to set the proper settings for the actual treadmill. Using Vicon Software, the motion of the individual on the treadmill can be tracked and relayed through a VRPN interface back to the Treadmill Control System.

Zoomed-in View of Front End

Error - Reload Page

The Front End will divided into four different sections. The Patient Info section will hold all of the patient information and will interact directly with the VR App by sending a parameter for Eye Height to adjust the the projected virtual environment. The Virtual Environment section will send to which virtual environment to use to the VR App. The Tread Control section sends all of the treadmill parameters that are used operate the treadmill, and the Logging section specifies whether to enable or disable logging and sends the log name to the Treadmill Control App.

Decomposition

The control interface will be separated into three modules (layers):

  • Model - This module will be responsible for handling persistent data (i.e. session logs and saved settings). All read/write operations on the filesystem will go through this layer.
  • Controller - The controller will process user input and perform any necessary operations. This module will make use of the VRPN library to alter system parameters and to receive real-time updates from the treadmill.
  • View - The Front End will present the user with a list of modifiable system parameters and various statistics in an organized manner.

Detailed Module Definitions

  • Front End - A Graphical User Interface (GUI) will be used to represent the Front End, and will represent the four primary sections of the Front End as tabs: Patient Info, Virtual Environment, Treadmill Control, Log Data. The Patient Info tab will read data input from the user to store patient information. The user has the option to save the patient information to a file, and also has the option to load previous saved patient information. The Virtual Environment tab will provide a dropdown list of available virtual environments that it receives from the VR App and the interface will then send the selected file name back to the VR App to load the environment. The Treadmill Control tab will accept input values from the user and will send these to treadmill control application. The Treadmill Control tab also has the option to start and end mini-sessions. A mini-session records the number of steps a patient has walked, the elapsed distance, and the amount of time a patient has walked. The Log Data tab will allow the user to enable or disable logging and to specify a log name that can be used to record any updates sent to the Treadmill Control App. The Front Endwill be updated every time a new sample is received from the treadmill control application.

Detailed Data Definitions

A detailed guide to the parameters being sent and received to the Front End can be found here.

Design Decisions

Design the GUI to have four separate tabs. This was done to separate related and unrelated values from each other and to provide a more obvious relation between attributes. Various parameters only needed be set once, whereas others needed to be constantly changed, and this is was the design was based on.