For the complete documentation index, see llms.txt. This page is also available as Markdown.

Setting Up Stretch

This documentation is currently in beta. Please proceed carefully, and if you run into issues or need additional information, reach out to Hello Robot directly for support.

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.

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.

robot trunk

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.

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.

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.

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

  2. Select the Remote Login tab, click Unlock and type in your password. Toggle to Enable Remote Login

  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).

  4. Retrieve the ip address of this robot using hostname -I.

Client Setup Instructions

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

  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.

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.

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.

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.

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

Last updated

Was this helpful?