A robot from ANYbotics inspects a substation in Norway. The same task — reading a gauge, scanning for thermal anomalies, logging observations — needs to work on a Unitree robot in Texas, a Boston Dynamics Spot in Abu Dhabi, and a Neura humanoid in a German factory.
Today it doesn’t. Every vendor speaks a different language. Every deployment starts from zero.
The problem
90% of robot deployment effort goes to data preparation, not model training. Every new site, every new robot, every new task starts from scratch. Task knowledge doesn’t transfer across platforms. Datasets are vendor-locked.
This is the same problem the internet had before TCP/IP. Every network spoke a different protocol. Nothing interoperated. Then a shared standard emerged, and everything changed.
What ORTO is
ORTO — Open Robot Task Ontology — is a cross-vendor vocabulary for describing physical tasks. It defines:
- 39 action primitives across 5 categories (navigate, inspect, manipulate, communicate, wait)
- 55+ real-world objects organized by domain
- Action-object bindings that define which actions work on which objects
- Failure taxonomies capturing what can go wrong at each step
- Environment descriptors for spatial context and navigation planning
A task described in ORTO works on any robot. A quadruped, a wheeled robot, a cobot arm, and a humanoid can all use the same task description — their platform-specific controllers handle the execution.
Getting started
pip install orto
from orto import TaskOntology
onto = TaskOntology()
print(onto.actions.get_primitives("inspect"))
# ['visual_scan', 'thermal_scan', 'read_gauge', ...]
The ontology is extensible — you can add domain-specific actions, objects, and bindings for your vertical via YAML extension files.
What’s next
ORTO is Apache 2.0 licensed and open to contributions. We’re looking for robotics engineers to help extend the ontology for new verticals — agriculture, healthcare, logistics, construction.
Check out the GitHub repository and let us know what you think.
Describe a task once. Deploy on any robot.