Drive a robot in 5 minutes.
Swap to real hardware with one argument.
OhhO OS is the open engine underneath the platform. Install it, drive a robot in simulation, then point the same code at real hardware — native runtime or ROS 2, your choice.
Install the engine
Install from source today — the dependency-free base needs only Python 3.10+.
git clone https://github.com/varunvaidhiya/OmniBotPro
cd OmniBotPro
pip install -e sdkpip install ohho-os # coming soonCheck your environment
Doctor reports the runtimes, adapters and robots available on your machine — with or without ROS 2.
ohho doctorDrive a robot in simulation
No hardware required — a deterministic simulator runs the same API as a real robot.
ohho sim --robot omnibot --seconds 5Give it a brain
Run the agent loop — perceive → reason → act → reflect — against the simulated robot.
ohho agent omnibot "explore the room"The same code drives a wheeled mobile-manipulator, a quadruped, or an arm. Change the connection string — nothing else.
from ohho import Robot
# simulation — no hardware needed
bot = Robot.connect("omnibot", "sim://")
# the SAME code, real hardware — just one argument
bot = Robot.connect("omnibot", "serial:///dev/ttyUSB0,/dev/ttyACM0")
# a very different robot — a quadruped over DDS
bot = Robot.connect("unitree-go2", "dds://eth0")
bot.drive(vx=0.2, w=0.3) # clamped to the robot's real limits
bot.move_joints([0, -0.5, 0.5, 0, 0, 0.2]) # no-op if the robot has no armNative runtime or ROS 2 — runtime="auto" prefers ROS 2 when it’s installed, and falls back to the no-ROS runtime otherwise.
Close the loop: record → train → serve
Record teleoperation demonstrations to a standard LeRobot dataset, fine-tune a policy, and serve it behind a REST API — all from the same engine. ohho serve launches the inference server; ohho market lists the built-in skills.