Task scheduling and execution for long-term autonomy Nick Hawes, University of Birmingham [email protected] http://www.cs.bham.ac.uk/~nah @hawesie

http://strands-project.eu

Long-Term Autonomy in Everyday Environments

Goal-Oriented Behaviour We assume our robot has goals which are either provided by a user or generated by an internal system

Goal

Some system will provide a sequence of actions which achieve a given goal

Actions

Each action maps to an underlying behaviour which is the implementation of the action on the robot

Behaviours

Planning gives us an ordering of actions to achieve a goal

Real-world problems also need time and resources

Scheduling assigns time and resources to jobs A job is a collection of actions with ordering constraints. Each action has a duration. The aim is to make an assignment of times to actions (a schedule) in order to achieve some criterion, e.g. makespan.

Jobs( {AddEngine1 ≺ AddWheels1 ≺ Inspect1}, {AddEngine2 ≺ AddWheels2 ≺ Inspect2})

Action( AddEngine1, DURATION:30) Action( AddEngine2, DURATION:60) Action( AddWheels1, DURATION:30) Action( AddWheels1, DURATION:15) Action( Inspect, DURATION:10)

For each action assign earliest start time ES and latest start time LS The critical path method: define the path through the action graph with longest duration

AddEngine1

AddWheels1

Inspect1

30

30

10

Start

Finish

AddEngine2

AddWheels2

Inspect2

60

15

10

For each action assign earliest start time ES and latest start time LS The critical path method: define the path through the action graph with longest duration

AddEngine1

AddWheels1

Inspect1

30

30

10

Start

Finish

AddEngine2

AddWheels2

Inspect2

60

15

10

Use the critical path to define the overall length of the schedule, i.e.[ES, LS] for Start and Finish

AddEngine1

AddWheels1

Inspect1

30

30

10

Start

Finish

AddEngine2

AddWheels2

Inspect2

60

15

10

Use the critical path to define the overall length of the schedule, i.e.[ES, LS] for Start and Finish and for the actions on the critical path

AddEngine1

AddWheels1

Inspect1

30

30

10

[0,0]

[85,85]

Start

Finish

AddEngine2

AddWheels2

Inspect2

60

15

10

Use the critical path to define the overall length of the schedule, i.e.[ES, LS] for Start and Finish and for the actions on the critical path

AddEngine1

AddWheels1

Inspect1

30

30

10

[0,0]

[85,85]

Start

Finish [0,0]

[60,60]

[75,75]

AddEngine2

AddWheels2

Inspect2

60

15

10

Use these constraints to complete[ES, LS] for the remaining actions

ES(B) =

max A ≺ B

ES(A) + Duration(A)

LS(A) =

min B ≻ A

LS(B) - Duration(A)

AddEngine1

AddWheels1

Inspect1

30

30

10

[0,0]

[85,85]

Start

Finish

0

0 [0,0]

[60,60]

[75,75]

AddEngine2

AddWheels2

Inspect2

60

15

10

Action with latest earliest start preceding B

Action with earliest latest start preceding A

ES(B) =

max A ≺ B

ES(A) + Duration(A)

LS(A) =

min B ≻ A

LS(B) - Duration(A)

AddEngine1

AddWheels1

Inspect1

30

30

10

[0,0]

[85,85]

Start

Finish

0

0 [0,0]

[60,60]

[75,75]

AddEngine2

AddWheels2

Inspect2

60

15

10

Action with latest earliest start preceding B

Action with earliest latest start preceding A

ES(B) =

max A ≺ B

ES(A) + Duration(A)

LS(A) =

min B ≻ A

LS(B) - Duration(A)

[0,15]

[30,45]

[60,75]

AddEngine1

AddWheels1

Inspect1

30

30

10

[0,0]

[85,85]

slack = LS

Start

- ES

Finish

0

0 [0,0]

[60,60]

[75,75]

AddEngine2

AddWheels2

Inspect2

60

15

10

AddWheels1 AddEngine1

Ins 1 AddEngine2

Ins 2 AddWheels2

time

ES(Start) = 0 ES(B) =

max A ≺ B

ES(A) + Duration(A)

LS(Finish) = ES(Finish) LS(A) =

min B ≻ A

