A fast and scalable motion planning framework for tasks expressed in Linear Temporal Logic (LTL).
This repository contains code to accompany the paper Temporal Logic Motion Planning with Convex Optimization via Graphs of Convex Sets by Vince Kurtz and Hai Lin.
Make sure all dependencies are installed, then:
$ git clone https://github.com/vincekurtz/ltl_gcs
$ cd ltl_gcs
$ pip install .
Of these, only MONA and MOSEK require special consideration: all others can be
installed with pip
. For MOSEK, you only need a valid license: MOSEK itself is
installed along with Drake.
The following examples and several other can be found in the examples
directory.
Don't pass through a door until picking up a corresponding key, and eventually reach a goal.
LTL specification:
Solution:
File: examples/key_door.py
A similar task, but with more keys and doors.
LTL specification:
Solution:
File: examples/door_puzzle.py
Eventually visit
LTL specification:
Solution:
File: examples/random_polytopes.py
Eventually reach a target, and don't pass through a doorway until pressing a button. For this example, run the drake-visualizer
to view the result.
LTL specification:
Solution:
File: examples/robot_arm.py
Touch the green target with the left hand, then touch the red target with the right foot, then touch the blue target with the right hand. For this example, run the drake-visualizer
to view the result.
LTL specification:
Solution:
File: examples/atlas.py