Skip to content

YAM Arm Series

✓ Python SDK✓ MuJoCo Sim✓ Gravity Compensation✓ Teleoperation

YAM (Yet Another Manipulator) is I2RT's flagship robotic arm — a 6-DOF, CAN bus–driven manipulator designed for real-world research and embodied AI data collection. The YAM family spans four tiers to match different reach, payload, and budget requirements.

Model Overview

ModelPriceNotes
YAM$2,999Standard research arm
YAM Pro$3,499Enhanced actuators
YAM Ultra$4,299Highest spec standard arm
BIG YAM$4,999Larger reach and payload
YAM Leader$2,999Teaching handle for teleoperation

Specifications

ParameterValue
Degrees of Freedom6
CommunicationCAN bus (1 Mbit/s)
Motor SeriesDM series brushless
Control ModesJoint position PD · Gravity compensation · Zero-gravity
SimulationMuJoCo (MJCF + URDF provided)
Safety400 ms motor timeout (configurable)
MountingTable-top (standard)

Grippers

YAM supports four interchangeable end effectors:

GripperDescription
crank_4310Zero-linkage crank design — minimizes total gripper width for tight workspaces.
linear_3507Lightweight linear gripper with DM3507 motor. Requires starting in the closed position for calibration.
linear_4310Linear gripper with the heavier DM4310 motor. Marginally more gripping force.
yam_teaching_handleLeader arm handle with a trigger for gripper and two programmable buttons. Used for teleoperation.
flexpoint_4310Adaptive compliant gripper engineered for extreme-condition grasping — conforms to irregular, fragile, and complex geometries where rigid grippers fail.

3D Model

The YAM URDF and MuJoCo XML are included in the repository:

i2rt/robot_models/arm/yam/
├── yam.urdf
├── yam.xml
└── assets/          # STL meshes (visual + collision)

Videos

🎬
Video — Coming Soon
YAM arm performing a pick-and-place task on a cluttered tabletop. Close-up of gripper engagement. 30–60 seconds.

Getting Started

  1. Install the SDK
  2. Set up CAN bus
  3. See YAM Arm API for the full Python reference
  4. Try the Quick Start
python
from i2rt.robots.motor_chain_robot import get_yam_robot
import numpy as np

# Connect to the arm (zero-gravity mode on by default)
robot = get_yam_robot(channel="can0", zero_gravity_mode=True)

# Read current joint positions
joints = robot.get_joint_pos()  # shape: (6,) radians

# Command a target configuration
robot.command_joint_pos(np.zeros(6))

Where to Buy

Visit i2rt.com or contact sales@i2rt.com.

Released under the MIT License.