A toolkit for experimenters to conduct pilot studies more efficiently with AR smart glasses (Optical See-Through Head-Mounted Displays)
- If you find any issues, please create GitHub issues
@article{janaka_pilotar_2024,
title = {{PilotAR}: {Streamlining} {Pilot} {Studies} with {OHMDs} from {Concept} to {Insight}},
shorttitle = {{PilotAR}},
url = {https://doi.org/10.1145/3678576},
doi = {10.1145/3678576},
language = {en},
journal = {Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies},
author = {Janaka, Nuwan and Cai, Runze and Ram, Ashwin and Zhu, Lin and Zhao, Shengdong and Kai Qi, Yong},
month = sep,
year = {2024},
}
-
Demonstrating PilotAR: A Tool to Assist Wizard-of-Oz Pilot Studies with OHMD, UbiComp/ISWC'24
- Camera Ready PDF
- Initial contributors: @RenzoTsai, @flairekq, @tsy24, @janakanuwan, @wowsiddanth
- Documentation: here
- See
Sample Setup
in the documentation for the setup of the tool.
- See
- Tool usage: offline video
- Project folder (private access): here
- Version info
- A computer with
Windows
(10/11) ORMacOS
- For
MacOS
- Please install vb-cable to enable you to record your computer's sound.
- Give access to enable your terminal or IDE (e.g., PyCharm) Input Monitoring and Screen Recording in System Settings -> Privacy & Security.
- For
Windows
- Please enable Stereo Mix to allow you to record your computer's sound.
- Currently, the tool support HoloLens 2 device for first-person view (or webcam using
0
as the IP address). So, you need to know the smart glasses' IP address, username, and password. If you forgot, request a new pin via Windows Device Portal
- Install
conda
, if you haven't done it (e.g., Miniconda). - Create conda environment
woz
viaconda env create -f environment.yml
. - Activate
woz
environment viaconda activate woz
- Install VLC Player
- Install FFmpeg and add it to your environment path.
- For macOS, you can use
brew install ffmpeg
- For Windows, you may need to manually add it to the environment variable.
- See WOzTool usage: offline video
- Run
main.py
(e.g.,python main.py
via terminal) - You can set up the configurations by clicking
Setup
(e.g., sample setup).- The device configuration, including FPV, TPV, Woz Interface address, and recording sources, can be modified in
Devices
.- Enter your HoloLens' IP, Username, Password to the FPV's enter box. Then click
FPV
(blue button) to connect. - For the TPV, you can create a Google meet and paste the link to the enter box of TPV. Then click
TPV
(blue button) to open the link in browser. - Use your phone to join the Google Meet to provide a TPV.
- For the Woz interface, you can share this interface's window in Google Meet.
- Enter your HoloLens' IP, Username, Password to the FPV's enter box. Then click
- You can also set up the checklist by clicking
Checklist
. - To customize the
Annotations
for the pilot recording, you can clickCustomization
- The device configuration, including FPV, TPV, Woz Interface address, and recording sources, can be modified in
- To start the pilot study, you can click
Pilot
in the top panel.- In the GUI, you can modify the
Anticipated duration (in seconds)
,Participant & Session ID
. - You can then click
Start
to start one session. - Add annotations according to your study needs (e.g., Screenshots ->
shortcut key "5"
, Accuracy ->shortcut key "1/2"
by default) - Once you finish one session, you can click
Stop
. - You can modify the
Participant & Session ID
and clickStart
again to start new session.
- In the GUI, you can modify the
- You can then analyze the recordings after pilot. The program will automatically pop up the analyzer.
- You can also click the
Analyzer
in the top panel to open the analyzer's window.
- You can also click the
- To run PilotAR as an (independent) video analyzer/annotator, open the
Analyzer
, and then select theCreate new
option in the dropdown menu forParticipant & Session ID
.
- Open the browser and join a Google Meet (we suggest you save this link to the bookmarks).
- To minimize the typing in HL2, you can open the browser in computer (not HL2) and type IP address of HL2 to enter Windows Device Portal
- Then select
Virtual Input
and copy the Google Meet link on that input and send it to HL2.
- Turn on the Speaker and turn off the camera in the Google Meet.
- You DO NOT need to log into Google account to use Google Meet, but then need to type a name to join the meeting.
- Change the Google Meet layout to enable your PC's shared screen can be full-sized display on the HoloLens.
- Can use
Spotlight
andPin
functions on GoogleMeet to keep the required screens (e.g., shared, camera) in the center of the view.
- Can use
-
AttributeError: CFMachPortCreateRunLoopSource
- Follow this link to solve this problem
-
Unclear images in the Analyzer UI
- You can go to the file
tkvideoplayer.py
and the changeself._resampling_method: int = Image.NEAREST
toself._resampling_method: int = Image.BICUBIC
.
- You can go to the file
-
File is Missing on
Windows
- Virus guard (e.g., Microsoft Defender) blocks the customization file and will not run.
- Please need to allow the file in "Windows Security" / Antivirus software.
-
Issue with video playing in the Analyzer UI on
Mac M1 chip
- Need to install VLC player's Intel version (Enable Rosetta for your terminal).
-
Others, WOzTool-feedback
To run unit test cases, run python -m unittest
on the terminal
- Credits to @jianfch for Utilities/stable_whisper.py (code from https://github.com/jianfch/stable-ts)
- Credits to aiortc team for Utilities/WOz_video_streaming_server.py (code from https://github.com/aiortc/aiortc/tree/main/examples/webcam)
- In terminal,
pip install py2app
and runrm -rf build dist
. - Run
python setup.py py2app -A
. Note: Please run this command with conda environment activated. - Go to the
dist
and open the App. - If they are any issues with the App, right-click the App's icon, then select
Show Package Content
and go to theContent\MacOS
. You can clickmain
to run the program within the terminal.