Skip to content

Official Hardware Codebase for the Paper "BEHAVIOR Robot Suite: Streamlining Real-World Whole-Body Manipulation for Everyday Household Activities"

License

Notifications You must be signed in to change notification settings

behavior-robot-suite/brs-ctrl

Repository files navigation

BEHAVIOR Robot Suite: Streamlining Real-World Whole-Body Manipulation for Everyday Household Activities

We introduce the BEHAVIOR Robot Suite (BRS), a comprehensive framework for learning whole-body manipulation to tackle diverse real-world household tasks. BRS addresses both hardware and learning challenges through two key innovations: JoyLo and WB-VIMA.

JoyLo provides a general, cost-effective approach to whole-body teleoperation by integrating multifunctional joystick controllers mounted on the ends of two 3D-printed arms. The mounting arms serve as scaled-down kinematic twins of the robot’s arms, enabling precise bilateral teleoperation. JoyLo also inherits key advantages of puppeteering devices, including intuitive operation, reduced singularities, and enhanced stability. By grasping the JoyCon controllers attached to the kinematic-twin arms, users can operate the arms, grippers, torso, and mobile base in unison. This significantly accelerates data collection by allowing users to perform bimanual coordination tasks, navigate safely and accurately, and guide the end-effectors to effectively reach various locations in 3D space.

Getting Started

Tip

🚀 Check out the doc for detailed installation and usage instructions!

To control the Galaxea R1 robot, simply do

from brs_ctrl.robot_interface import R1Interface
from brs_ctrl.robot_interface.grippers import GalaxeaR1Gripper

# Initialize the robot interface with grippers
robot = R1Interface(
    left_gripper=GalaxeaR1Gripper(
        left_or_right="left",
        gripper_close_stroke=0.0,
        gripper_open_stroke=100.0,
    ),
    right_gripper=GalaxeaR1Gripper(
        left_or_right="right",
        gripper_close_stroke=0.0,
        gripper_open_stroke=100.0,
    ),
)

# Control the robot
robot.control(
    arm_cmd={
        "left": left_arm_action,  # np (6,)
        "right": right_arm_action,  # np (6,)
    },
    gripper_cmd={
        "left": left_gripper_action,  # float between 0.0 and 1.0
        "right": right_gripper_action,  # float between 0.0 and 1.0
    },
    torso_cmd=torso_action,  # np (4,)
    base_cmd=mobile_base_action,  # np (3,)
)

To run real-robot JoyLo control, simply run

python3 scripts/joylo/real_joylo.py

To run data collection, simply run

python3 scripts/data_collection/start_data_collection.py

Check out Our Paper

Our paper is posted on arXiv. If you find our work useful, please consider citing us!

@inproceedings{
jiang2025brs,
title={{BEHAVIOR} Robot Suite: Streamlining Real-World Whole-Body Manipulation for Everyday Household Activities},
author={Yunfan Jiang and Ruohan Zhang and Josiah Wong and Chen Wang and Yanjie Ze and Hang Yin and Cem Gokmen and Shuran Song and Jiajun Wu and Li Fei-Fei},
booktitle={9th Annual Conference on Robot Learning},
year={2025},
url={https://openreview.net/forum?id=v2KevjWScT}
}

License

This codebase is released under the MIT License.

About

Official Hardware Codebase for the Paper "BEHAVIOR Robot Suite: Streamlining Real-World Whole-Body Manipulation for Everyday Household Activities"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages