Architecture

The purpose of the IVERT Interface is to create a way to interact directly with two different software environments - a Virtual Reality Application and the Treadmill Control System. The interface 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.

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 GUI will present the user with a list of modifiable system parameters and various statistics in an organized manner.

Detailed Module Definitions

  • Graphical User Interface (GUI) - The interface will have five tabs: metadata, virtual environment setup, treadmill control, session control, and log control. The metadata tab will read data input by the user and save it to a file (which will later be used to store physical therapy session data). The virtual environment tab will provide a dropdown list of available virtual environments that it receives from the VR application and the interface will then send the selected file name back to the VR application. The treadmill control tab will accept input values from the user and will send these to treadmill control application. The session control tab will allow the user to view certain real-time statistics. The user interface will be updated every time a new sample is received from the treadmill control application. At this time, the interface will calculate the elapsed walking time, elapsed walking distance, and the total number of strides. The session control tab will also allow the user to end a mini-session and begin a new one. This will reset the elapsed walking attributes and will add a new section to the log file.

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 five separate tabs. This was done to separate related and unrelated values from each other and provide a more obvious relation between attributes and to separate the values only need to be set once from those that will be changed during the session.