1 Introduction
1.1 Related work
1.2 Contributions
1.3 Structure of the article
2 Preliminaries
3 Spatial relations between objects
3.1 Distance-based relations
3.2 Projection-based relations
3.3 Angle-based relations
3.4 Spatial compositions and quantitative semantics
Symbol | Operator |
---|---|
\(\mathcal {X}\phi \) | \(\phi \) holds next time step |
\(\phi _1\mathcal {U}\phi _2\) | \(\phi _1\) holds until \(\phi _2\) |
\(\mathcal {F}\phi \) | \(\phi \) holds eventually |
\(\mathcal {G}\phi _1\) | \(\phi \) always holds |
4 Temporal behaviour of spatial relations
5 Monitoring and planning with SpaTiaL
5.1 Online monitoring
5.2 Automaton-based online planning
5.2.1 Analysis of the planning approach
6 Experiments
6.1 Implementation
Experiment | Framerate | Mean | StdDev |
---|---|---|---|
Block pushing | 30 fps | 32.12 ms | 0.2 ms |
10 fps | 12.7 ms | 0.44 ms | |
Pick-and-place | 30 fps | 71.15 ms | 0.57 ms |
10 fps | 16 ms | 0.86 ms |
6.2 Monitoring robotics tasks
Specification | Definition |
---|---|
\(\phi _\textrm{blocks}\) | \((\mathcal {F}(red {{\,\textrm{enclIn}\,}}redGoal )) \wedge (\mathcal {F}(green {{\,\textrm{enclIn}\,}}greenGoal )) \wedge (\mathcal {G}((red1 {{\,\textrm{closeTo}\,}}blue1 ) \rightarrow (red1 {{\,\textrm{below}\,}}blue1 )))\) |
\(\wedge (\mathcal {G}(red2 {{\,\textrm{closeTo}\,}}blue2 ) \rightarrow (red2 {{\,\textrm{above}\,}}blue2 ))) \wedge (\mathcal {G}((green1 {{\,\textrm{closeTo}\,}}blue1 ) \rightarrow (green1 {{\,\textrm{below}\,}}blue1 )))\) | |
\(\wedge (\mathcal {G}((green2 {{\,\textrm{closeTo}\,}}blue2 ) \rightarrow (green1 {{\,\textrm{above}\,}}blue2 )))\) | |
\(\phi _\textrm{pnp}\) | \((\mathcal {F} ((mug {{\,\textrm{leftOf}\,}}plate ) \wedge (mug \,\textrm{ovlp}\,plate )) ) \wedge ( (\lnot (plate {{\,\textrm{moved}\,}}plate [-1])) U ((cookies {{\,\textrm{above}\,}}plate )\) |
\( \wedge (cookies \,\textrm{ovlp}\,plate )\wedge (orange {{\,\textrm{above}\,}}plate ) \wedge (orange \,\textrm{ovlp}\,plate )) \wedge (\mathcal {F} (coffee {{\,\textrm{rightOf}\,}}plate ) \wedge (milk {{\,\textrm{closeTo}\,}}coffee )\) | |
\( \wedge (milk {{\,\textrm{rightOf}\,}}coffee ) \wedge ) )(\mathcal {F}(jug {{\,\textrm{leftOf}\,}}coffee ) \wedge (jug {{\,\textrm{closeTo}\,}}coffee ))\) | |
\(\phi _\textrm{plan,pnp}\) | \(\mathcal {F} ( kanelbulle {{\,\textrm{enclIn}\,}} plate )\) |
\(\wedge \mathcal {F} (0.1 \le banana {{\,\textrm{d}\,}} plate \le 0.3 \wedge banana {{\,\textrm{leftOf}\,}} plate \wedge banana {{\,\textrm{below}\,}} plate )\) | |
\(\wedge \mathcal {F} (0.1 \le mug {{\,\textrm{d}\,}} plate \le 0.3 \wedge mug {{\,\textrm{leftOf}\,}} plate \wedge mug {{\,\textrm{above}\,}} plate )\) | |
\(\wedge \mathcal {F} (0.1 \le bottle {{\,\textrm{d}\,}} plate \le 0.3 \wedge bottle {{\,\textrm{leftOf}\,}} plate \wedge bottle {{\,\textrm{above}\,}} plate )\) | |
\(\wedge \mathcal {F} ( sugarbox {{\,\textrm{d}\,}} plate \ge 0.4 \wedge sugarbox {{\,\textrm{d}\,}} crackerbox \le 0.2)\) | |
\(\phi _\textrm{ABB}\) | \((\mathcal {G}(( bowl {{\,\textrm{d}\,}} fork \ge 0.001) \wedge ( bowl {{\,\textrm{d}\,}} knife \ge 0.001) \wedge ( bowl {{\,\textrm{d}\,}} mug \ge 0.001) \wedge ( mug {{\,\textrm{d}\,}} knife \ge 0.001) \) |
\(\wedge ( mug {{\,\textrm{d}\,}} fork \ge 0.001) \wedge ( knife {{\,\textrm{d}\,}} fork \ge 0.001)))\wedge (\mathcal {F}((( bowl {{\,\textrm{d}\,}} center \le 0.01) \wedge (\mathcal {F}(( fork {{\,\textrm{leftOf}\,}} center )\) | |
\( \wedge ( fork {{\,\textrm{d}\,}} center \le 0.10))) \wedge (\mathcal {F}(( mug {{\,\textrm{above}\,}} center ) \wedge ( mug {{\,\textrm{rightOf}\,}} center )\) | |
\( \wedge ( mug {{\,\textrm{d}\,}} center \le 0.20))) \wedge (\mathcal {F}(( knife {{\,\textrm{rightOf}\,}} center ) \wedge ( knife {{\,\textrm{d}\,}} bowl \le 0.10))))))\) |
Predicate | Specification | Satisfying Obj | Violating Obj | Worst Violation | Highest Satisfaction |
---|---|---|---|---|---|
\(\,\textrm{ovlp}\,\) | \(\mathcal {G}\big ( \textrm{close}_1\rightarrow (\mathcal {G}_{[30,60]}\lnot \textrm{close}_1)\big ) \) | 35 (53%) | 31 (47%) | ID 40, value=\(-47.0\) | ID 113, value=296.0 |
\(\mathcal {G} \big (\textrm{close}_1\rightarrow (\mathcal {G}_{[90,180]}\lnot \textrm{close}_1)\big ) \) | 41 (62%) | 25 (38%) | ID 40, value=\(-47.0\) | ID 113, value=293.8 | |
\(\mathcal {G}\big ( \textrm{close}_1\rightarrow (\mathcal {F}_{[0,60]}\lnot \textrm{close}_1)\big ) \) | 43 (65%) | 23 (35%) | ID 40, value=\(-47.0\) | ID 113, value=298.1 | |
\(\mathcal {G}\big ( \textrm{close}_1\rightarrow (\mathcal {F}_{[0,150]}\lnot \textrm{close}_1)\big ) \) | 49 (74%) | 18 (26%) | ID 40, value=\(-47.0\) | ID 113, value=298.2 | |
\({{\,\textrm{closeTo}\,}}\) | \(\mathcal {G}\big ( \textrm{close}_2\rightarrow (\mathcal {G}_{[30,60]}\lnot \textrm{close}_2)\big ) \) | 25 (38%) | 41 (62%) | ID 40, value=\(-62.0\) | ID 113, value=281.0 |
\(\mathcal {G}\big ( \textrm{close}_2\rightarrow (\mathcal {G}_{[90,180]}\lnot \textrm{close}_2)\big ) \) | 30 (45%) | 36 (55%) | ID 40, value=\(-62.0\) | ID 113, value=278.8 | |
\(\mathcal {G}\big ( \textrm{close}_2\rightarrow (\mathcal {F}_{[0,60]}\lnot \textrm{close}_2)\big ) \) | 31 (47%) | 35 (53%) | ID 40, value=\(-62.0\) | ID 113, value=283.2 | |
\(\mathcal {G}\big ( \textrm{close}_2\rightarrow (\mathcal {F}_{[0,150]}\lnot \textrm{close}_2)\big ) \) | 40 (61%) | 26 (39%) | ID 40, value=\(-62.0\) | ID 113, value=283.2 |
6.3 Monitoring agents in the environment
-
\((\phi _1) \,\, \big (\mathcal {G}\ \text {close}\rightarrow (\mathcal {G}_{[30,60]}\lnot \text {close}))\),
-
\((\phi _2) \,\, \big (\mathcal {G}\ \text {close}\rightarrow (\mathcal {G}_{[90,180]}\lnot \text {close}))\),
-
\((\phi _3) \,\,\big (\mathcal {G}\ \text {close}\rightarrow (\mathcal {F}_{[0,60]}\lnot \text {close})\big )\),
-
\((\phi _4) \,\,\big (\mathcal {G}\ \text {close}\rightarrow (\mathcal {F}_{[0,150]}\lnot \text {close})\big )\),