Git Product home page Git Product logo

midastouch's Introduction

MidasTouch

Monte-Carlo inference over distributions across sliding touch

Sudharshan Suresh  •  Zilin Si  •  Stuart Anderson  •  Michael Kaess  •  Mustafa Mukadam
6th Annual Conference on Robot Learning (CoRL) 2022

Website  •  Paper  •  Presentation  •  YCB-Slide

TL;DR: We track the pose distribution of a robot finger on an
object's surface using geometry captured by a tactile sensor

License: MIT   Code style: black        Meta-AI    rpl

MidasTouch performs online global localization of a vision-based touch sensor on an object surface during sliding interactions. For details and further results, refer to our website and paper.

Setup

1. Clone repository

git clone [email protected]:facebookresearch/MidasTouch.git
git submodule update --init --recursive

2. Download YCB-Slide dataset

cd YCB-Slide 
chmod +x download_dataset.sh && ./download_dataset.sh
cd ..

3. Download weights/codebooks

chmod +x download_assets.sh && ./download_assets.sh

4. Setup midastouch conda env

sudo apt install build-essential python3-dev libopenblas-dev
conda env create -f environment.yml 
conda activate midastouch
pip install -e .

5. Install PyTorch and the MinkowskiEngine

      Follow the conda instructions from the NVIDIA MinkowskiEngine webpage

Run MidasTouch

Run interactive filtering experiments with our YCB-Slide data from both the simulated and real-world tactile interactions.

TACTO simulation trajectories

python midastouch/filter/filter.py expt=ycb # default: 004_sugar_box log 0
python midastouch/filter/filter.py expt.obj_model=035_power_drill expt.log_id=3 # 035_power_drill log 3
python midastouch/filter/filter.py expt.off_screen=True   # disable visualization
python midastouch/filter/filter.py expt=mcmaster   # small parts: cotter-pin log 0

Real-world trajectories

python midastouch/filter/filter_real.py expt=ycb # default: 004_sugar_box log 0
python midastouch/filter/filter_real.py expt.obj_model=021_bleach_cleanser expt.log_id=2 # 021_bleach_cleanser log 2

Codebook live demo

With your own DIGIT, you can simple plug in the sensor and experiment with the image to 3D and tactile codes visualizer.

python midastouch/filter/live_demo.py expt.obj_model=025_mug

Folder structure

midastouch
├── bash          # bash scripts for filtering, codebook generation
├── config        # hydra config files 
├── contrib       # modified third-party code for TDN, TCN
├── data_gen      # Generate tactile simulation data for training/eval
├── eval          # select evaluation scripts 
├── filter        # filtering and live demo scripts
├── modules       # helper functions and classes
├── render        # DIGIT tactile rendering class
├── tactile_tree  # codebook scripts 
└── viz           # pyvista visualization 

Data generation scripts

  • To generate your own tactile simulation data on object meshes, refer to the midastouch/data_gen/ scripts.
  • To collect tactile data in the real-world, refer to our experimental scripts in the YCB-Slide repository.
           

Bibtex

@inproceedings{suresh2022midastouch,
    title={{M}idas{T}ouch: {M}onte-{C}arlo inference over distributions across sliding touch},
    author={Suresh, Sudharshan and Si, Zilin and Anderson, Stuart and Kaess, Michael and Mukadam, Mustafa},
    booktitle = {Proc. Conf. on Robot Learning, CoRL},
    address = {Auckland, NZ},
    month = dec,
    year = {2022}
}

License

The majority of MidasTouch is licensed under MIT license, however portions of the project are available under separate license terms: MinkLoc3D is licensed under the MIT license; FCRN-DepthPrediction is licensed under the BSD 2-clause license; pytorch3d is licensed under the BSD 3-clause license. Please see the LICENSE file for more information.

Contributing

We actively welcome your pull requests! Please see CONTRIBUTING.md and CODE_OF_CONDUCT.md for more info.

midastouch's People

Contributors

suddhu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

midastouch's Issues

Information about tcn training

Hi all,
Thanks for sharing with us your great work.

I am trying to use your code with my DIGIT sensor. In the paper, you mentioned a training procedure for the TCN (Tactile Code Network)
tcn_training

but I cannot see any training code for this part. I was wondering if you can kindly share that part of code or if I am missing something.

Thanks,
Gabriele

TDN training does not behave as expected

Hi,
Thanks again for sharing with us your amazing work.

Following the discussion of the issue #1, I managed to retrain the TDN but the results are not as expected. Indeed, the codebook is quite different, as it can be seen in this table:

Input Provided weights Retrain weights
004_sugar_box
005_tomato_soup_can

I checked also the output mask to investigate the problem by using the same input images for the 2 cases:

Input Provided weights Retrain weights

I used the default configuration values, 10k images for each of the 40 training objects and the NYU weights as pretrain.

I don't know if I am missing something, do you have any idea why I get this behavior? Thanks!

Typo in README.md

Hi there,

shouldn't this line

python midastouch/filter/filter_real.py expt.obj_model=025_mug

be

python midastouch/filter/live_demo.py expt.obj_model=025_mug 

instead?

Thanks

Information about the calibration procedure mentioned in the paper

Hi all,
Thanks for sharing with us your great work.

I read the paper and in the appendix you mentioned a necessary calibration step to be performed (I attach here the screen).

calibration

However, I could not find any part of the code where you actually perform such calibration. I also saw that your renderer is designed to load a different background image given an id from the user, however this seems to require the following method from the tacto class that I could not find in the associated python package.

background=cv2.imread(tacto.get_background_image_path(bg_id)),
Can I have more information?

Thanks,
Gabriele

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.