Introduction
Welcome to the TidyBot++ documentation! This website hosts the hardware assembly guide and usage instructions for our open-source robot.
Kinova | Franka | ARX5 |
---|---|---|
![]() |
![]() |
![]() |
This table summarizes what is included in our open-source release:
Arm | Hardware design | Phone teleoperation | Policy learning |
---|---|---|---|
Kinova | ✔️ | ✔️ | ✔️ |
Franka | ✔️ | ||
ARX5 | ✔️ | ✔️ | |
xArm | ✔️ | ||
UR5 | ✔️ | ||
ViperX | ✔️ |
In the sections below, we describe each of these components in more detail.
Hardware design
Our open-source robot is highly customizable, having been designed from the ground up to maximize research productivity. To accommodate diverse research needs, we provide three reference designs of different sizes (shown in the photos above). These designs can be used directly or serve as starting points for further customization.
The following table summarizes the main differences between the three designs:
Design | Intended use | Dimensions | Weight | Battery capacity | Runtime |
---|---|---|---|---|---|
ARX5 | ~5 kg arm (ARX5, ViperX) |
40 x 44 x 37.5 cm | 26 kg | 288 Wh | 4.5 hr |
Kinova | ~10 kg arm (Kinova, xArm) |
50 x 54 x 37.5 cm | 34 kg | 768 Wh | 8 hr |
Franka | ~20 kg arm (Franka, UR5) |
50 x 54 x 44.5 cm | 45 kg | 2160 Wh | 8 hr |
Note
The dimensions (W x L x H) and weight are for the mobile base (arm not included). The capacity and runtime are for the camping battery, which powers the mounted arm and onboard computer.
Below is a size comparison of the three different frame designs:
We also provide mounting instructions for three other arms on the Arm mounting page. Each requires only minor modifications to the appropriately-sized reference design:
xArm | UR5 | ViperX |
---|---|---|
![]() |
![]() |
![]() |
To get started building your own TidyBot++ robot, please proceed to the BOM page to purchase the required parts. The entire assembly process typically takes around 10 hours, which can be completed over 1-2 days. If this is your first time, you might want to allocate a few extra days.
For those looking to customize our reference designs, we provide the relevant CAD files below:
Kinova | Franka | ARX5 | Caster module |
---|---|---|---|
![]() [Onshape] [STEP] |
![]() [Onshape] [STEP] |
![]() [Onshape] [STEP] |
![]() [Onshape] [STEP] |
Phone teleoperation
We open source our intuitive phone teleoperation interface, shown below (4x speed):
This interface was used in our paper experiments to collect data for policy training. Detailed instructions for using the interface can be found in the Usage guide.
We used the Kinova arm in our experiments, but the interface can be adapted for other arms as well by swapping out the arm controller. We did this for the ARX5 arm, as shown below (4x speed):
Policy learning
Using teleoperation data, we trained diffusion policies to execute tasks autonomously, as shown below (2x speed):
We have open sourced the full learning pipeline we used, including policy training and policy inference. Detailed instructions can be found in the codebase README. While we have only tested the pipeline with the Kinova arm, it should work with other arms as well with minimal modifications.
Contact
We hope this project can serve as a valuable resource for the robot learning community, and we're always looking to improve this documentation. If you have any questions, comments, or suggestions, please feel free to reach out by:
- Sending an email to Jimmy Wu
- Creating an issue on GitHub
- Filling out the anonymous feedback form