Install RoboAPI
Install RoboAPI from PyPI, connect hardware and a model service, and open the local console.
RoboAPI runs on the Linux computer connected to your arm, camera, and gripper. Operate it on that computer or open the local console from your laptop. For an existing installation, see Versions and upgrades.
System requirements
- Linux x86-64 and Python 3.10–3.12. Use Python 3.12 for a new environment.
- A wired connection from the control computer to the robot, and access to the model service.
- Camera and gripper connections completed according to Hardware setup.
- For Franka, glibc 2.28 or newer and realtime kernel and scheduling permissions.
On Ubuntu, install the image-processing system libraries:
sudo apt-get update
sudo apt-get install -y libgl1 libglib2.0-0The account running RoboAPI needs access to video and serial devices, usually through the video and dialout groups. Log in again after changing group membership.
1. Create a Python environment
Install uv using its installation guide, then create a separate environment:
mkdir -p ~/roboapi
cd ~/roboapi
uv venv --python 3.12
source .venv/bin/activate2. Install from PyPI
Choose the command for your robot:
| Robot | Install command |
|---|---|
| UR5 CB3 | uv pip install 'roboapi[ur-cb3,gripper]==0.4.5' |
| UR5e / UR7e | uv pip install 'roboapi[gripper]==0.4.5' |
| FR3, system 5.9+ | uv pip install 'roboapi[franka,gripper]==0.4.5' |
FR3 system 5.6.0 and Panda require their matching SDK installation commands. Install only one Franka SDK build in each Python environment.
Check that the command is available:
roboapi --helpThe package includes the local console; the control computer does not need Node.js. First-time UR5e / UR7e installations also build the native control runtime. For Franka, prepare Desk and the realtime host using Franka setup, then configure tool load in the wizard below. FR3 5.6.0 and Panda export and import their load file after initialization.
For another robot, install its adapter into the same Python environment before running the wizard. See Connect new hardware and Hardware adapter interfaces.
Install a downloaded package
You can also download a wheel from the PyPI release files, check its release checksum, and install it. For example, for FR3 system 5.9+:
uv pip install '/absolute/path/to/roboapi-0.4.5-py3-none-any.whl[franka,gripper]'Replace the path and installation options with your file and robot setup. Installing dependencies still needs network access; the RoboAPI wheel alone is not a complete offline installation.
3. Configure hardware and the model
roboapi initThe wizard selects the arm, gripper, and camera in order, collects their addresses or device paths, then configures the model. Installed external adapters appear alongside built-in components. For Franka, provide Desk credentials and select a matching standard assembly load or enter the complete assembly mass, centre of mass, and inertia. UR configures its load in PolyScope.
| Model setting | Value |
|---|---|
| Base URL | Defaults to https://api.pokebot.com/v1; a compatible custom service is also supported |
| Model | Enter the key, connect, then choose a model suitable for your robot from the returned list |
| API key | An API key created in the developer console |
See Account and API keys to prepare your account and connection settings. The wizard uses the key to fetch models, so the control computer must be able to reach the service. If connection fails, correct the address, key, or network and retry before selecting a model. Display names may differ from API IDs; the wizard saves the selected model's actual ID. RoboAPI manages task sessions and execution receipts automatically.
When setup completes, the wizard saves settings to ~/.config/roboapi/, with credentials in separate files readable and writable only by the current account. Setup queries the model list without connecting to hardware; fetching the list does not create a task session. To use a different location, run roboapi init --config /path/to/config.yaml.
4. Open the local console
roboapi httpOpen http://127.0.0.1:8080/ on the control computer and check the camera and device connections. For a custom configuration, run roboapi http -c /path/to/config.yaml.
To operate from another computer, set up SSH forwarding there. Replace user@robot-host with the control computer's username and address:
ssh -N -L 8080:127.0.0.1:8080 user@robot-hostKeep the connection open, then visit http://127.0.0.1:8080/. The local service listens on loopback by default and has no separate account login. Your developer console account is for cloud services.
5. Calibrate and run
- Open Settings → Devices → Coordinate calibration and complete Home and A/B/C coordinate calibration.
- After you capture C, the browser returns the arm to Home, saves calibration, and initializes the arm and gripper. Keep the motion area clear. On UR e-Series, switch to Remote mode when prompted.
- Perform the optional direction checks, then select Done to return to the run view.
- Check the motion range in settings. Its default is 60 cm in each direction from Home. Targets outside the range are clamped to its boundary, and the task continues. If the arm is already outside the range before starting, return Home first.
- Enter a task in the local console, then select Send or press
Shift+Enterto run it.
The motion range constrains commanded targets; it is not a physical barrier. Later starts reuse saved calibration and open in preview. Select Enable control to initialize control; this does not move the arm Home. Recalibrate when the assembly, Home, or task axes change.
Closing the browser does not stop a running task. Use Robot Stop to stop it, or Ctrl+C in the launch terminal to shut down the service.