This repository is the implmentation of data collection application for project Learning Embodied Visual Exploration from Humans.
Psiturk Habitat Sim is a web-based application to collect human demonstrations for embodied tasks at scale by connecting Habitat simulator to Amazon Mechanical Turk users. Here's the deck of slides explaining the system design of the application.
This project is developed with Python 3.6. If you are using miniconda or anaconda, you can create an environment:
conda create -n venv python3.6
conda activate venv
conda install --file requirements.txt
Like Habitat-Lab, we expect a data
folder (or symlink) with a particular structure in the top-level directory of this project.
In the pick-and-place task, an agent must execute an instruction of the form Place the <object> on the <receptacle>
. The agent must explore and navigate to the object, pick it up, explore and navigate to the receptacle, and place the object on it. The assets needed to run data collection for Pick and Place task can be downloaded here. Extract the contents of data.zip
to psiturk-habitat-sim/data
.
- Update the paths in
nginx.conf
to yourpsiturk-habitat-sim
copy (lines 18, 24, and 30). - Copy/move the
nginx.conf
file to/etc/nginx/sites-available/some-unique-config-name
- Run
to enable the new nginx server conf
ln -s /etc/nginx/sites-available/name-of-your-config /etc/nginx/sites-enabled/ service nginx reload
- Configure psiturk server port in
config.txt
(default: 8080), point to the same port innginx.conf
- To start the psiturk server run:
cd /path/to/psiturk-habitat-sim psiturk -e "server on"
- Open
http://localhost:8000/
orhttp://localhost:YOUR_ENDPOINT_PORT/
in your browser to access psiturk interface. Note that you must uselocalhost
instead of127.0.0.1
as the compiled habitat-sim application will attempt to load scene data from S3 otherwise.
Experiment config can be modified by making changes to config.txt
. You can find the documentation of psiturk configuration files here.
- To launch and manage HITs refer to psiturk documentation.
-
To collected data for successful HITs refer to psiturk documentation.
-
Collected data can also be downloaded using the sample script from
scripts/data/download_hit_data.py
. Run the following command to download collected data:python scripts/data/download_hit_data.py --db_path <db_name> --dump_path /path/to/dump/data/ --mode <psiturk_server_mode>
--mode
- Psiturk server mode. Refer the documentation