LS(B) - Duration(A)

Scheduling ordered tasks with no additional constraints is pretty easy: a conjunction of linear constraints Solve with dynamic programming, integer programming etc.

Jobs( {AddEngine1 ≺ AddWheels1 ≺ Inspect1}, {AddEngine2 ≺ AddWheels2 ≺ Inspect2})

Action( AddEngine1, DURATION:30) Action( AddEngine2, DURATION:60) Action( AddWheels1, DURATION:30) Action( AddWheels1, DURATION:15) Action( Inspect, DURATION:10)

Jobs( {AddEngine1 ≺ AddWheels1 ≺ Inspect1}, {AddEngine2 ≺ AddWheels2 ≺ Inspect2}) Resources( EngineHoists(1), WheelStations(1), Inspectors(2), LugNuts(500)) Action( AddEngine1, DURATION:30) Action( AddEngine2, DURATION:60) Action( AddWheels1, DURATION:30) Action( AddWheels1, DURATION:15) Action( Inspect, DURATION:10)

Jobs( {AddEngine1 ≺ AddWheels1 ≺ Inspect1}, {AddEngine2 ≺ AddWheels2 ≺ Inspect2}) Resources( EngineHoists(1), WheelStations(1), Inspectors(2), LugNuts(500)) Action( AddEngine1, DURATION:30, USE: EngineHoists(1)) Action( AddEngine2, DURATION:60, USE: EngineHoists(1))) Action( AddWheels1, DURATION:30, CONSUME: LugNuts(20), USE: WheelStations(1))) Action( AddWheels1, DURATION:15, CONSUME: LugNuts(20), USE: WheelStations(1))) Action( Inspect, DURATION:10, USE: Inspectors(1)))

ES(Start) = 0 ES(B) =

max A ≺ B

ES(A) + Duration(A)

LS(Finish) = ES(Finish) LS(A) =

min B ≻ A

LS(B) - Duration(A)

Now we have to include disjunctions so we’re back to an NP-hard problem.

Scheduling for a mobile robot introduces both challenges and simplifications.

A task is a single, indivisible unit of behaviour to achieve a goal (often implicit)

Actions

Goal

Task Scheduling for Mobile Robots Using Interval Algebra Mudrová and Hawes. In, ICRA ‘15.

How to tell a robot what time to do something?

Not just order, but precise starting times (e.g. 14:02)

Considering up to 100 tasks

Task

taski di

si ti s pi

ei

action e p

i

taski taskj taski taskj taski taskj

∀i : min∑(ti − si)

Coltin et al.*

Scheduling using mixed-integer programming

si ≤ ti ∧ (ti + di) ≤ ei

* e.g. Brian Coltin, Manuela Veloso, and Rodrigo Ventura. Dynamic User Task Scheduling for Mobile Robots. In Proceedings of the AAAI Workshop on Automated Action Planning for Autonomous Mobile Robots at AAAI. 2011.

Coltin et al.*

Scheduling using mixed-integer programming

si ≤ ti ∧ (ti + di) ≤ ei ∀i,j : ti + di +

e s time(p i,p j)

≤ tj

e s time(p j,p i)

≤ ti

or

∀i,j : tj + dj +

∀i : min∑(ti − si) * e.g. Brian Coltin, Manuela Veloso, and Rodrigo Ventura. Dynamic User Task Scheduling for Mobile Robots. In Proceedings of the AAAI Workshop on Automated Action Planning for Autonomous Mobile Robots at AAAI. 2011.

∀i,j : ti + di +

e s time(p i,p j)

≤ tj

e s time(p j,p i)

≤ ti

or

∀i,j : tj + dj +

Reasoning about tasks’ time windows: si ei vs sj ej no constraint

i precedes j

j precedes i

both

i before j

i overlaps j

j overlaps i

i during j

i meets j

i starts j

j starts i

j during i

j before i

j finishes i

i finishes j

i equals j

j meets i

Allen’s Interval Algebra J. F. Allen. Maintaining knowledge about temporal intervals. Communications of the ACM, 26(11):832– 843, 1983.

i

i j i j

i j i j

i j i j

i before j j



no order constraint

i overlaps j choose only possible order constraint

i overlaps j choose order to satisfy ∀i : min∑(ti − si)

