Home

Awesome

EgoMimic Hardware Repository

This repository contains the hardware setup for EgoMimic: Scaling Imitation Learning via Egocentric Videos. To train imitation learning policies, or to collect human embodiment data via Aria glasses, see the main EgoMimic repo.

Useful Links


Meet Eve

Eve

Eve is the robot behind EgoMimic, built to learn from Egocentric Videos Effortlessly.

This codebase interfaces with all of Eve's hardware components, including the ROS setup to control ViperX arms and support Aria Glasses integration in ROS. It also contains scripts for collecting teleoperated demonstrations on Eve. We build off of the Aloha ROS2 implementation from Trossen Robotics.


Software Support

Structure

Install instructions

Build all of this without a conda environment in ~/interbotix_ws

  1. Set up ROS2, interbotix packages, and realsense cameras via the (Trossen Instructions). But critically under the step for Aloha Software Installation, make sure to clone this repo instead
IGNORE: git clone https://github.com/Interbotix/aloha.git
git clone git@github.com:SimarKareer/eve.git
  1. Setup Aria Glasses Aria Instructions. In brief you just need to run
python3 -m pip install projectaria_client_sdk --no-cache-dir
aria-doctor
aria auth pair (then open mobile app and approve)
  1. Install extra packages
pip install opencv-python fastplotlib==0.1.0a13 glfw==2.6.2 pyg==0.1.14 dm_env h5py ipython
  1. Add permissions on video cams
sudo usermod -a <user> -G video
  1. Add aliases to ~/.bash_aliases
alias setup_eve="source /opt/ros/humble/setup.bash && source ~/interbotix_ws/install/setup.bash"
alias ros_eve="ros2 launch eve aloha_bringup.launch.py"
  1. Restart machine

  2. If facing issues, build realsense ros package from scratch, I used this commit

Tips

Usage

To start up ROS run

setup_eve
ros_eve

To ensure all camera sensors are functional launch Rviz

rviz2

Occasionally Aria fails to connect, simply restart the computer and it should connect fine.

Data Collection / Teleop Scripts

For data collection and teleop we'll continue to use the base python installation (no conda env)

Teleoperation

python scripts/dual_side_teleop.py --arm <left, right, both>

Data Collection

First, define a task in eve/constants.py. After adding this you'll need to rebuild via colcon build. Then run

python scripts/dual_side_teleop.py --arm <left, right, both> --task_name <task name>