Skip to content

YAM Cell

✓ Python SDK✓ Bimanual✓ Data Generation

YAM Cell is a complete bimanual teleoperation workstation built around two YAM leader arms and two YAM follower arms. It is designed for collecting high-quality manipulation demonstrations for training embodied AI models.

Mobile Variant

System Overview

The YAM Cell pairs leader arms (with teaching handles) and follower arms in a bilateral teleoperation loop. An operator moves the leader arms naturally; the follower arms mirror the motion in real time with configurable force feedback.

Operator ──► Leader (YAM + teaching handle)
               │  bilateral link (CAN bus)
             Follower (YAM + task gripper)  ──► Task workspace

Hardware Requirements

ComponentQtyNotes
YAM Follower arms2Any YAM tier
YAM Leader arms2Must use yam_teaching_handle gripper
CANable USB-CAN adapters4One per arm
Workstation PC1Ubuntu 22.04 recommended

CAN Bus Layout

Each arm requires a dedicated CAN channel. Assign persistent names using udev rules (see Hardware Setup):

ArmCAN name
Left followercan_follower_l
Right followercan_follower_r
Left leadercan_leader_l
Right leadercan_leader_r

Videos

🎬
Video — Coming Soon
Operator sitting in front of two YAM leader arms, controlling two follower arms picking objects. Side-by-side view of leader and follower workspace. 1–2 min demo.

Quick Start

1. Configure CAN IDs

Plug one CANable device at a time and assign each arm a persistent name:

bash
# Follow the instructions in:
doc/set_persist_id_socket_can.md

2. Verify connectivity

bash
ip a | grep can
# Expected:
# can_follower_r  UP
# can_follower_l  UP
# can_leader_r    UP
# can_leader_l    UP

3. Launch bimanual teleoperation

bash
cd /path/to/i2rt
source .venv/bin/activate
python examples/bimanual_lead_follower/bimanual_lead_follower.py

4. Enable synchronization

Press the top button on either teaching handle once to begin tracking. Press again to pause.

Control Reference

ActionResult
Move leader armFollower mirrors motion
Squeeze triggerFollower gripper closes
Top button (1×)Enable sync
Top button (2×)Pause sync
--bilateral_kp flagIncrease for more force feedback (default 0.2)

Bilateral stiffness

Start with --bilateral_kp 0.1 and increase gradually. Values above 0.3 make the leader arm feel noticeably heavy.

Data Logging

Trajectory recording is built into the example:

python
from i2rt.robots.motor_chain_robot import get_yam_robot
# See examples/record_replay_trajectory/ for full dataset collection pipeline

See Also

Released under the MIT License.