Skip to main content

Official Python toolkit for roboto.ai

Project description

Roboto SDK

Roboto makes it easy to manage and analyze robotics data at scale 🤖

This package contains the official toolkit for interacting with Roboto. It consists of the roboto Python module and command line utility.

If this is your first time using Roboto, we recommend reading the docs and exploring the core concepts.

Why Roboto?

Most robotics teams start with manual review: visualizing logs and replaying data. But that approach alone doesn’t scale. It makes it hard to catch issues or measure performance as your fleet grows. Roboto helps you move beyond that. It gives you the tools to automate analysis and scale up 🚀

You can ingest logs and efficiently extract data from them — but that’s just the beginning. Roboto lets you query data and define custom actions to post-process it, so you can identify events, generate KPIs, and more.

See below for supported data formats, installation instructions and getting started examples.

Data Formats

Roboto can ingest data from a variety of formats, each with corresponding actions in the Action Hub.

Format Extensions Status Action
ROS 2 .mcap, .db3 ros_ingestion
ROS 1 .bag ros_ingestion
PX4 .ulg ulog_ingestion
Parquet .parquet parquet_ingestion
CSV .csv csv_ingestion
Journal .log journal_log_ingestion

Roboto’s extensible design can also support custom formats. Reach out to discuss your use case.

Install Roboto

To use the Roboto SDK and CLI:

  • Sign up at app.roboto.ai and create an access token (docs)
  • Save your access token to ~/.roboto/config.json

Python

The Roboto Python SDK is available on PyPI.

Requirements: Python 3.10+

Installation:

pip install roboto

[!TIP]

If pip install roboto fails or behaves unexpectedly, the two most common causes are:

  • Python version below 3.10
  • Dependency conflicts from installing into your system Python or an existing environment

Verify your Python version and set up a virtual environment Confirm your Python version meets the requirement:

python3 -c "import sys; assert sys.version_info >= (3, 10), f'Python 3.10+ required, found {sys.version}'"

Then create and activate a virtual environment:

# macOS/Linux
python3 -m venv .venv && source .venv/bin/activate

# Windows
python3 -m venv .venv && .venv\Scripts\activate

Then re-run pip install roboto.

Authentication (required):

Roboto requires credentials to communicate with the platform. If you haven't authenticated yet, see Setting up programmatic access.

Verify your credentials are configured correctly:

roboto users whoami

See the complete SDK documentation.

CLI

If you want to interact with Roboto on the command line, and don't need the Python SDK, we recommend installing the standalone CLI.

You can find all versions of pre-built binary artifacts on the releases page of this package. We currently build for Linux (aarch64, x86_64), Mac OS X (aarch64, x86_64) and Windows (x86_64). See installation instructions per platform below.

Installing the CLI will provide the roboto command line utility. You can see available commands with roboto -h or see the complete CLI reference documentation.

