Added twtlplan project

This commit is contained in:
2021-02-03 20:50:25 +01:00
parent 66f0591547
commit 4cf1e563bc
9 changed files with 125 additions and 42 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

View File

@@ -1,41 +0,0 @@
---
title: Example Project
summary: An example of using the in-built project page.
tags:
- Deep Learning
date: "2016-04-27T00:00:00Z"
# Optional external URL for project (replaces project detail page).
external_link: ""
image:
caption: Photo by rawpixel on Unsplash
focal_point: Smart
links:
- icon: twitter
icon_pack: fab
name: Follow
url: https://twitter.com/georgecushen
url_code: ""
url_pdf: ""
url_slides: ""
url_video: ""
# Slides (optional).
# Associate this project with Markdown slides.
# Simply enter your slide deck's filename without extension.
# E.g. `slides = "example-slides"` references `content/slides/example-slides.md`.
# Otherwise, set `slides = ""`.
slides: example
---
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.
Nullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.
Cras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.
Suspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.
Aliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,124 @@
---
title: Path Planning With TWTLPlan
summary: Sampling-based path planning using temporal logic specifications
tags: []
date: "2021-02-03"
# Optional external URL for project (replaces project detail page).
external_link: ""
image:
caption: ""
focal_point: Smart
links:
# - icon: twitter
# icon_pack: fab
# name: Follow
# url: https://twitter.com/georgecushen
url_code: "https://github.com/fran-penedo/twtlplan"
url_pdf: ""
url_slides: ""
url_video: ""
# Slides (optional).
# Associate this project with Markdown slides.
# Simply enter your slide deck's filename without extension.
# E.g. `slides = "example-slides"` references `content/slides/example-slides.md`.
# Otherwise, set `slides = ""`.
slides: ""
---
Motion planning is a fundamental problem in robotics. The
objective is to generate control policies for a robot to drive it from
an initial state to a goal region in its state space under
kino-dynamic constraints
Even without considering dynamics, the problem becomes increasingly
difficult in high dimensions, and it has been shown
to be PSPACE-complete. A class of algorithms
was developed relying on randomly sampling
the configuration space of the robot and planning local
motions between these samples.
Probabilistic Roadmaps and Rapidly Exploring
Random Trees are among the most widely known
examples, along with their asymptotically optimal variants,
PRM$^\*$ and RRT$^\*$.
Robots are increasingly required to perform complex tasks,
where correctness guarantees, such as safety and liveness
in human-robot teams and autonomous driving, are critical.
One approach is to encode the tasks as temporal logic specifications
and leverage formal methods techniques to generate
control policies that are correct by construction.
As opposed to traditional methods restricted to reach-avoid setups,
these frameworks are able to express more complex
tasks such as sequencing (e.g., "Reach $A$, then $B$"),
convergence ("Go to $A$ and stay there forever"),
persistent surveillance ("Visit $A$, $B$, and $C$ infinitely often"),
and more complex combinations of the above.
Some applications additionally require time constraints.
For example, consider the following task:
"Visit $A$, $B$, and $C$ in this order. Perform action $a$ for 2 time units at
$A$ within 10 time units. Then, perform $b$ for 3 time
units at $B$ within 6 time units. Finally, in the time window $[3, 9]$ after $b$ is finished,
perform $c$ for 1 time unit at $C$. All three actions must be finished
within 15 time units."
Temporal logics such as Linear Temporal Logic (LTL) or Computational Tree Logic
(CTL) can be used to encode the former kind of tasks, while tasks with explicit time
constraints may be expressed using bounded linear temporal
logic (BLTL), metric temporal logic (MTL),
signal temporal logic (STL), and time-window temporal logic
(TWTL).
A natural approach to generate control strategies from
rich task specifications for robots with large state spaces is to combine
sampling-based techniques with automata-based synthesis methods.
In this project, we proposed a language-guided sampling-based method to generate
robot control policies satisfying tasks expressed as TWTL formulae.
A TWTL formula
formally captures the notion of performing tasks of a certain duration in regions of interest
in order. For example, a specification in natural language such as
"perform task A of duration 1 within 2 time units; then, within the time
interval [1, 8] perform tasks B and C of durations 3 and 2, respectively; furthermore, C
must be finished within 4 time units from the start of B;" would correspond to the
following TWTL formula:
$$
f = [H^1 A]^{[0, 2]} * [H^3 B \wedge [H^2 C]^{[0, 4]}]^{[1, 8]}
$$
A key feature of TWTL is that a formula may be relaxed, i.e., we can add a variable
delay to each deadline. A relaxed formula with a positive delay is a weaker
specification, while a negative delay indicates a stronger specification. A path
satisfying a stronger specification satisfies a weaker one. TWTLPlan makes use of this
feature by finding a path that satisfies a weaker specification first, then attempts to
reduce the delay until the original specification is satified. These paths are computed
using a sampling-based algorithm called RRT$^\*$.
![Case Study 1 relaxed path found](/media/cs1_c.png)
![Case Study 1 satisfying path found](/media/cs1_d.png)
This approach has two advantages:
(a) the growth of the sampling graph is biased towards satisfaction of a
relaxed version of the specification
without initially taking into account deadlines, and
(b) after an initial policy has been found, sampling can be focused on the parts
of the plan that need to be improved.
The two stages can be thought of as exploration-exploitation phases,
where initially candidate solutions are found,
and then focused local sampling is performed on the parts
that need to be improved in order to satisfy the specification, i.e. time
constraints.
As a byproduct, a satisfying policy with respect to a minimally
relaxed version of the specification may be returned
when the original problem does not have a solution.
Such a policy may inform operators about timing problems in the specification
or system (i.e., robot dynamics and/or environment).
The algorithm uses annotated finite state automata to
represent all possible temporal relaxations of a TWTL formulae.
We were also able to prove that our solution is probabilistically complete.
We implemented our path planning algorithm in [TWTLPlan](https://github.com/fran-penedo/twtlplan).
Using this tool you can define 2D scenarios with rectangular obstacles and regions of
interest and generate satisfying paths for specifications given in a subset of TWTL.