i equals j pick first one seen

Care

Security

# Problems

606

358

Smallest Problem

1

1

Largest Problem

135

71

Mean Problem Size

28.88 (σ 26.28)

9.59 (σ 12.97)

# Problems >15

349 (58%)

106 (30%)

Task

taski di

si ti s pi

ei

action e p

i

Task

taski taskj Optimal and Dynamic Planning for
 Markov Decision Processes with Co-Safe LTL Specifications Lacerda, Parker and Hawes. In, IROS‘14.

Best 8 matches between straight-line and recorded times

mean time from robot

straight line time

Worst 8 matches between straight-line and recorded times

mean time from robot

straight line time

W3

0.1 W1

cost = 54

0.9

W2

action goto W2 from W1

Why use an MDP?

5 Goal is to be in state W3

W1

W3

3 Policy:

W2

W1

W3

W2

W3

W3

W3

3

5 (F W2) eventually reach W2

W1

W3

3 Policy:

W2

W1

W3

W2

W3

3

(F W2) ⋀ (F W3) eventually reach W2 and W3

W3

W3

(F W2) ⋀ (F W3) eventually reach W2 and W3 ¬W3

W2 ¬W2 ⋀ ¬W3

init

W3 ¬W2

W3

true W2

W2 ⋀ W3 Cool tool: http://www.lsv.ens-cachan.fr/~gastin/ltl2ba

W1

W2

W1

W3

W1

W2

W1

W1

5 W1

¬W3 W3

3 W2

3



W2

¬W2 ⋀ ¬W3

init

W3

W3 ¬W2

true W2

W1

W3

W1

W2

W1

W2

W3

W2

W3

W1

W3

W2

B. Lacerda, D. Parker, and N. Hawes. Optimal and Dynamic Planning for Markov Decision Processes with Co-Safe LTL Specifications. In: IROS 2014.

B. Lacerda, D. Parker, and N. Hawes. Optimal and Dynamic Planning for Markov Decision Processes with Co-Safe LTL Specifications. In: IROS 2014.

B. Lacerda, D. Parker, and N. Hawes. Optimal and Dynamic Planning for Markov Decision Processes with Co-Safe LTL Specifications. In: IROS 2014.

g. 4. reconstructed signal for traversability and time along different time periods, top left figure is the action outcomes used for the model building, th maining three figures represent the predicted pe (t) state along different time frames, one month (top right), one week (bottom left) and one day (bottom ht). Weekly and monthly periodicities are presented starting from Monday, the day depicted in the bottom left figure is a Thursday.

J. Pulido Fentanes, B. Lacerda, T. Krajník, N. Hawes, and M. Hanheide. Now or later? predicting and maximising success of navigation actions olicies that maximise overall expected success of the LTL model checker [21] to generate a policy that maximize sk. from long-term experience. In ICRA, 2015. the probability of satisfying a co-safe LTL formula, i.e., w In order to generate a policy at a given time t, we start

generate the policy that fulfils the task while minimizing th

Routine

lo

ng sp -te ec rm ifi ca tas tio k n

Task framework

Executive

Control

Task Executor

task order and timings

ion at n vig tio na ecu ex

Optimal Nav

Scheduler

on i t a s g i n v na ratio du

Action - GitHub

Task Scheduling for Mobile Robots Using Interval Algebra. Mudrová and Hawes. .... W1. W2. W3. 0.9 action goto W2 from W1. 0.1. Why use an MDP? cost = 54 ...

7MB Sizes 8 Downloads 316 Views

Recommend Documents

HTML5 in Action - GitHub
on the client machine between sessions. The data can be overwritten or erased only by the application itself or by the user performing a manual clear down of the local stor- age area. The API of the sessionStorage attribute is identical to that of th

Fingerprint Authentication in Action - GitHub
My name is Ben Oberkfell, I'm an Android developer at American Express on the US ... developer.android.com/resources/dashboard/screens.html ... Page 10 ...

