> 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/stretch4_docs/working-with-stretch/getting-started/quick-start-guide.md).

# Quick Start Guide

### Hello, Human!

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

Welcome to your new robot! Stretch 4 is a mobile manipulator - a robot consisting of a mobile base as well as an arm and tool, capable of both navigating and interacting with its environment. The lightweight and simplified design of Stretch is intended to facilitate friendlier interactions with people in human environments. Its compact footprint and slender manipulator have unique advantages for working in cluttered, real-world spaces, and a first-class sensor suite provides an unparalleled understanding of the world around it.

Whether this is your first robot or you're an experienced user, these introductory tutorials are a great way to gain an understanding of the unique elements of Stretch and how to begin working with it. We'll explore critical safety features, get familiar with the robot's joints and sensors, and run some out-of-the-box demonstrations of some of Stretch's key features. In this first tutorial, we'll learn how to safely turn on the robot and drive it around using the gamepad controller.

### Before You Begin

#### Safety

If Stretch is not used properly, it has the potential to cause harm. We strongly recommend that all users review the [Stretch 4 Safety Guide](https://docs.hello-robot.com/stretch-4-safety-guide/) before operating the robot.&#x20;

#### **Unboxing**

If you need assistance unboxing the robot, please refer to the following video guide, or contact Hello Robot support for additional guidance.

{% hint style="info" %}
Hello Robot **strongly recommends** that you retain all of Stretch's packaging materials, including the cardboard containers and any foam and plastic structures. These will be required if you ever need to transport the robot to a new location or return it to Hello Robot for repairs. Replacements can be obtained through Hello Robot support for the cost of materials plus shipping.
{% endhint %}

{% embed url="<https://vimeo.com/1205958774/cdff06759a>" %}

<details>

<summary>Unboxing Key Points</summary>

* Move the box around with a wheeled dolly, or carry it with at least two people.
* Open the box carefully from the labeled side, using an Xacto knife or box cutter to remove the tape.
* Pull on the robot mast to slide the whole structure out of the box.
* Lift the top foam block vertically off of the "Hat" structure.
* Use a 4mm Hex key to remove the four screws connecting the "Hat" to the top of Stretch. Make sure to support the "Hat" during this process, as it can fall when the final screw is removed. We recommend a second person assist with this step for maximum safety.
* Remove any blue protective film on the robot lidars and cameras.
* Pink clamps on the arm prevent motion of the shoulder during transit - snap them open as directed and remove them.
* An additional pink clamp locks the wrist and telescoping arm structure in place - open the clip that holds this structure together, then remove it from the wrist by depressing the pink quick-release button, and sliding it downwards.
* A velcro strap holds the bottom foam structure together - remove this along with the box on top of the base shell (if installed).
* Tilting the robot back slightly, remove the front half of the bottom foam block; then gently slide the robot forward to rest on the ground.

</details>

#### **Installing Stretch 4's Battery**

Stretch 4 uses a large LiFePO4 battery, which gives the product superior runtime (nominally 4-8 hours) and cycle life. Stretch's battery comes in a heavy protective metal case that keeps the battery safe from damage as well as acting as a significant ballast weight, adding to the robot's stability and ability to exert forces while completing tasks. As a lithium-ion battery, the battery must be shipped as "Dangerous Goods" and therefore must ship separately from the robot.

To unbox and install Stretch's battery, please refer to the following video guide:

{% embed url="<https://vimeo.com/1205958773/e858b9e383>" %}

<details>

<summary>Battery Installation Key Points</summary>

* Use a utility knife or box cutter to open the battery box, and lift the foam structure upwards.
* Rotate the battery so that it is oriented vertically, then remove the cinch strap.
* Remove the foam piece, and lift the battery out safely using the attached handles.
* Remove Stretch's top shell by lifting upwards sharply, and set aside.
* Align the battery between the two clamp connections, and slide into place. When properly aligned, the battery should drop downwards a few millimeters and no longer slide in any direction.
* Close the two clamp connectors to secure the battery in place. Then plug the battery cable into the battery connector.
* Replace the top shell over the battery and confirm that it is properly seated in place.

</details>

{% hint style="danger" %}
**If the battery or battery cable appear to be damaged, do not power on the robot and contact Hello Robot immediately for support.**
{% endhint %}

Stretch's battery can be removed by following those same steps in reverse.&#x20;

{% hint style="warning" %}
**Whenever Stretch is being transported by car, carried by hand, or shipped, the battery must be uninstalled and handled separately.**
{% endhint %}

#### Installing the Stretch Gripper

Stretch 4 comes equipped with a quick-change end effector, which allows you to quickly install and uninstall tools with no cabling. Hello Robot generally recommends doing this while the robot (or at least the end-of-arm system) is powered down, to reduce the risk of an electrical issue.\
\
To install the Stretch gripper:

* Align the gripper with the cutout in the wrist mounting plate
* Slide the gripper upwards until you hear a click, depressing the pink release button if needed.

{% embed url="<https://vimeo.com/1205961955?fe=ci&fl=sv&share=copy>" %}

#### Moving the Robot Shoulder while Powered Off

Stretch 4 has a mechanical brake on the lift joint that engages while the robot is powered off, preventing the arm from dropping due to gravity. If the arm needs to be repositioned while the robot is off, there is a brake release button located in the shoulder. Press and hold the button for at least four seconds - you will hear a click, and the arm will become backdrivable until the button is released. Please note that this function requires power, so the battery must be installed in order to utilize it.

{% embed url="<https://vimeo.com/1205963988>" %}

#### **Powering on the Robot**

To power on the robot, press the power button located in the trunk once, and it will illuminate green. The robot may take 20-30 seconds to fully boot, and you should hear the Ubuntu startup sound when it is complete (unless this is turned off in the settings).

{% embed url="<https://vimeo.com/1205966840>" %}

### **Safety Features**

Before you begin operating Stretch, there are some additional features that are important to understand for safe operation of the robot.

#### **Runstop Button**

The Runstop button is located on the side of the robot's head. Normally, this button will be steadily illuminated white. Pressing this button puts the robot into "runstop"; it interrupts the motion of the robot's primary joints during operation, causing it to stop moving and making all of these joints backdrivable. Just tap it, you'll hear a beep and the button will start flashing. You can now freely move the arm, lift, and wheels of the robot.

This can be useful if the robot makes an unsafe motion, or if you just want to roll the robot around or reposition its arm. To disable the Runstop, hold the button down for two to three seconds. After the beep, the button will illuminate steadily again and motion can resume.

{% columns %}
{% column %}
{% embed url="<https://vimeo.com/1205968902?fe=ci&fl=sv&share=copy>" %}
{% endcolumn %}

{% column %}
{% embed url="<https://vimeo.com/1205968903?fe=ci&fl=sv&share=copy>" %}
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
The Runstop button is the easiest way to cancel an unexpected or undesired movement of the robot. If you're ever surprised or made uncomfortable by Stretch moving during these tutorials, just press the button and the robot will immediately pause, preventing collisions and allowing you to figure out what went wrong.&#x20;
{% endhint %}

Some of Stretch's joints can be configured in software to hold their position when runstopped, rather than to become backdrivable. This is useful for contexts where losing motor power may become inappropriate - for example, when holding a large payload with the wrist pitch and gripper motors. <br>

#### **Battery Indicator Lightbar**

The battery indicator lightbar on the side of Stretch's head provides a simple way to quickly ascertain the robot's battery level. Eight LEDs display the robot's current state of charge from 0 to 100%. Hello Robot generally recommends placing the robot on its charger once the charge has reached \~25%, to minimize the chance of accidentally running the robot out of battery (see [#power-management](#power-management "mention") below for instructions). It is perfectly fine to continue to use and develop on the robot while the charger is connected.<br>

<figure><img src="/files/GGYlCcqFRv04EBuAxVV0" alt="" width="375"><figcaption><p>Stretch battery indicator displaying full charge (8/8 LEDs illuminated)</p></figcaption></figure>

When the robot Runstop is active, the battery indicator will flash at \~1 Hz. When the robot battery charger is connected, the battery indicator will slowly strobe to indicate charging.

#### Guarded Contact

Stretch has a built-in contact detection system called Guarded Contact on the base, lift and arm motors, designed to limit unwanted forces that Stretch could apply to a person or its environment. This system sets a threshold of how strongly Stretch can exert its motors, and uses current sensing to determine if actuator effort exceeds this threshold during joint motion. If a strong force is detected, the safety controller for the joint is temporarily enabled, making the joint backdrivable and typically causing a small bounce-back behavior. These thresholds can be tuned or configured depending on the robot's application and the robot's current task.<br>

{% columns %}
{% column %}

<figure><img src="/files/RKD1j4cmCLFb1kdpGodG" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/b6lPggPHQD0gYD2Pb2jE" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

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

### **Gamepad Teleoperation**

Teleoperation using an Xbox-style gamepad controller is one of the easiest ways to operate and get familiar with Stretch. The robot comes ready to drive out-of-the-box using the included gamepad controller.&#x20;

To start the teleoperation demo:

1. Find the gamepad controller that shipped with Stretch
2. Plug the USB dongle for the controller into one of Stretch's USB ports (we typically recommend the port in the top of the head, to reduce the risk of an accidental collision with the environment).<br>

   <figure><img src="/files/2rWwo7kLLSNM1CIGbRhh" alt="" width="188"><figcaption></figcaption></figure>
3. Make sure the small switch on the back of the controller is in the right-most position to enable wireless control.

   <figure><img src="/files/In7sWNMDJ1CTU1QEqp4Y" alt="" width="188"><figcaption></figcaption></figure>
4. Press the center "Connect" button <img src="/files/TwJMP5OB7d1KnXLnc4WU" alt="" data-size="line"> on the controller - it should flash momentarily, then illuminate solid and vibrate briefly upon connection.
5. Make sure the space around the robot is clear. Hit the Home robot button to the right of the center button. The robot will begin its homing routine, finding the zero position of all its joints. Be careful not to interfere with these movements, as it may cause the zero position to be set incorrectly. When this procedure is completed (\~30 seconds), the robot will beep once. Stretch is now ready to drive!

{% hint style="info" %}
If nothing happens when you hit the Connect or Home buttons, please see the Troubleshooting section below.
{% endhint %}

#### **Using Gamepad Teleop - Direct Control Mode**

This image shows the mapping between the controller buttons and the robot joints:

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

Here's a few things to try:

* Hold the Stow Robot button for 3 seconds. The robot will assume a stowed pose, with the arm low and the gripper tucked inside the robot's footprint. This position keeps the robot compact and its center of gravity low, so we recommend it when driving the robot base.
* Practice driving the robot around using the left joystick for translation and bumpers for rotation.
* While driving the omnibase, hold down on the left trigger to reduce speed. The trigger is analog, so top speed will be reduced proportional to how far the trigger is depressed.
* Practice positioning the arm using the Lift and Arm controls on the D-pad, and the left trigger if desired.
* Practice positioning the Wrist Yaw and Pitch using the right joystick.
* Try pressing the Runstop button while moving the robot, then reset it by holding the button down for 2 seconds. You can always use this as the safest way to pause the robot if any unwanted behavior occurs.
* Holding down the right trigger modifies the behavior of some of the gamepad buttons. Try holding the right trigger and then pressing the bumper buttons to control the Wrist Roll instead of Omnibase Rotation.
* Gamepad teleop comes with a few preset Speed and Strength options - these control the top speed of the robot joints and the amount of force the robot can apply before Guarded Contacts are triggered. While holding the right trigger, press A to cycle through the Speed presets, or B to cycle through Strength presets. The robot should use the speaker to state the current preset being used.
* Stretch can operate in either a right-handed or left-handed mode, switching which side of the arm  the gripper is offset on. To swap between these quickly, hold the right trigger and then press the Home Robot button.
* Try utilizing all of these controls to grasp an object from the ground or a countertop. Hold the A button to close the gripper, or the B button to open the gripper.
* Try delivering an object to a person.
* Try a task that requires you to use two or more of the robot's joints at once, like opening a door or cabinet.

Once you have explored all of the "Easy Mode" teleoperation mapping, you can press the Y button to switch to the second gamepad teleop mode - Flying Gripper

#### Using Gamepad Teleop - Flying Gripper Mode

In Flying Gripper mode, you simply control the position and orientation of the robot's end effector, and the robot uses inverse kinematics to decide how to move its body to create the proper motions. In this mode, the button mapping is described below:

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

* Use the right stick to point the robot's gripper in a direction, then hold up on the left stick. The gripper should travel directly in the direction the fingertips are pointing - moving any of the robot's joints in order to make this happen.&#x20;
* Move the left stick left and right, and the gripper will move orthogonally to the direction it is pointing.
* Pull the left stick backwards, and the gripper will move directly away from the direction it is pointing.
* Try opening the gripper (using the B button) and then pointing it directly at an object. Use the left stick to drive the robot gripper directly towards the object to pick it up.
* The same modifiers for left/right handed switching, as well as Strength and Speed settings, still apply in this mode.&#x20;
* For some types of tasks, you might prefer to switch back and forth between modes. Pressing Y will return you to the original direct control mode.

### Power Management

#### Shutting Down Stretch

Stretch can be powered down with a single press of the power button in the trunk. The button will illuminate Red. The robot PC should initiate a Safe Shutdown procedure and may remain powered for up to 60 seconds before completely depowering.&#x20;

Stretch has two different powered off states - Sleep, and&#x20;

#### **Charging Stretch's Batteries**

Stretch comes with a 36V battery charger that connects to standard wall power and can be used to charge the robot's LiFePO4 battery. The battery charger can be connected whether or not the robot is powered off or on. An onboard Battery Management System maintains the state of charge and manages long-term battery health.

To charge Stretch's battery, connect the battery charger to power, then plug the charger into the barrel jack port located in the robot trunk. Make sure it is plugged in fully and firmly. If Stretch is powered off (or powered on but not drawing much current), it should take approximately two hours to charge the battery near full. It is entirely possible to keep the robot on and even develop on it while the battery is charging, though care should be taken if the mobile base is in use to ensure that the connection does not become loose or unplugged.<br>

<figure><img src="/files/0BPeJN5JecTPd7O1NUHW" alt="" width="270"><figcaption></figcaption></figure>

{% hint style="danger" %}
If you also own an older version of Stretch (1-3), do **not** interchange the two chargers! Only charge Stretch 4 with the included charger that comes with the robot, and do not use this charger with other equipment.
{% endhint %}

### Moving Stretch

Stretch can be easily transported between different rooms, buildings, or research sites. Here are some suggestions for moving Stretch around more easily:

* Over reasonably short distances, backdriving Stretch is the easiest approach. With the robot runstopped or powered down, simple grab the robot by the mast and push it around to where you need to go.
* Over moderate distances or more irregular terrain, we recommend the use of a hand truck. For extra protection, place the robot base into the foam block that it was shipped in, and use the truck to move it around securely.
* Stretch can be transported by car. We recommend packaging Stretch in its original shipping box and hardware, which are designed to protect the sensors from incidental damage. The box fits in most mid-size hatchback vehicles with the back seats folded down (eg Kia Niro, Toyota RAV4).

{% hint style="warning" %}
Stretch is not waterproof! If transporting it outside, make sure to keep it safe from the elements.
{% endhint %}

<details>

<summary>Quick Start Troubleshooting</summary>

* **Gamepad Controller won't connect (center button flashing)**
  * Verify that the USB dongle is connected to a robot USB port, and that its LED is also flashing
  * Verify that the switch on the back of the gamepad is in the rightmost position
  * Try the following steps to force a connection:
    * Do not touch any buttons on the gamepad until its LEDs stop illuminating (10-20 seconds)
    * Press the small button on top of the USB dongle - it should start flashing at a higher speed
    * Without touching any other buttons on the gamepad, hold down the center button for several seconds, until the center button LED also begins flashing at a higher speed
    * Leave the hardware in this state until both stop flashing and the controller vibrates briefly to indicate a connection has been made. This can take up to two minutes.

</details>

In the next section, we'll learn how to connect to stretch and set it up for developing with success.


---

# 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/stretch4_docs/working-with-stretch/getting-started/quick-start-guide.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.
