All skills
OpenArm v1 in the simulation

Real physics, in this tab. Nothing to install and no account. The first run downloads the robot runtime, about 14 MB.

Bimanual arm · OpenArm v1

transfer red right to left tray

Pick up the red block with the right arm, hand it to the left arm, and place it in the left tray.

taught their robot this by typing a sentence. It ran successfully, so it was published. What you see is the same program running against the same physics.

transfer_red_right_to_left_tray.py

META = {"name": "transfer_red_right_to_left_tray", "description": "Pick up the red block with the right arm, hand it to the left arm, and place it in the left tray.", "params": {}}

def run(ctx, **params):
    scene = ctx.describe_scene()
    red = scene["objects"]["red_block"]["position"]
    tray = scene["fixtures"]["tray_left"]["position"]
    open_r = ctx.gripper_range("right")[0]
    closed_r = ctx.gripper_range("right")[1]
    open_l = ctx.gripper_range("left")[0]
    closed_l = ctx.gripper_range("left")[1]
    high = red[2] + 0.12
    ctx.gripper("right", open_r)
    ctx.move_to_point("right", [red[0], red[1], high])
    ctx.move_to_point("right", red)
    ctx.gripper("right", closed_r)
    ctx.move_to_point("right", [red[0], red[1], high])
    handoff = [tray[0], tray[1], tray[2] + 0.12]
    ctx.gripper("left", open_l)
    ctx.move_to_point("left", handoff)
    ctx.gripper("left", closed_l)
    ctx.gripper("right", open_r)
    ctx.move_to_point("left", [tray[0], tray[1], tray[2] + 0.06])
    ctx.gripper("left", open_l)
    ctx.move_to_point("left", handoff)
transfer red right to left tray — on the OpenArm v1 — BotCortex