Usage
Python API
AETHER is primarily a CLI, but components are importable. Run a skill against a registry directly:
from aether.skills.drive_until_obstacle import drive_until_obstacle
# `registry` exposes move_forward + get_distance
result = drive_until_obstacle(
target_cm=5.0, max_speed=25.0, timeout_s=15.0, registry=registry,
)
print(result["stop_reason"], result["final_distance_cm"])
Register skills (auto-checks prerequisites) and use the parallel primitives:
from aether.skills import register_skills
registered = register_skills(registry) # -> ["drive_until_obstacle"]
from aether.parallel.executor import ParallelExecutor
ex = ParallelExecutor(name="my_skill", timeout_s=10.0)
ex.add_task("motor", motor_task)
ex.add_task("sensor", sensor_task)
result = ex.run()
import aether
print(aether.__version__) # "3.9.5"
›
aether/skills/__init__.py re-exports the drive_until_obstacle function. To reach module-level constants use importlib.import_module("aether.skills.drive_until_obstacle").
