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

Robot Overview

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.

Stretch comes with a number of command line utilities that you can run by opening a Terminal window. Below, we will explore some commonly used CLI tools as a way of accessing Stretch's individual motors and sensors.

System Check

One of the most useful tools for Stretch is the System Check function. This checks out the state of Stretch's hardware, firmware, and software, and reports any errors or issues it can find. It is good practice to run this whenever you start using the robot, and can be

To run a system check, open a Teminal and enter:

stretch_system_check

If all checks pass, your robot is ready to go. Use stretch_about to print robot identity and configuration, and stretch_params to inspect all robot parameters.

Homing

If you've turned off your robot since running the first tutorial, System Check might inform you that the robot needs to be homed.

Homing refers to a procedure where Stretch moves all of its joints to the end of travel one time, to find the zero positions. Until the robot has been homed, it does not know the position of its manipulator and will refuse many types of commands. The homing procedure takes approximately 30 seconds, and must be run once every time the robot is powered on.

To home the robot:

stretch_robot_home

The robot will beep when finished. The motors will remember their homing state while the robot remains powered on — using the runstop, backdriving the robot, or restarting the NUC will not require rehoming. Powering the robot down completely will require homing again on the next boot.

If your system check did not complete due to rehoming, run it again now.

Stowing

As a tall robot, Stretch is most stable when it keeps its center of mass relatively low. When navigating the robot through its environment, we recommend keeping the arm and wrist retracted inside the base footprint and the To stow the robot to its compact travel pose:

stretch_robot_stow

Motors and Joints

Omnibase

Stretch 4 has a three-wheeled omnibase, consisting of three holonomic closed-loop stepper motors each driving one wheel. The omnibase supports full planar motion — forward, sideways, diagonal, and rotation in place, all simultaneously. It also supports Guarded Contact sensitivity, which can be calibrated and tuned per use case.

Wheel numbering increases counter-clockwise, with "Wheel 0" to the left of the forward direction. This is consistent with the ROS frame convention where X+ is forward and Y+ is to the left, forming a right-handed coordinate frame.

To jog the base, you can use this CLI tool:

Lift

The lift provides vertical translation of the arm, reaching up to 47 inches high and all the way down to the ground. It is driven by a closed-loop stepper motor through a low gear-ratio belt drive, providing smooth and precise motion.

To jog the lift, you can use this CLI tool:

Arm

The arm comprises 4 telescoping links set on rollers, extending 21.6 inches beyond the base footprint and retracting to stow within it. Its proprietary drivetrain is driven by a stepper motor with closed-loop control and current sensing, enabling contact detection during motion. In combination, the lift, arm, and mobile base provide three orthogonal axes of motion — a Cartesian system for end-effector placement.

To jog the arm, you can use this CLI tool:

Wrist and Gripper

Dexterous Wrist

Stretch 4 has a three degree-of-freedom wrist with yaw, pitch, and roll actuation — all driven by Feetech smart servo actuators.

Axis
Raw Servo Range
Notes

Wrist Yaw

310°

range_deg: [-65, 245]

Wrist Pitch

310°

range_deg: [-65, 245] — effective range reduced by self-collision limits

Wrist Roll

310°

range_deg: [-65, 245]

To jog individual wrist joints:

To home all wrist joints:

Individual axis homing is also available with stretch_wrist_yaw_home, stretch_wrist_pitch_home, and stretch_wrist_roll_home.

Gripper

The compliant gripper is a robust single-degree-of-freedom end-effector. A Feetech smart servo motor drives the center of the spring mechanism, which causes the outer fingers to flex and provide a grasping force.

Motor Errors and Reset

The Feetech motors in the wrist and gripper can enter an error state from over-force or over-temperature events. When in this state, the motor becomes backdrivable, stops responding to commands, and the LED on the motor body blinks red.

To clear this error, the motors must be power cycled, either through rebooting the robot or with this CLI tool:

This reboots all Feetech motors and resets their error status. You will need to re-run wrist and gripper homing after doing this, since the wrist_yaw and gripper joints lose their homed positions.

Rebooting only the robot PC will not clear errors like these, as the robot motors remain powered during the computer power cycle.

Sensors

Stretch 4 includes the following sensors:

  • Cameras

    • Luxonis OAK-FFC-3P Camera Module (Head: 3-camera array)

    • Luxonis OAK-D-SR (Gripper: stereo pair)

  • Lidar

    • 2x Hesai JT128 3D LiDAR (Left and Right, mounted on the head)

  • Speaker (mounted at the bottom of the head)

  • Pixart Single-Axis Distance Sensor Array (base)

Head Cameras

Stretch 4 has a Luxonis OAK-FFC-3P camera module mounted in the head with three RGB cameras:

Camera
Shutter
Type
Resolution
Target FPS

Left

Global Shutter

Fish-eye wide angle

1920×1200

30

Right

Global Shutter

Fish-eye wide angle

1920×1200

30

Center

Global Shutter

High-resolution color

4032×3040

10

The left and right cameras are fish-eye wide-angle cameras providing a broad environmental field of view. The center camera is a high-resolution color camera. All three are angled to maximize combined visual coverage in every frame.

To easily display any combination of camera feeds and open them in rerun or opencv , run the CLI tool stretch_camera_show with flags for the camera and for the visualizer - for example:

Use the flag -h to see all options

Gripper Cameras

Stretch 4 has an OAK-D-SR (Short Range) mounted at the gripper, an integrated passive stereo depth camera module optimized for short range sensing, perfect for sensing depth around the fingertips during grasping. These are detected as a separate Luxonis device from the head cameras (2-sensor device vs. the 3-sensor head device).

To visualize this camera view, use the same CLI command as above:

3D LiDAR

Stretch 4 has two Hesai JT128 3D LiDAR units mounted on the head — a left lidar and a right lidar — providing full 3D point cloud coverage of the environment. These are used for mapping, navigation, and RGBD fusion with the head cameras.

Each lidar communicates over Ethernet. The NUC holds a single network profile with two IP addresses to communicate with both lidars and the Jetson simultaneously.

To view the combined point cloud in real time, use the CLI command:

Emulated RGBD from Head Cameras

The head cameras can be fused with the head Hesai lidars to produce RGBD (color + depth) point clouds. To visualize this:

Speaker and Microphone

The robot has a speaker and noise-cancelling microphone mounted at the bottom of the head, allowing Stretch to communicate from across a room. To test audio output:

Line Sensor Array

Stretch 4 includes an array of SAS (single-axis sensors) floor-facing line sensor array on the base. This array continuously scans the floor in front of the robot and uses an on-robot model to classify the surface as floor or obstacle, enabling low-latency hazard detection independent of the lidar.

The line sensor runs in a dedicated background worker process at approximately 30 Hz, and its output is used by the omnibase to automatically limit velocity when an obstacle is detected in the direction of travel. To visualize the line sensors:

LED Eyes

The robot head also has two LED eye displays. These support a set of built-in animations including idle glow, blinking, directional gaze, rainbow spin, alert, and happy states:

Developer I/O

Stretch 4 contains additional ports connected to the onboard NUC that can be used for accessories:

  • Trunk: 1× USB-A 3.0 ports, 2x USB-A 2.0 ports, 1× Ethernet port, 1× HDMI port.

  • Head (top): 1× USB-A 3.0 port, 1x USB-C Port

  • End-of-arm: 1× USB-A 2.0 port

  • Wrist: Quick-connect mechanism for tool attachment.

There are also threaded mounting points on the head to add additional sensors.

Last updated

Was this helpful?