Bimanual UR7e Teleoperation

A leader-follower teleoperation station for two Universal Robots UR7e arms, used to collect demonstrations, train policies, and run them on hardware.

Between May and August 2026, in the Max Simchowitz Lab at CMU, I built a bimanual teleoperation station around two Universal Robots UR7e arms. A person moves a pair of Dynamixel-based leader arms, and the UR7e arms follow. The leader arms have gravity compensation, so they feel weightless and hold still when released, and force feedback, so the operator feels resistance when the follower arms make contact. The same station is used for three jobs:

  • Data collection. Teleoperated demonstrations are recorded as training data.
  • Behavior cloning. Policies are trained on those demonstrations.
  • Policy execution. Learned policies run on the same hardware, and I evaluated Pi0.5 models on it.

What I worked on

  • Leader arms. I spent a lot of time with the Dynamixel servos that make up the leader arms, and designed parts for them in CAD.
  • Software stack. The control and data code is in Python and ROS 2, with ZeroMQ for networking between processes.
  • Robot configuration. I set up and configured the Universal Robots arms.
  • Simulation. I built a MuJoCo simulation of the UR7e arms.

The leader-arm design and teleoperation software build on the open-source FACTR Teleop system from CMU, adapted here for the UR7e arms.