Roboto makes it easy to manage and analyze log data from your robots.
This package contains the official toolkit for interacting with Roboto.
It consists of the roboto
Python module, as well as a roboto
command line utility.
If this is your first time using Roboto, we recommend reading the docs and learning the core concepts.
See below for getting started examples.
In order to use the Roboto SDK and CLI you'll need to create an account and get an access token.
- Sign up for an account at app.roboto.ai to create an access token (docs)
- Save your access token to
~/.roboto/config.json
If you want to interact with Roboto in a Python environment, such as a Jupyter notebook, we recommend installing the Python SDK released via PyPI:
pip install roboto
This will also install the CLI mentioned below. You can see the complete SDK and CLI documentation.
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.
- 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 aroboto-agent
release) - Double click on the downloaded
deb
file and letapt
take over
- e.g.
- (non-apt) Download the relevant
roboto
file for your platform- e.g.
roboto-linux-x86_64
(don't pick aroboto-agent
release) - Move the downloaded file to
/usr/local/bin
or where ever makes sense for your platform
- e.g.
Coming soon: direct apt-get install
support
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
- 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 yourPATH
, likeC:\Program Files\
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
.
The Python SDK and CLI can both be used to programmatically interact with Roboto. 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 especially useful for data analysis and integration with your other tools.
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 sunny boston
{
"administrator": "Roboto",
"created": "2024-09-25T22:22:48.271387Z",
"created_by": "[email protected]",
"dataset_id": "ds_9ggdi910gntp",
...
"tags": [
"boston",
"sunny"
]
}
> roboto datasets upload-files -d ds_9ggdi910gntp -p scene57.bag
100.0%|█████████████████████████ | 58.9M/58.9M | 2.62MB/s | 00:23 | Src: 1 file
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",
associations = [
steering_topic.to_association()
]
)
Or even search for logs matching metadata and/or 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!
For more information, check out:
If you'd like to get in touch with us, feel free to email us at [email protected], or join our community Discord server.