Linux

  • Go to the latest release page for this package
  • (apt) Download the relevant roboto .deb file for your platform
    • e.g. roboto-linux-x86_64_0.9.2.deb (don't pick a roboto-agent release)
    • Double click on the downloaded deb file and let apt take over
  • (non-apt) Download the relevant roboto file for your platform
    • e.g. roboto-linux-x86_64 (don't pick a roboto-agent release)
    • Move the downloaded file to /usr/local/bin or where ever makes sense for your platform

Coming soon: direct apt-get install support

Mac OS X

You can either use the Homebrew package manager:

brew install roboto-ai/tap/roboto

Or download the relevant Mac binary from the latest release page e.g. roboto-macos-aarch64

If you used Homebrew, you can also upgrade via brew upgrade roboto

Windows

  • Go to the latest release page for this package
  • Download the roboto-windows-x86_64.exe file
  • Move the downloaded .exe to a folder that is on your PATH, like C:\Program Files\

Upgrade CLI

The CLI will automatically check for updates and notify you when a new version is available.

If you installed the CLI with the SDK via pip, you can simply upgrade with pip install --upgrade roboto.

If you installed the CLI from a .deb or by adding an executable like roboto-linux-x86_64 to your PATH, you can upgrade by downloading the latest version and replacing the old executable.

For OS X Homebrew users, you can upgrade by running brew upgrade roboto.

Getting Started

The CLI is convenient for quickly creating new datasets, uploading or downloading files, and running actions. The Python SDK has comprehensive support for all Roboto platform features and is great for data analysis and integration with your other tools.

CLI Example

With the Python SDK, or standalone CLI installed, you can use roboto on the command line.

The example below shows how to create a new dataset and upload a file to it.

> roboto datasets create --tag boston
{
  "administrator": "Roboto",
  "created": "2024-09-25T22:22:48.271387Z",
  "created_by": "benji@roboto.ai",
  "dataset_id": "ds_9ggdi910gntp",
  ...
  "tags": [
    "boston"
  ]
}

> roboto datasets upload-files -d ds_9ggdi910gntp -p scene57.bag
100.0%|█████████████████████████ | 58.9M/58.9M | 2.62MB/s | 00:23 | Src: 1 file

Python Example

With the Python SDK installed, you can import roboto into your Python runtime.

The example below shows how to access topic data for an ingested ROS bag file:

from roboto import Dataset

ds = Dataset.from_id("ds_9ggdi910gntp")
bag = ds.get_file_by_path("scene57.bag")
steering_topic = bag.get_topic("/vehicle_monitor/steering")

steering_data = steering_topic.get_data(
    start_time="1714513576", # "<sec>.<nsec>" since epoch
    end_time="1714513590",
)

You can also create events:

from roboto import Event

Event.create(
  start_time="1714513580", # "<sec>.<nsec>" since epoch
  end_time="1714513590", 
  name="Fast Turn",
  topic_ids=[steering_topic.topic_id]
)

Or even search for logs matching metadata and statistics with RoboQL:

from roboto import query, RobotoSearch
roboto_search = RobotoSearch(query.client.QueryClient())

query = '''
dataset.tags CONTAINS 'boston' AND
topics[0].msgpaths[/vehicle_monitor/vehicle_speed.data].max > 20
'''

results = roboto_search.find_files(query)

See the notebooks directory for complete examples!

Learn More

For more information, check out:

Contact

If you'd like to get in touch with us, feel free to email us at info@roboto.ai, or join our community Discord server.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roboto-0.44.0.tar.gz (367.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roboto-0.44.0-py3-none-any.whl (528.8 kB view details)

Uploaded Python 3

File details

Details for the file roboto-0.44.0.tar.gz.

File metadata

  • Download URL: roboto-0.44.0.tar.gz
  • Upload date:
  • Size: 367.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for roboto-0.44.0.tar.gz
Algorithm Hash digest
SHA256 f0f54c94fb95bb263d224d2727d18f68f2610937dfd43c0fac584c36940ceeef
MD5 9ba50f745c2a0946cb02f37ba29a77b9
BLAKE2b-256 85256f0f8c9d21194803f3b90b05a87738d0496272faa35b8f9678c81b8ee043

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboto-0.44.0.tar.gz:

Publisher: sdk.yml on roboto-ai/roboto-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file roboto-0.44.0-py3-none-any.whl.

File metadata

  • Download URL: roboto-0.44.0-py3-none-any.whl
  • Upload date:
  • Size: 528.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for roboto-0.44.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3875d47f16ec1f4dff41e9fefcb9ce8760047dc42e94f0430b3a806813a79f9
MD5 b10008aa1417823e4fbaf358a08cf5b4
BLAKE2b-256 53b909558da1f4ffe7a6a23c029acc29a075adf7244c399e8d8e00dae1705d4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboto-0.44.0-py3-none-any.whl:

Publisher: sdk.yml on roboto-ai/roboto-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page