Skip to content

OminousIndustries/R1-Open-Social-Robot

Repository files navigation

R1 DIY Robot Kit

Assembled R1 DIY Robot Assembled R1 DIY Robot with face projection, ready for interaction.

Welcome to the R1 DIY Kit! These files contain every step needed to manufacture and build your very own R1 robot. This DIY kit is based on the original R1 design, with the same internal design and hardware.

While most instructions are provided in video format, important details can also be found in the accompanying README PDFs throughout the repository. Please read the provided documentation carefully to ensure successful assembly and setup.

Table of Contents

  1. Gather Required Parts
  2. 3D Printing Files
  3. Build Instructions
  4. Software Setup
  5. Unity Project Files
  6. Connecting to a Local LLM

1. Gather Required Parts

Before you begin building, print the files and gather all the necessary parts. Here is the bill of materials with links to the components you will need to purchase:


2. 3D Printing Files

The robot's frame is 3D printed. All the necessary STL files and instructions for printing are included in the following folder. Please refer to the "Printing Guide PDF" for important details about printing the pieces:


3. Build Instructions

Once you have printed all the parts, it's time to assemble the robot. Follow the video link and refer to the provided assembly guide for detailed instructions:


4. Software Setup

After building the robot, the next step is setting up the software. Most of the instructions are in video format, and the following index outlines the sequence to follow for setting everything up.

Pre-Setup

Start by setting up the required API keys. You will need both an OpenAI API Key and an Azure Key.


Robot Computer Setup

Next, set up the robot's computer to run the required software. Follow the instructions in the video below:


Installing Unity

You will need to install a specific version of Unity to configure the robot. This guide covers installation for both Mac and Windows users:


Starter Mode for Mac

Mac users should follow the instructions in the video below to set up Starter Mode for the robot:


Starter Mode for Windows

Alternatively, Windows users can follow this video for setting up Starter Mode:


Face Adjustment

Once the software is set up, you may want to adjust the robot's projected face. This video provides a comprehensive overview of how to make these adjustments. Make sure to read the accompanying PDF for important projector notes:


Pausing the Robot

To learn how to pause and resume the robot while it is running, refer to the following video:


Custom Faces

You can add custom faces to the robot. Instructions are available for both Mac and Windows users. Additionally, the face template images referenced in the instructional videos are included:


Arduino Setup

The Arduino controls the head movement of the robot. Use the following instructions to set it up, and make sure to use the provided circuit diagram and Arduino sketches:


Advanced Mode

For more advanced functionality, such as modifying the robot's mouth sprites and other detailed features, follow the instructions in the advanced video below:


5. Unity Project Files

The R1 robot has two versions of the Unity project, each with different mouth sprites. The r1-starter-mode-f contains female mouth sprites, while r1-starter-mode-m contains male mouth sprites. You can choose which one to use based on your preference:


6. Connecting to a Local LLM

The R1 robot can be powered by a locally hosted language model, providing real-time conversational abilities. These instructions cover setting up the robot to work with Oobabooga's text-gen-webui as the backend for a Local LLM.

This setup allows the robot to connect to and be powered by a locally hosted AI model of your choosing.

Step-by-Step Instructions

  1. Setting Up the Unity Project:

    • Navigate to the LocalLLM folder, which contains two scripts: RoboLogic.cs and RoboListen.cs.
    • In your Unity project, open the existing RoboLogic.cs and RoboListen.cs scripts.
    • Replace the contents of these scripts with the versions from the LocalLLM folder. This will configure the robot to communicate with the local LLM setup.
  2. Starting the Web UI with the Correct Flags:

    • Launch the web UI with the --listen flag to allow external connections.
    • In the web UI, go to the Session tab and select the OpenAI extension. Click Apply and restart the session.

    Session Tab - OpenAI Extension

  3. Load Your Chosen Model:

    • Load the AI model you wish to use as you normally would within the web UI.
    • Ensure that the machine running the web UI is configured to allow communication on port 5000, which is required for the robot to connect.

    For more detailed information on setting up the OpenAI API within the text-gen-webui, refer to this guide.

  4. Configuring Unity for Local LLM Connection:

    • In Unity’s Inspector pane, enter the name of the character you wish to communicate with in the web UI, as well as the endpoint URL for the web UI machine.

    Local LLM Connection Settings in Unity Inspector

    • To find the character name in the web UI, go to Parameters > Chat > Character.

    Character Selection in Web UI

  5. Testing the Connection:

    • If everything is configured correctly, you should see the LLM processing requests from the robot in the terminal where the web UI is running.

    Terminal Output on LLM Machine


If you have any questions, feel free to reach out to me. Enjoy building your R1 robot, and remember to follow all safety guidelines when working with tools and equipment!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published