Quick Start Guide
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.
Hello, Human!

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 before operating the robot.
Unboxing
If you need assistance unboxing the robot, please refer to the following video guide, or contact Hello Robot support for additional guidance.
Installing Stretch 4's Battery
If the battery or battery cable appear to be damaged, do not power on the robot and contact Hello Robot immediately for support.
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:
Stretch's battery can be removed by following those same steps in reverse.
Whenever Stretch is being transported by car, carried by hand, or shipped, the battery must be uninstalled and handled separately.
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.
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.
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).
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.
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.
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 below for instructions). It is perfectly fine to continue to use and develop on the robot while the charger is connected.

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.



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.
To start the teleoperation demo:
Find the gamepad controller that shipped with Stretch
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).

Make sure the small switch on the back of the controller is in the right-most position to enable wireless control.

Press the center "Connect" button
on the controller - it should flash momentarily, then illuminate solid and vibrate briefly upon connection.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!
Using Gamepad Teleop - Direct Control Mode
This image shows the mapping between the controller buttons and the robot joints:

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:

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.
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.
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.
Stretch has two different powered off states - Sleep, and
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.

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.
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).
Stretch is not waterproof! If transporting it outside, make sure to keep it safe from the elements.
In the next section, we'll learn how to connect to stretch and set it up for developing with success.
Last updated
Was this helpful?
