Skip to main content

Overview

This package provides robot description and mesh files for Stretch 4, as well as code for manipulating the kinematic description (e.g. adding virtual joints) and exporting for use in other programs (e.g. ROS2, pinocchio). The repository for Stretch 3 and earlier hardware versions can be found in stretch_urdf. This package can be installed by:

python3 -m pip install -U hello-robot-stretch4-urdf
Stretch 4 robot model


Details

The URDF and meshes are installed to your Python site directory. You can load them dynamically using:

from stretch4_urdf import get_urdf

# configure the specifications for your robot
model_name = "SE4"
batch_name = "francis"
tool_name = "eoa_wrist_dw4_tool_sg4"

print(get_urdf(
    model_name=model_name,
    batch_name=batch_name,
    tool_name=tool_name,
))

Currently supported options for the model_name, batch_name, and tool_name are:

supported_model_names = ["SE4"]
supported_batch_names = ["francis"]
supported_tool_names = ["eoa_wrist_dw4_tool_sg4"]

A single composable xacro combines a robot's base model with its attached tool. Util functions will handle processing the xacro file and return the URDF for the robot's current configuration:

from stretch4_urdf import get_urdf_from_robot_params
urdf_string = get_urdf_from_robot_params() # store the urdf contents in a str variable
urdf_filepath = get_urdf_from_robot_params(out_dir="/tmp") # save the urdf to a file in the /tmp directory

You can also load accessory URDFs via:

from stretch4_urdf import get_accessory

dock_urdf = get_accessory("docking_station")
print(dock_urdf)

Utility methods are provided to extract 4x4 coordinate transforms:

from stretch4_urdf import get_transform

# Get the 4x4 transform between two frames
T_dock_to_leftaruco = get_transform(dock_urdf, frame_to="left_aruco_marker_link", frame_from="docking_station_link")
print(T_dock_to_leftaruco)

Tools

URDF Visualization

The stretch_urdf_viz tool allows you to visualize the robot's URDF in Rerun.

stretch_urdf_viz

By default, the tool will visualize the robot's nominal (uncalibrated) URDF. If the robot has been calibrated, the calibrated URDF will be automatically overlaid in green.

Key features:

  • Calibrated vs Uncalibrated: Automatically shows both if calibration data is available.
  • Toggles: Meshes, coordinate frames (TFs), and labels are organized into separate trees in Rerun, allowing them to be toggled on/off easily to reduce clutter.

Options:

  • --model: Specify the robot model (e.g., SE4).
  • --batch: Specify the robot batch (e.g., francis).
  • --tool: Specify the end-of-arm tool (e.g., eoa_wrist_dw4_tool_sg4).

Bringing in URDF's from CAD

The package follows a strict directory strucutre:

> {model}_{batch}
    > meshes
        visual and collision mesh STL files
    > xacro
        stretch_main.xacro
> {model}_tools
    > {tool_name}
        > meshes
            visual and collision mesh STL files
        {tool_name}.urdf

The URDF and meshes from the CAD model are added to the {model}_{batch} base directory and meshes folder. From there, utils/preprocessing/process_new_robot_model.py creates the stretch_main.xacro file and necessary collision meshes for the batch. See the urdf_conventions.md for the specifics of this processing step.

A directory is created for each new tool, with the urdf in the base directory and a folder for meshes. utils/preprocessing/process_new_tool.py is then used to add the necessary edits to the urdf and generate collision meshes.

Documentation

The following files provide deeper documentation on various parts of the system:

Primer Description
Batches Explains URDF batch organization, compiling the URDF dynamically, and how to add new batch models.
End Effectors Outlines the available end effector tools and provides instructions on how to add new tools to the robot.
URDF Conventions Outlines which conventions are used in the Stretch 4 URDF.
Calibration Explains how static calibration values are applied to the URDF at load time.
Kinematic Changes Tracks breaking kinematic and coordinate frame changes for Stretch 4.
Camera Orientations Deep dive into the camera coordinate systems, mounting angles, and optical frame conventions.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hello_robot_stretch4_urdf-2026.8.21.tar.gz (3.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hello_robot_stretch4_urdf-2026.8.21-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file hello_robot_stretch4_urdf-2026.8.21.tar.gz.

File metadata

  • Download URL: hello_robot_stretch4_urdf-2026.8.21.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for hello_robot_stretch4_urdf-2026.8.21.tar.gz
Algorithm Hash digest
SHA256 e1bd20fa6d381d0441f46899008ed1942597d881de1bc57a439edea839819e82
MD5 64db5d7b5818a256ac2a994483b4cca0
BLAKE2b-256 0fad77fee2ef2d3e9062763be040ad42318492c18b6e3cd2c1a91e2225b940e7

See more details on using hashes here.

File details

Details for the file hello_robot_stretch4_urdf-2026.8.21-py3-none-any.whl.

File metadata

  • Download URL: hello_robot_stretch4_urdf-2026.8.21-py3-none-any.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for hello_robot_stretch4_urdf-2026.8.21-py3-none-any.whl
Algorithm Hash digest
SHA256 a7b74b8534b2502d5a43dc6507fe72f6e95762e3a0927dd8460a24feb855bbba
MD5 f02aac4641d1fdf2a926124a8dd511fa
BLAKE2b-256 9d23d273865c8815d283d1ace3a35ba15c4f88e7cbdd424f3503043f9cd7aff3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2026.8.21 This release

2 files

2026.7.31

2 files

2026.7.8

2 files

2026.7.2

2 files

2026.6.25

2 files

2026.5.27

2 files

2026.5.14

2 files

2026.5.12

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page