dimensionalOS / dimensionalOS/dimos

Tech spec: e-stop module

Open
#3,621 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
4.5k
Forks
808
Avg merge
3d 5h
Merged PRs (30d)
233

Description

E-stop module

Add a Rust latching e-stop. Any condition can be added to set it, and only a manual reset can clear it.

Current proposed conditions

  1. Manual stop: trigger=true latches the e-stop.
  2. Humanoid fall detection: unreadable IMU orientation or tilt above the configured limit latches the e-stop.

Each condition owns one typed input and one small check; adding one means adding its file, input handler, and physical config.

control/estop/
├── conditions/manual.rs
├── conditions/humanoid_fall.rs
└── rust/src/main.rs

Manual reset

reset=true clears the latch only when every condition is healthy, and leaves the robot disarmed until a separate start command.

Embodiment defaults

Each embodiment owns one EStop-default bundle, and every root blueprint for that embodiment composes it.

g1_estop_defaults = EStop.blueprint(max_tilt_deg=45.0)
g1_root = autoconnect(g1_hardware, g1_estop_defaults)

Derived blueprints inherit the bundle from their root. autoconnect links imu, and estop must reach ControlCoordinator.set_estop().

Not run on hardware yet.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading control/estop/conditions/manual.rs, control/estop/conditions/humanoid_fall.rs, and rust/src/main.rs to trace the existing control entry points. Then inspect EStop.blueprint, the embodiment root blueprints, autoconnect, and ControlCoordinator.set_estop(). Done means the proposed conditions, manual reset, defaults, blueprint inheritance, and estop connection are implemented and hardware validation is addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
embedded-iot, robotics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.