Skip to content

lyltc1/LTAMP

 
 

Repository files navigation

LTAMP

Learning for Task and Motion Planning (LTAMP)

Overview

Robotic multi-step manipulation planning for a PR2 robot using both learned and engineered models of primitive actions.

  • Learned: pour, push, scoop, stir
  • Engineered: move, pick, place, press

References

Zi Wang*, Caelan Reed Garrett*, Leslie Pack Kaelbling, Tomás Lozano-Pérez. Learning compositional models of robot skills for task and motion planning, The International Journal of Robotics Research (IJRR), 2020.

Zi Wang, Caelan R. Garrett, Leslie P. Kaelbling, Tomás Lozano-Pérez. Active model learning and diverse action sampling for task and motion planning, International Conference on Intelligent Robots and Systems (IROS), 2018.

Installation

$ git clone --recursive git@github.com:caelan/LTAMP.git
$ cd LTAMP
LTAMP$ ./setup.bash

Inverse Kinematics (IK)

setup.py - compiles an IKFast analytical IK program for both of the PR2's arms

LTAMP$ cd control_tools/ik/
LTAMP$ control_tools/ik/$ python setup.py build

See README for details about using the existing and generating new IK solvers.


Examples

Planning, experimentation, and learning in a simulated PyBullet environment.

Planning

run_simulation.py: tests the planning module in simulation

LTAMP$ python -m plan_tools.run_simulation -h
usage: run_simulation.py [-h] [-c] [-e] [-p {test_block,test_coffee,test_holding,test_pour,test_push,test_shelves,test_stack_pour,test_stacking,test_stir}] [-s SEED] [-v] [-d]

optional arguments:
  -h, --help            show this help message and exit
  -c, --cfree           When enabled, disables collision checking (for debugging).
  -e, --execute         When enabled, executes the plan using physics simulation.
  -p {test_block,test_coffee,test_holding,test_pour,test_push,test_shelves,test_stack_pour,test_stacking,test_stir}, --problem {test_block,test_coffee,test_holding,test_pour,test_push,test_shelves,test_stack_pour,test_stacking,test_stir}
                        The name of the problem to solve.
  -s SEED, --seed SEED  The random seed to use.
  -v, --visualize_planning
                        When enabled, visualizes planning rather than the world (for debugging).
  -d, --disable_drawing
                        When enabled, disables drawing names and forward reachability.

Data Collection

collect_simulation.py: collects manipulation-primitive data in simulation

LTAMP$ python -m learn_tools.collect_simulation -h
usage: collect_simulation.py [-h] [-f FN] [-n NUM] -p {pour,push,scoop,stir} [-t TIME] [-v]

optional arguments:
  -h, --help            show this help message and exit
  -f FN, --fn FN        The parameter function to use.
  -n NUM, --num NUM     The number of samples to collect.
  -p {pour,push,scoop,stir}, --problem {pour,push,scoop,stir}
                        The name of the skill to learn.
  -t TIME, --time TIME  The max planning runtime for each trial.
  -v, --visualize       When enabled, visualizes execution.


Modules

Planning

The planning module generates plans using the learned primitives.

Relevant planning submodules:

Learning

The learning module conducts manipulation-primitive data collection experiments and learns models from the collected data.

Control

The control module provides an interface for executing both simulated and real motion.

About

Learning for Task and Motion Planning (LTAMP)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 66.4%
  • Python 33.2%
  • Other 0.4%