taxpose

TAX-Pose: Methods for Relative Placement

https://github.com/r-pad/taxpose

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary

Keywords

research-paper
Last synced: 10 months ago · JSON representation ·

Repository

TAX-Pose: Methods for Relative Placement

Basic Info
  • Host: GitHub
  • Owner: r-pad
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 16.2 MB
Statistics
  • Stars: 16
  • Watchers: 3
  • Forks: 3
  • Open Issues: 7
  • Releases: 0
Topics
research-paper
Created over 3 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License Citation

README.md

TAX-Pose: Methods for Relative Placement

This is the official code release for our CoRL 2022 paper and ICLR 2024 paper:

TAX-Pose: Task-Specific Cross-Pose Estimation for Robot Manipulation\ Chuer Pan*, Brian Okorn*, Harry Zhang*, Ben Eisner*, David Held\ CoRL 2022\ website | paper

@inproceedings{pan2022taxpose, title = {{TAX}-Pose: Task-Specific Cross-Pose Estimation for Robot Manipulation}, author = {Chuer Pan and Brian Okorn and Harry Zhang and Ben Eisner and David Held}, booktitle = {6th Annual Conference on Robot Learning}, year = {2022}, url = {https://arxiv.org/abs/2211.09325} }

Commands to reproduce the results in the paper are detailed in REPRODUCING_TAXPOSE.md.

Deep SE(3)-Equivariant Geometric Reasoning for Precise Placement Tasks\ Ben Eisner, Yi Yang, Todor Davchev, Mel Vecerik, Jon Scholz, David Held\ ICLR 2024\ website | paper

@inproceedings{eisner2024deep, title = {Deep {SE}(3)-Equivariant Geometric Reasoning for Precise Placement Tasks}, author = {Ben Eisner and Yi Yang and Todor Davchev and Mel Vecerik and Jonathan Scholz and David Held}, booktitle = {The Twelfth International Conference on Learning Representations}, year = {2024}, url = {https://arxiv.org/abs/2404.13478} }

Commands to reproduce the results in the paper are detailed in REPRODUCING_RELDIST.md.

Questions? Open an Issue, or send an email to: ben [dot] a [dot] eisner [at] gmail [dot] com

⚠️ Reproduciblilty for NDF Tasks

Some of the NDF eval scripts are not bit-for-bit reproducible even with random seeds. Some of the motion planning in the NDF repository depends on time elapsed, instead of number of steps. So predictions seem to be quite reproducible, but the exact motion planning trajectories are not (meaning that teleport scores are deterministic, but not the executed ones). This means that the NDF results in the original TAX-Pose paper and NDF paper are noisy, and don't yield the exact same results on every run as published in the paper.

Some things we could try to fully make it reproducible: * Make each trial fully independent (i.e. setup and teardown fully inside the loop). * Fork the motion planning stack to incorporate a step-based time counter instead of a real-time counter. * Recompile the IK with a random seed (this may not be necessary). * Implement move_ee_xyz without using the realtime mode in airobot. This would involve doing the same kind of following that we do when setting joint positons.

Installation.

This repository can be conveniently installed as a standard Python package, and used in downstream projects like any other dependency in any Python environment (i.e. virtualenv, conda, etc.). However, there are a few prerequisites for installation:

Install dependencies.

Before installing taxpose, you'll need to make sure you have versions of the following dependencies installed:

  • torch
  • torch_geometric
  • pytorch3d

We've provided specific GPU versions for each of these repositories in requirements-gpu.txt. Install them with:

pip install -r requirements-gpu.txt

Install taxpose.

This part should be really simple:

Option 1: Install from Github.

If you don't want to make any modifications, you can install directly.

pip install "taxpose @ git+https://github.com/r-pad/taxpose.git"

Option 2: Install in editable mode.

If you want to make changes, you can install in editable mode.

git clone https://github.com/r-pad/taxpose.git cd taxpose pip install -e .

Install ndf_robot.

For some reason, we need to install this in editable mode (can't just pip install it from github).

git submodule update --init --recursive pip install -e third_party/ndf_robot

Download the data.

cd third_party/ndf_robot NDF_SOURCE_DIR=$PWD/src/ndf_robot ./scripts/download_obj_data.sh NDF_SOURCE_DIR=$PWD/src/ndf_robot ./scripts/download_demo_demonstrations.sh

Install the pybullet planning.

Following: https://github.com/anthonysimeonov/ndf_robot/tree/master#setup

This version of IKFast is evil and requires Python 2.7.

sudo apt-get install python-dev cd third_party/ndf_robot/pybullet-planning/pybullet_tools/ikfast/franka_panda python setup.py

I want to...

...use the TAX-Pose model code.

Things are a bit messy at the moment, but the main entrypoint for the model code is in transformer_flow.py. The ResidualFlow_DiffEmbTransformer class is the main TAX-Pose model, and can be configured in various ways to add different features / parameters.

...use the RelDist / multilateration code.

See: * taxpose/utils/multilateration.py: The differentiable multilateration code. * taxpose/nets/transformer_flow.py: The MultilaterationHead class and the MLPKernel class are the main components of the multilateration code. They are used as drop-in replacements the TAX-Pose model.

...use a pre-trained TAX-Pose model.

NDF Mug.

bash download_trained_mug_models.sh

This will download the pre-trained models for NDF mug and save them at: * trained_models * ndf * arbitrary * place.ckpt * grasp.ckpt * upright * place.ckpt * grasp.ckpt

Code Structure

  • configs/: Hydra configuration files for training and evaluation, for all the datasets.
    • benchmark: ndf, rlbench, or real_world
    • commands: Specific commands for training and evaluation.
    • datasets: Specific datasets for each task.
    • model: Different model configurations (taxpose, mlat).
      • encoder: Different encoder configurations (vn_dgcnn, dgcnn).
    • object_class: Different object classes (mug, bowl, bottle). Used for pretraining.
    • pose_dist: Different pose distributions (upright, arbitrary).
    • task: Different tasks (ndf tasks, rlbench tasks), broken down into various phases. The RLBench phases are autogenerated.
  • docs/: (eventual) autogenerated documentation for the code
  • notebooks/
    • pm_placement.ipynb: Simple visualization of the PM Placement dataset.
  • results/: The pm evaluation script will dump CSVs of the results here.
  • scripts/
    • create_pm_dataset.py: Script which will generate the cached version Partnet-Mobility Placement dataset.
    • eval_metrics.py: Evaluate precision metrics on a dataset.
    • evaluate_ndf_mug.py: Evaluate the NDF task on the mug.
    • pretrain_embedding.py: Pretrain embeddings for the NDF tasks.
    • sample_action_surfaces.py: Sample full point clouds for the action objects for PM Placement tasks.
    • train_residual_flow.py: Train TAX-Pose on the NDF tasks.
  • taxpose/
    • datasets/: Dataset classes for the PM Placement and NDF tasks.
    • models/: Models. Downstream users will probably only be interested in taxpose.models.taxpose.TAXPoseModel.
    • nets/: Networks used by the models.
    • training/: Training code for the NDF tasks.
    • utils/: Utility functions.
    • train_pm_placement.py: Training code for the PM Placement tasks.

Owner

  • Name: R-Pad - Robots Perceiving and Doing
  • Login: r-pad
  • Kind: organization

This is the repository for the R-Pad lab at CMU.

Citation (CITATION.cff)

@inproceedings{
pan2022taxpose,
title={{TAX}-Pose: Task-Specific Cross-Pose Estimation for Robot Manipulation},
author={Chuer Pan and Brian Okorn and Harry Zhang and Ben Eisner and David Held},
booktitle={6th Annual Conference on Robot Learning},
year={2022},
url={https://openreview.net/forum?id=YmJi0bTfeNX}
}

GitHub Events

Total
  • Watch event: 7
Last Year
  • Watch event: 7

Dependencies

.github/workflows/build-site.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/deploy-site.yaml actions
  • actions/configure-pages v1 composite
  • actions/deploy-pages main composite
  • actions/download-artifact v3 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/merge-request.yaml actions
.github/workflows/push.yaml actions
.github/workflows/run-tests.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
  • dgl ~= 1.0
  • dglgo ~= 0.0.2
  • h5py *
  • hydra-core *
  • imageio *
  • jupyterlab *
  • opencv-python *
  • pybullet *
  • pyg_lib ~= 0.1; sys_platform == 'linux'
  • pytorch3d ~= 0.7.2
  • pytorch_lightning < 2.0
  • rpad-partnet-mobility-utils @ git+https://github.com/r-pad/partnet_mobility_utils.git
  • rpad-pyg @ git+https://github.com/r-pad/pyg_libs.git
  • rpad-visualize-3d @ git+https://github.com/r-pad/visualize_3d.git
  • torch ~= 1.11
  • torch-geometric ~= 2.2.0
  • torch_cluster ~= 1.6.0
  • torch_scatter ~= 2.0.9
  • torch_sparse ~= 0.6.15
  • torch_spline_conv ~= 1.2.1
  • wandb *
setup.py pypi