Spring in Action FOURTH EDITION - GitHub
process, there were numerous hands on the bits and bytes that you downloaded— hands that edited it, ..... Rod Johnson and described in his book Expert One-on-One: J2EE Design and Development (Wrox, 2002, http:// ...... Spring profiles are a great w

GitHub
domain = meq.domain(10,20,0,10); cells = meq.cells(domain,num_freq=200, num_time=100); ...... This is now contaminator-free. – Observe the ghosts. Optional ...

GitHub
data can only be “corrected” for a single point on the sky. ... sufficient to predict it at the phase center (shifting ... errors (well this is actually good news, isn't it?)

Torsten - GitHub
Metrum Research Group has developed a prototype Pharmacokinetic/Pharmacodynamic (PKPD) model library for use in Stan 2.12. ... Torsten uses a development version of Stan, that follows the 2.12 release, in order to implement the matrix exponential fun

Untitled - GitHub
The next section reviews some approaches adopted for this problem, in astronomy and in computer vision gener- ... cussed below), we would question the sensitivity of a. Delaunay triangulation alone for capturing the .... computation to be improved fr

ECf000172411 - GitHub
Robert. Spec Sr Trading Supt. ENA West Power Fundamental Analysis. Timothy A Heizenrader. 1400 Smith St, Houston, Tx. Yes. Yes. Arnold. John. VP Trading.

Untitled - GitHub
Iwip a man in the middle implementation. TOR. Andrea Marcelli prof. Fulvio Risso. 1859. Page 3. from packets. PEX. CethernetDipo topo data. Private. Execution. Environment to the awareness of a connection. FROG develpment. Cethernet DipD tcpD data. P

BOOM - GitHub
Dec 4, 2016 - 3.2.3 Managing the Global History Register . ..... Put another way, instructions don't need to spend N cycles moving their way through the fetch ...

Supervisor - GitHub
When given an integer, the supervisor terminates the child process using. Process.exit(child, :shutdown) and waits for an exist signal within the time.

robtarr - GitHub
http://globalmoxie.com/blog/making-of-people-mobile.shtml. Saturday, October ... http://24ways.org/2011/conditional-loading-for-responsive-designs. Saturday ...

MY9221 - GitHub
The MY9221, 12-channels (R/G/B x 4) c o n s t a n t current APDM (Adaptive Pulse Density. Modulation) LED driver, operates over a 3V ~ 5.5V input voltage ...

fpYlll - GitHub
Jul 6, 2017 - fpylll is a Python (2 and 3) library for performing lattice reduction on ... expressiveness and ease-of-use beat raw performance.1. 1Okay, to ... py.test for testing Python. .... GSO complete API for plain Gram-Schmidt objects, all.

article - GitHub
2 Universidad Nacional de Tres de Febrero, Caseros, Argentina. ..... www-nlpir.nist.gov/projects/duc/guidelines/2002.html. 6. .... http://singhal.info/ieee2001.pdf.

PyBioMed - GitHub
calculate ten types of molecular descriptors to represent small molecules, including constitutional descriptors ... charge descriptors, molecular properties, kappa shape indices, MOE-type descriptors, and molecular ... The molecular weight (MW) is th

MOC3063 - GitHub
IF lies between max IFT (15mA for MOC3061M, 10mA for MOC3062M ..... Dual Cool™ ... Fairchild's Anti-Counterfeiting Policy is also stated on ourexternal website, ... Datasheet contains the design specifications for product development.

MLX90615 - GitHub
Nov 8, 2013 - of 0.02°C or via a 10-bit PWM (Pulse Width Modulated) signal from the device. ...... The chip supports a 2 wires serial protocol, build with pins SDA and SCL. ...... measure the temperature profile of the top of the can and keep the pe

Covarep - GitHub
Apr 23, 2014 - Gilles Degottex1, John Kane2, Thomas Drugman3, Tuomo Raitio4, Stefan .... Compile the Covarep.pdf document if Covarep.tex changed.

SeparableFilter11 - GitHub
1. SeparableFilter11. AMD Developer Relations. Overview ... Load the center sample(s) int2 i2KernelCenter ... Macro defines what happens at the kernel center.

Programming - GitHub
Jan 16, 2018 - The second you can only catch by thorough testing (see the HW). 5. Don't use magic numbers. 6. Use meaningful names. Don't do this: data("ChickWeight") out = lm(weight~Time+Chick+Diet, data=ChickWeight). 7. Comment things that aren't c