Skip to main content

The Tactile MNIST benchmark for active tactile perception.

Project description

The Tactile MNIST Benchmark

This repository contains code to access the Tactile MNIST simulated benchmark tasks and datasets, as further described on our project page, which also links to the paper.

Installation

This package can be installed using pip:

pip install tactile-mnist[OPTIONS]

where OPTIONS can be any number of the following (comma separated):

  • examples: installs dependencies for the examples.
  • torch, jax, and jax-cpu: installs dependencies for the interactive Tactile MNIST environment with PyTorch, JAX, or JAX without CUDA support, respectively. Without any of those options, the interactive environment cannot be used but the static datasets will still work.

Troubleshooting

If you are seeing errors as such

OSError: [...]/torch_scatter/_version_cpu.so: undefined symbol: _ZN3c1017RegisterOperatorsD1Ev

then there are CUDA version incompatibilities between torch_scatter, PyTorch, and nvcc.

If you are seeing errors as such

RuntimeError: Not compiled with CUDA support

then nvcc was not found when installing torch_scatter.

In both cases, follow the instructions in the official torch_scatter repository to install compatible PyTorch and torch_scatter versions.

Contents

This package provides ap_gym environments for two simulated active tactile classification benchmark tasks and access to the Tactile MNIST datasets. The ap_gym environments can be used to train and evaluate agents on active tactile perception problems on simulated data and are further described in the Benchmark section. In the Tactile MNIST datasets, you find two datasets of 3D CAD models, MNIST 3D and Starstruck, and several datasets of simulated and real tactile images. This package provides an easy way of loading and working with these datasets, as further described in the Datasets section.

Simulated Active Tactile Perception Benchmark

This package provides ap_gym environments for two active tactile perception environments: TactileMNIST and Starstruck. In both environments, the agent must solve a perception problem by actively controlling a GelSight Mini tactile sensor in a simulated environment.

The TactileMNIST environment challenges the agent to find and classify a 3D MNIST model as quickly as possible. Aside of finding the object, the main challenge in the TactileMNIST environment is to learn contour following strategies to efficiently classify it once found.

In the Starstruck environment, the agent must count the number of stars in a scene cluttered with other objects. Since all stars look the same, distinguishing stars from the other objects is rather straightforward. Instead, the main challenge posed in this environment is to learn an effective search strategy to systematically cover as much space as possible.

Thus, although both environments might seem visually similar, they pose significantly different challenges to the agent.

A detailed description of the environments can be found here.

Datasets

Aside of the simulated benchmark tasks, this package provides access to two classes of static datasets: 3D mesh datasets and touch datasets. Below is an overview of the datasets provided in this package:

  • 3D Mesh Datasets:
    1. MNIST 3D: a dataset of 3D models generated from a high-resolution version of the MNIST dataset.
    2. Starstruck: a dataset in which the number of stars in a scene have to be counted (3 classes, 1 - 3 stars per scene).
  • Touch Datasets
    1. Synthetic Tactile MNIST: a dataset of synthetic tactile images generated from the MNIST 3D dataset with the Taxim simulator.
    2. Real Tactile MNIST: a dataset of real tactile images of 3D printed MNIST 3D digits collected with a Franka robot.
    3. Synthetic Tactile Starstruck: a dataset of synthetic tactile images generated from the Starstruck dataset with the Taxim simulator.

A detailed description of the datasets can be found in the Dataset documentation.

License

The project is licensed under the MIT license.

Contributing

If you wish to contribute to this project, you are welcome to create a pull request. Please run the pre-commit hooks before submitting your pull request. To install the pre-commit hooks, run:

  1. Install pre-commit
  2. Install the Git hooks by running pre-commit install or, alternatively, run `pre-commit run --all-files manually.

Project details


Download files

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

Source Distribution

tactile_mnist-0.10.0.tar.gz (690.0 kB view details)

Uploaded Source

Built Distribution

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

tactile_mnist-0.10.0-py3-none-any.whl (701.4 kB view details)

Uploaded Python 3

File details

Details for the file tactile_mnist-0.10.0.tar.gz.

File metadata

  • Download URL: tactile_mnist-0.10.0.tar.gz
  • Upload date:
  • Size: 690.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tactile_mnist-0.10.0.tar.gz
Algorithm Hash digest
SHA256 3f3a63b326af850639c08ab6cc2c39988140f908a8033f9c83138255bf907821
MD5 287bb980085183813a8739fcdd9bb1c0
BLAKE2b-256 ac8d8dd98759e6b86b7c2e0af0fe25c025d6317c450fb5d54df3af5b673384ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for tactile_mnist-0.10.0.tar.gz:

Publisher: publish.yml on TimSchneider42/tactile-mnist

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

File details

Details for the file tactile_mnist-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: tactile_mnist-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 701.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tactile_mnist-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0663dba81cb97ee2acbb69d503d01a122395eaa9c29ff33c1990d3fe3e339e4
MD5 249fc143ad45fc4cba76d5f8db60e410
BLAKE2b-256 4a5211dfa79c0e777dc8a71b352f9b3178d3b731ea6410f260e2c6821dce0740

See more details on using hashes here.

Provenance

The following attestation bundles were made for tactile_mnist-0.10.0-py3-none-any.whl:

Publisher: publish.yml on TimSchneider42/tactile-mnist

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