Git Product home page Git Product logo

tacto's Introduction

TACTO: A Fast, Flexible and Open-source Simulator for High-Resolution Vision-based Tactile Sensors

License: MIT PyPI CircleCI Code style: black DIGIT-logo

TACTO Simulator

This package provides a simulator for vision-based tactile sensors, such as DIGIT. It provides models for the integration with PyBullet, as well as a renderer of touch readings. For more information refer to the corresponding paper TACTO: A Fast, Flexible, and Open-source Simulator for High-resolution Vision-based Tactile Sensors.

NOTE: the simulator is not meant to provide a physically accurate dynamics of the contacts (e.g., deformation, friction), but rather relies on existing physics engines.

For updates and discussions please join the #TACTO channel at the www.touch-sensing.org community.

Installation

The preferred way of installation is through PyPi:

pip install tacto

Alternatively, you can manually clone the repository and install the package using:

git clone https://github.com/facebookresearch/tacto.git
cd tacto
pip install -e .

Content

This package contain several components:

  1. A renderer to simulate readings from vision-based tactile sensors.
  2. An API to simulate vision-based tactile sensors in PyBullet.
  3. Mesh models and configuration files for the DIGIT and Omnitact sensors.

Usage

Additional packages (torch, gym, pybulletX) are required to run the following examples. You can install them by pip install -r requirements/examples.txt.

For a basic example on how to use TACTO in conjunction with PyBullet look at [TBD],

For an example of how to use just the renderer engine look at examples/demo_render.py.

For advanced examples of how to use the simulator with PyBullet look at the examples folder.

Demo DIGIT

Demo Allegro

Demo OmniTact

Demo Grasp

Demo Rolling

Demo Shadow

Headless Rendering

NOTE: the renderer requires a screen. For rendering headless, use the "EGL" mode with GPU and CUDA driver or "OSMESA" with CPU. See PyRender for more details.

Additionally, install the patched version of PyOpenGL via,

pip install git+https://github.com/mmatl/pyopengl.git@76d1261adee2d3fd99b418e75b0416bb7d2865e6

You may then specify which engine to use for headless rendering, for example,

import os
os.environ["PYOPENGL_PLATFORM"] = "osmesa" # osmesa cpu rendering

Operating System

We recommend to conduct experiments on Ubuntu.

For macOS, there exists some visualization problem between pybullet.GUI and pyrender as we know of. Please let us know if it can be resolved, and we will share the information at the repo!

License

This project is licensed under MIT license, as found in the LICENSE file.

Citing

If you use this project in your research, please cite:

@Article{Wang2022TACTO,
  author   = {Wang, Shaoxiong and Lambeta, Mike and Chou, Po-Wei and Calandra, Roberto},
  title    = {{TACTO}: A Fast, Flexible, and Open-source Simulator for High-resolution Vision-based Tactile Sensors},
  journal  = {IEEE Robotics and Automation Letters (RA-L)},
  year     = {2022},
  volume   = {7},
  number   = {2},
  pages    = {3930--3937},
  issn     = {2377-3766},
  doi      = {10.1109/LRA.2022.3146945},
  url      = {https://arxiv.org/abs/2012.08456},
}

tacto's People

Contributors

wx405557858 avatar robertocalandra avatar poweic avatar mees avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.