This repository contains the data processing, training and evaluation code for EgoVerse.
egomimic/trainHydra.py: Main training script, powered by Pytorch Lightning and Hydra (DDP supported)egomimic/hydra_configs: Train configs for each algorithmegomimic/algo: Algorithm code: ACT, EgoMimic (HPT based), Piegomimic/scripts/aloha_process: Process raw aloha hdf5 to zarr/lerobotegomimic/scripts/aria_process: Process aria vrs to zarr/lerobot
if uv not installed
curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="/path/to/flash/storage" sh
git clone git@github.com:GaTech-RL2/EgoVerse.git
cd EgoVerse
uv venv emimic --python 3.11
source emimic/bin/activate
uv pip install -r requirements.txt
uv pip install -e .
uv run pre-commit install
git clone --recursive git@github.com:GaTech-RL2/EgoVerse.git
cd EgoVerse
conda env create -f environment.yaml
conda activate emimic
pip install -e .
pre-commit install
Download the AWS cli
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install -i ~/aws-cli -b ~/bin
Set up your AWS keys to access our cloud storage
aws configure
AccessKeyId: AKIAYDKH4BNCAYHE5NG2
SecretAccessKey: rGjT6NSh55YiB9MC9EyNGpVy8qcaTn4i19OmkhRW
Default region name: us-east-2
Default output format:
./egomimic/utils/aws/setup_secret.sh
setup_secret.sh will allow your current env to download data from cloudflare.
Set git config --global submodule.recurse true if you want git pull to automatically update the submodule as well.
Set your wandb project in egomimic/hydra_configs/logger/wandb.yaml
For the integrated hydra submitit plugin to work, make the following modification...
/path/to/your/venv/emimic/lib/python3.11/site-packages/hydra_plugins/hydra_submitit_launcher/submitit_launcher.py
Change line 144 to
jobs = executor.map_array(self, *zip(*job_params))
return [asyncLauncher() for j in jobs]
class asyncLauncher:
def __init__(self):
self.return_value = 0
I wanted to package this change nicely, but the hydra package is built very weirdly.
Visit https://partners.mecka.ai/egoverse to view our entire dataset in the web!
To visualize data programatically see zarr_data_viz.ipynb
To programatically view the SQL table of all episodes + metadata see sql_tutorial.ipynb
While our training pipeline automatically downloads data, you can manually download data via sync_s3.py
For example, to download all our flagship Aria fold clothes data...
python egomimic/scripts/data_download/sync_s3.py \
--local-dir <local directory> \
--filters aria-fold-clothes
Basic training run (robot BC)...
python egomimic/trainHydra.py --config-name=train_zarrFor full instructions on training see training.md
See embodiment_tutorial.ipynb as reference to write a conversion script for your own data.