Product Catalog

Reach
ReachPy

Make your code reach the robot. Reach replaces the usual scatter of ROS 2 config files with a single reach.toml and a small CLI—hot reload included.

Traditional vs Reach

Traditional ROS 2Reach
package.xml[project] in reach.toml
setup.py / install rules[nodes] paths
XML launch files[launch.<pipeline>]
Manual ros2 run loopsreach run / reach launch

Commands

reach create <name>Create a new ReachPy workspace
reach doctorDiagnose ROS 2, Python, workspace, and nodes
reach configPrint resolved reach.toml
reach run [profile|node...]Run nodes with hot reload
reach launch <pipeline>Run a launch pipeline with ordering and deps

Example reach.toml

[project]
name = "my-robot"
version = "0.1.0"
python = "3.11"

[nodes]
detector   = "src/detector.py"
controller = "src/controller.py"

[launch.default]
nodes = [
    { name = "detector" },
    { name = "controller", delay = 1.0, depends_on = "detector" },
]

[dev]
hot_reload = true
hot_reload_ignore = ["config/", "models/"]

Requirements

Rust

2021 edition — build the reach CLI

Python 3.x

Node scripts

ROS 2

Humble, Iron, or Jazzy

Install Reach

git clone https://github.com/ascii-robotics/ros-config-reduction.git
cd ros-config-reduction
cargo build --release
# binary: target/release/reach
Open on GitHub