> For the complete documentation index, see [llms.txt](https://docs.dobb-e.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dobb-e.com/software/running-the-robot-server.md).

# Running the Robot Controller

Code to start the camera stream publisher and robot controller. The code is useful for [Record3d](https://record3d.app)-based camera streaming, but can be adapted for other use cases.

## Getting Started

1. Clone repository onto your Hello Robot Stretch:

   ```bash
   git clone https://github.com/notmahi/dobb-e.git
   cd dobb-e/robot-server
   ```
2. Install required packages **on your root pip env** (where `hello_robot` package is installed):

   ```bash
   pip install -r requirements.txt
   ```

## Running

1. If you just turned on the robot, perform joint calibration on your Stretch by running the following in terminal:

   ```bash
   stretch_robot_home.py
   ```

   this only needs to be run once every time the robot is booted up.
2. In a separate terminal window, Run `roscore` on your Stretch within the conda/mamba environment `home_robot` on your Stretch

   ```bash
   mamba activate home_robot
   roscore
   ```
3. [Attach and set up iPhone on robot](/hardware/attach-camera-to-robot.md).
4. Change current working directory to this repository’s root folder (`cd ../robot-server`).
5. Run in terminal (not within the `conda` environment, but in the root pip environment):

   ```bash
   python3 start_server.py
   ```
