YAM Ultra
YAM Ultra is the top-tier standard-form-factor YAM arm — same motor topology as YAM Standard and Pro, with the highest spec components.
For the full SDK reference and API documentation that applies to all YAM variants, see the YAM Arm Series page.
Specifications
| Parameter | Value |
|---|---|
| Price | $4,299 |
| Degrees of Freedom | 6 |
| Communication | CAN bus (1 Mbit/s) |
| Shoulder motors | 3× DM4340 |
| Elbow / Wrist motors | 3× DM4310 |
| Joint 1 range | -150° to +180° |
| Joint 2 range | 0° to +210° |
| Joint 3 range | 0° to +180° |
| Joint 4 range | -97° to +90° |
| Joint 5 range | -90° to +90° |
| Joint 6 range | -120° to +120° |
| Payload | TBD — see i2rt.com |
| Reach | TBD — see i2rt.com |
| Weight | TBD — see i2rt.com |
| Build / Materials | TBD — see i2rt.com |
API Usage
Pass ArmType.YAM_ULTRA (or the lowercase string "yam_ultra") to get_yam_robot():
from i2rt.robots.get_robot import get_yam_robot
from i2rt.robots.utils import ArmType, GripperType
robot = get_yam_robot(
channel="can0",
arm_type=ArmType.YAM_ULTRA,
gripper_type=GripperType.LINEAR_4310,
)Command line
python i2rt/robots/get_robot.py --arm yam_ultra --channel can0 --gripper linear_4310Control gains
Identical to YAM Standard and YAM Pro:
kp: [80.0, 80.0, 80.0, 40.0, 10.0, 10.0]
kd: [5.0, 5.0, 5.0, 1.5, 1.5, 1.5]
gravity_comp_factor:[1.0, 1.1, 1.1, 1.2, 1.0, 1.0]
grav_comp_kd: [0.1, 0.1, 0.1, 0.3, 0.05, 0.05]
coulomb_friction: [0.3, 0.3, 0.3, 0.06, 0.06, 0.06]Differences from Other YAM Variants
| Standard | Pro | Ultra | BIG YAM | |
|---|---|---|---|---|
arm_type | YAM | YAM_PRO | YAM_ULTRA | BIG_YAM |
| Motors | DM4340×3 + DM4310×3 | same | same | DM6248×2 + DM4340×2 + DM4310×2 |
| Joint 2 range | 210° | 210° | 210° | 180° |
| Joint 3 range | 180° | 180° | 180° | 173° |
| Default PD gains | identical | identical | identical | different |
| Build / repeatability | base | enhanced | top spec | rugged |
Summary: YAM Ultra ≈ YAM Pro with the highest-quality components. SDK-wise, code that runs on Standard/Pro runs on Ultra unchanged — only the arm_type argument differs.
Checking joint limits at runtime
Joint limits live in the MuJoCo XML (i2rt/robot_models/arm/yam_ultra/yam_ultra.xml) and are enforced automatically by the SDK with a 0.15 rad safety buffer. To check programmatically:
info = robot.get_robot_info()
print(info["joint_limits"])
# array([[lower limits, ...], [upper limits, ...]])See get_robot_info() on the YAM Series page for the full schema.
See Also
- YAM Arm Series — full SDK API and shared documentation
- YAM Standard, YAM Pro, BIG YAM — sibling variants
- Grippers