> For the complete documentation index, see [llms.txt](https://docs.hello-robot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hello-robot.com/stretch-4-quick-start-guide/setting-up-stretch.md).

# Setting Up Stretch

### Connecting to Stretch - Tethered

In order to work with Stretch's software, or to develop and test your own code, you'll first need to connect to the computer inside. The simplest way to do this is to directly connect a monitor, keyboard, and mouse to the robot using the exposed ports in the robot trunk.

<figure><img src="/files/nGTBU1JyDeuolx8x5HCY" alt=""><figcaption></figcaption></figure>

Stretch 4 contains a mini PC (model: Asus NUC 15) that can be accessed using the ports as shown above. Connect a monitor to the HDMI port, and a mouse and keyboard (we like to use a wireless dongle) to any of the USB ports, and make sure the robot is powered on (power button illuminated green). The Ubuntu desktop environment should appear on the connected monitor. Stretch 4 is running the Ubuntu 24.04 operating system.

The default user login credentials came in the box with the robot. By default, the robot is not configured to ask for your password on boot, but may ask for it later if the NUC goes to sleep.<br>

{% columns %}
{% column %}

<figure><img src="/files/rcE9BGKj6UQcw5PVUGsg" alt="robot trunk"><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/313MIbvfmskphTbjneSm" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Setting up Wi-Fi

One of the first things you'll probably want to do with Stretch is to connect it to the internet. While there is an Ethernet port in the trunk as well, its much more likely that you'll want to use Wi-Fi. A Wi-Fi connection will also enable you to use untethered connections to the robot in the future (more details below).

This is as simple as opening the Wi-Fi menu at the top right, selecting your network from the list, and inputting your network password if necessary. We recommend selecting the option to auto-connect to the network, in order to make working with the robot easier in the future.

<figure><img src="/files/qSCEv3zTgbaj0BofGpG5" alt=""><figcaption></figcaption></figure>

### Connecting to Stretch - Untethered

Once your robot is on the network, you can access it remotely from another computer. This is the preferred way to work with Stretch for most users. There are multiple options for achieving this, including remote desktop software like RustDesk or TeamViewer, SSH connections, Tailscale, ROS2 networking, PyZMQ, etc. For the purposes of this tutorial, we will focus on Ubuntu Remote Desktop Protocol (RDP) over a local network.

#### RDP with Remote Login

Ubuntu 24.04 ships with a built-in Remote Login feature that allows you to access your Ubuntu User Account remotely using Remote Desktop Protocol (RDP). Multiple users can even log into the robot at the same time for development, if necessary.

The official Ubuntu docs for setting up Remote Login are here: <https://help.ubuntu.com/stable/ubuntu-help/remote-login.html.ro>

You do not need a HDMI Dummy Dongle to use Remote Login. Note that Remote Login is different from Remote Desktop, which shares the same menu in Ubuntu's Settings. Remote Desktop does require a Dummy Dongle and requires you to remain logged in.

#### Robot setup instructions

The following instructions will walk you through setting up Remote Login.

{% hint style="info" %}
Please follow these steps while you are on the hello-robot or default user account - setting up Remote Login on multiple accounts might cause conflicts if the username-password pair is the same.
{% endhint %}

1. On your robot, navigate to Settings -> System -> Remote Desktop <br>

   <figure><img src="/files/Mlki2CgsXIwJ4qZPvDen" alt=""><figcaption></figcaption></figure>
2. Select the Remote Login tab, click Unlock and type in your password. Toggle to Enable Remote Login <br>

   <figure><img src="/files/McAgWA2t8ex7fLHv9LnH" alt=""><figcaption></figcaption></figure>
3. At the bottom of the window, enter a username and strong password combination that will be shared by all users remotely connecting to this robot; it’s a good idea to NOT use the password for your User Account because anyone on the network can connect to the login screen after setting up Remote Login. This password will be shared by all users for remote access to the Login Screen (not a particular user account).&#x20;
4. Retrieve the ip address of this robot using `hostname -I`.

{% hint style="warning" %}
It is important to follow your institution or organization's security best practices for setting up remote access and Ubuntu User Account Credentials.
{% endhint %}

#### Client Setup Instructions

On the computer you want to connect to the robot, follow the below instructions based on your operating system:

{% tabs %}
{% tab title="Linux Client Setup" %}

1. Run `sudo apt install remmina`
2. Open Remmina and click the "+" icon. Enter your robot's IP, username and password you configured in the previous step. Click Save and Connect to test your connection
3. Click the Toggle Dynamic Resolution button on the sidebar to make the RDP window use your monitor’s resolution.
4. Login to your User Account to start using your robot.
5. To configure audio: on the client, right click the Remmina connection -> Edit -> go to the Advanced tab -> Audio output mode. Choose Remote to play audio through the robot’s speakers. Local to play it using the client speakers. Then click Save.
   {% endtab %}

{% tab title="MacOS Client Setup" %}

1. Get the Windows App, offered by Microsoft Corporation, from the [Apple Store](https://apps.apple.com/us/app/windows-app/id1295203466)
2. Create a new Computer connection and change the PC name to the IP Address of the robot. You can add a Friendly Name to help identify the robot. Under Credentials, you can click to “Add Credentials” and save your password so you do not have to enter it every time you connect.

> Note: if you encounter a blank screen error on MacOS, export your connection and change the line that says `use redirection server name:i:1`, and re-import your configuration, as suggested in: <https://askubuntu.com/a/1528263>
> {% endtab %}

{% tab title="Windows Client Setup" %}

1. Open a Command Prompt window by pressing Win + R, then run  `mstsc`&#x20;
2. In the "Computer" field, type the IP address as retrieved from the robot above
3. Click "Connect". You may receive a certificate warning; click Yes to proceed.
4. When the login screen appears, enter your robot username and password
   {% endtab %}
   {% endtabs %}

You are now connected remotely to Stretch! This can be a convenient way to use and develop on the robot. To learn more about different ways of connecting to Stretch, see the full guide here: [Connecting to Stretch](/stretch4_docs/working-with-stretch/general_use/connecting-to-stretch.md).

## Turning off Gamepad Teleoperation

Out of the box, Stretch is configured to launch the gamepad teleoperation demo in the background at startup. While this is running, other code cannot use the robot. You will need to free the robot process so that your code can use it.

Run the below command in the terminal to kill the server and stop the startup script.

```bash
stretch_body_server --kill
```

You can also disable the autostart feature entirely. Search for "**Startup Applications**" from the Apps menu and uncheck the box for `hello_robot_xbox_teleop`.<br>

In the next section, we'll learn about Stretch's joints and sensors and the basic commands for controlling them.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hello-robot.com/stretch-4-quick-start-guide/setting-up-stretch.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
