Skip to content

A simple, community-driven middleware for controlling robots, recording datasets, training action models. Compatible with SO-100 and SO-101

License

Notifications You must be signed in to change notification settings

phospho-app/phosphobot

Repository files navigation

Control AI robots with phospho

phospho (or phosphobot) is a software that lets you control robots, record data, train and use VLA (vision language action models).

phosphobot Python package on PyPi Y Combinator W24 phospho discord

Overview of phospho

  • ๐Ÿ•น๏ธ Control your robots to record datasets in minutes with a keyboard, a gamepad, a leader arm, and more
  • โšก Train Action models such as ACT, ฯ€0 or gr00t-n1.5 in one click
  • ๐Ÿฆพ Compatible with the SO-100, SO-101, Unitree Go2, Agilex Piper...
  • ๐Ÿšช Dev-friendly API
  • ๐Ÿค— Fully compatible with LeRobot and HuggingFace
  • ๐Ÿ–ฅ๏ธ Runs on macOS, Linux and Windows
  • ๐Ÿฅฝ Meta Quest app for teleoperation
  • ๐Ÿ“ธ Supports most cameras (classic, depth, stereo)
  • ๐Ÿ”Œ Open Source: Extend it with your own robots and cameras

Getting started with phosphobot

1. Get a robot

Purchase your phospho starter pack at robots.phospho.ai, or use one of the supported robots:

See this README for more details on how to add support for a new robot.

2. Install the phosphobot server

Install phosphobot for your OS using the one liners available here.

3. Make your robot move for the first time!

Go to the webapp at YOUR_SERVER_ADDRESS:YOUR_SERVER_PORT (default is localhost:80) and click control.

You'll be able to control your robot with:

  • a keyboard
  • a gamepad
  • a leader arm
  • a Meta Quest

Note: port 80 might already be in use, if that's the case, the server will spin up on localhost:8020

4. Record a dataset

Record a 50 episodes dataset of the task you want the robot to learn.

Check out the docs for more details.

5. Train an action model

To train an action model on the dataset you recorded, you can:

  • train a model directly from the phosphobot webapp (see this tutorial)
  • use your own machine (see this tutorial to finetune gr00t n1)

In both cases, you will have a trained model exported to Huggingface.

To learn more about training action models for robotics, check out the docs.

6. Use the model to control your robot

Now that you have a trained model hosted on huggingface, you can use it to control your robot either:

  • directly from the webapp
  • from your own code using the phosphobot python package (see this script for an example)

Learn more in the docs.

Congrats! You just trained and used your first action model on a real robot.

Advanced Usage

You can directly call the phosphobot server from your own code, using the API.

Go to the interactive docs of the API to use it interactively and learn more.

It is available at YOUR_SERVER_ADDRESS:YOUR_SERVER_PORT/docs (default: localhost:80/docs)

We release new versions very often, so make sure to check the API docs for the latest features and changes.

Join the Community

Connect with other developers and share your experience in our Discord community

Install from source

  1. Download and install uv and npm. Best compatibility is with python>=3.10 and node>=20.

  2. Clone github

git clone https://github.com/phospho-app/phosphobot.git
  1. On MacOS and Windows, to build the frontend and start the backend, run:
make

On Windows, the Makefile don't work. You can run the commands directly.

cd ./dashboard && (npm i && npm run build && mkdir -p ../phosphobot/resources/dist/ && cp -r ./dist/* ../phosphobot/resources/dist/)
cd phosphobot && uv run --python 3.10 phosphobot run --simulation=headless
  1. Go to localhost:80 or localhost:8020 in your browser to see the dashboard. Go to localhost:80/docs to see API docs.

Contributing

We welcome contributions! Read our contribution guide. Also checkout our bounty program.

Here are some of the ways you can contribute:

  • Add support for new AI models
  • Add support for new teleoperation controllers
  • Add support for new robots and sensors
  • Add something you built to the examples
  • Improve the dataset collection and manipulation
  • Improve the documentation and tutorials
  • Improve code quality and refacto
  • Improve the performance of the app
  • Fix issues you faced

Support

License

MIT License


Made with ๐Ÿ’š by the Phospho community

About

A simple, community-driven middleware for controlling robots, recording datasets, training action models. Compatible with SO-100 and SO-101

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published