This issue is a proposal for a wear os application aimed at collecting the data from the device's accelerometer and gyroscope sensors with the purpose to create a custom dataset similar to the one we already have, but better.
The application will be used by some trusted users and should have a simple UI:
- the user selects from a modal button the action is about to record
- the app starts the recording process until the user stops it
- wait for 60s to remove the vibrations induced by the button press
- remove the last few samples to remove the vibrations induced by the button press
- the app asks the user for confirmation before saving the data
- the collected data is stored in a database or a file
- the app schedules a collection of other events later (30/40m after the end of this measure)
UI
idle state
The app is not recording any data and is ready for the user to start collecting some.
Display one button for each action. Each button has the time remaining for completion of that action (ex: 5/10min)
recording state
The app is recording some action data. Display a timer to let the user know how much time is passed and a button to stop the recording.
Show a dialog asking the user for confirmation before saving the data to a file.
App flow
- The app is in idle mode so no data is recorded; a task is scheduled to run every 30/40 minutes in the background to automatically collect events marked as other
- The user starts recording some action data
- if we are currently recording data in the background we need to stop and discard those samples
- switch the app to recording mode
- remove the schedule for background data recording
- The user stops recording some data
- ask for confirmation to save the data
- switch back to idle mode
- schedule the background data recording for the next 30/40 minutes
Actions
The hand-related actions that the app records are:
- hand-wash
- hand-rub
- eat
- brush teeth
- face-washing
- write
- type on the keyboard
- housework
Repetition
To obtain a balanced dataset each activity must be recorded for the same duration, 10 minutes a day is a good balance.
The app shows the remaining time for each activity for that day inside the action button; when the time is exceeded the user can still record that activity, but it UI will highlight the text so he knows it's done. At the end of the day, all the times are reset to 0. Some activities will be completed in one session, and others my not be completed, but it's accepted and it's the responsibility of the user to complete all the recordings for that day.
Save to a file
The recorded data can be stored inside a plain text file in .csv format; each line will have the form of:
timestamp, label, acc_x, acc_y, acc_z, gyr_x, gyr_y, gyr_z