Presentation is loading. Please wait.

Presentation is loading. Please wait.

Declarative Programming for Modular Robots Ashley-Rollman, De Rosa, Srinivasa, Pillai, Goldstein, Campbell November 2, 2007.

Similar presentations


Presentation on theme: "Declarative Programming for Modular Robots Ashley-Rollman, De Rosa, Srinivasa, Pillai, Goldstein, Campbell November 2, 2007."— Presentation transcript:

1 Declarative Programming for Modular Robots Ashley-Rollman, De Rosa, Srinivasa, Pillai, Goldstein, Campbell November 2, 2007

2 11/2/2007Declarative Programming for Modular Robots2 Locally Distributed Predicates (LDP) & Meld Two very different approaches to declarative programming for modular robots –Meld - logic programming –LDP - distributed pattern matching Both achieve higher goals –Dramatically shorter code –Automatically distributed –Automatic messaging

3 11/2/2007Declarative Programming for Modular Robots3 LDP Overview Originated in Distributed Watchpoint system –Needed to describe and detect incorrect distributed state configurations Locally Distributed Predicates –Locally Distributed: involving a bounded number of connected modules –Predicates: boolean expressions over state, temporal, and topological variables An LDP program consists of a number of predicates, each with one or more attached actions –Every predicate/action pair is executed in parallel

4 11/2/2007Declarative Programming for Modular Robots4 Meld Overview Logic programming language –Inspired by P2 [Loo et. al. 2005] –Consists of facts and rules for deriving new facts When a fact changes, derived facts are automatically deleted Programs typically consider local neighborhoods Additional support for making non-local neighborhoods

5 11/2/2007Declarative Programming for Modular Robots5 LDP and Meld: A Comparison LDPMeld Approach Predicate Matching Proof Search Concise Code (vs. C++/Java)  Automatic Messaging  Operations over all neighbors countforall Quantified (Variably-Sized) Expressions  Automatic Fact Retraction  State ManagementBy Programmer By System

6 11/2/2007Declarative Programming for Modular Robots6 Example: 3D Shape Change Algorithm <20 lines of Meld or LDP Connectivity maintenance guaranteed by algorithm

7 11/2/2007Declarative Programming for Modular Robots7 Example 1: Setting Module State If the module is the seed Set the seed’s state to FINAL For every module inside the target shape If it is next to a module in FINAL state Set the module’s state to FINAL forall (a) where (a.isSeed) do a.state = FINAL; forall (a,b) where (a.state = FINAL) & (b.inside) do b.state = FINAL; type state(module, min int). state(A, FINAL) :- isSeed(A). state(B, FINAL) :- neighbor(A, B), state(A, FINAL), in(B). LDP Meld

8 11/2/2007Declarative Programming for Modular Robots8 LDP and Meld: A Comparison LDPMeld Approach Predicate Matching Proof Search Concise Code (vs. C++/Java)  Automatic Messaging  Operations over all neighbors countforall Quantified (Variably-Sized) Expressions  Automatic Fact Retraction  State ManagementBy Programmer By System

9 11/2/2007Declarative Programming for Modular Robots9 Example 2: Evaluation Over all Neighbors A module can only be deleted if none of its neighbors are children We first determine which neighbors are not children If there are no children, the module can be deleted type deletable(module). type notChild(module, module). notChild(A, B) :- neighbor(A, B), parent(B, C), A != C. deletable(A) :- forall neighbor(A, B) notChild(A, B). forall(a,b) where (b.parent != a.id) do a.$notChild.add(b.id); forall(a) where size(a.$notChild) = size(a.$neighbors) do a.delete(); LDP Meld

10 11/2/2007Declarative Programming for Modular Robots10 LDP and Meld: A Comparison LDPMeld Approach Predicate Matching Proof Search Concise Code (vs. C++/Java)  Automatic Messaging  Operations over all neighbors countforall Quantified (Variably-Sized) Expressions  Automatic Fact Retraction  State ManagementBy Programmer By System

11 11/2/2007Declarative Programming for Modular Robots11 Example 3: Self-deleting Gradients

12 11/2/2007Declarative Programming for Modular Robots12 Example 3: Self-deleting Gradients Meld deletes all dependent facts when the root fact is deleted LDP directly manipulates state variables, so retraction must be manual LDP must specify the maximum number of neighbors forall (a,b) where (a.value > b.value) do a.value = b.value + 1; forall (a,b[0,6]) where count(a.value > b[i].value) = 0 & a.value != 0 do a.value = INF; type gradient (module, min int). gradient(A, N) :- neighbor(A, B), gradient(B, M), N = M + 1. LDP Meld

13 11/2/2007Declarative Programming for Modular Robots13 LDP and Meld: A Comparison LDPMeld Approach Predicate Matching Proof Search Concise Code (vs. C++/Java)  Automatic Messaging  Operations over all neighbors countforall Quantified (Variably-Sized) Expressions  Automatic Fact Retraction  State ManagementBy Programmer By System

14 11/2/2007Declarative Programming for Modular Robots14 Example 4: Spanning Tree Creation

15 11/2/2007Declarative Programming for Modular Robots15 Example 4: Spanning Tree Creation Newer versions of Meld use the “first” aggregate to ensure uniqueness This qualifier is not sufficient for more complex situations type parent(module, first module). parent(A, A) :- root(A). parent(B, A) :- neighbor(B, A), parent(A, _). forall (a) where (a.isRoot = 1) do a.parent = a.id; forall (a,b) where (a.parent != -1) & (b.parent = -1) do b.parent = a.id:

16 11/2/2007Declarative Programming for Modular Robots16 Example 4b: Spanning Tree Creation Without “first”, Meld must use timestamps to ensure exactly one unique parent LDP uses a single state variable, and thus can never have more than one parent forall (a) where (a.isRoot = 1) do a.parent = a.id; forall (a,b) where (a.parent != -1) & (b.parent = -1) do b.parent = a.id: type possibleParent(module, module, int). type bestParent(module, min int). type parent(module, module). parent(A, A) :- root(A). possibleParent(B, A, T) :- neighbor(A, B), parent(A, _), T = localTimeStamp(). bestParent(B, T) :- possibleParent(B, _, T). parent(B, A) :- possibleParent(B, A, T), bestParent(B, T).

17 11/2/2007Declarative Programming for Modular Robots17 LDP and Meld: A Comparison LDPMeld Approach Predicate Matching Proof Search Concise Code (vs. C++/Java)  Automatic Messaging  Operations over all neighbors countforall Quantified (Variably-Sized) Expressions  Automatic Fact Retraction  State ManagementBy Programmer By System

18 11/2/2007Declarative Programming for Modular Robots18 Future Research Performance enhancements/optimizations Additional language features –Support transactions Applicability to other application domains Explore tradeoffs between automated and manual state control –Find a balance that allows programmers to maintain state while gaining some or all of the benefits of automated state Interested in Meld/LDP? Email [mderosa,mpa]@cs.cmu.edu


Download ppt "Declarative Programming for Modular Robots Ashley-Rollman, De Rosa, Srinivasa, Pillai, Goldstein, Campbell November 2, 2007."

Similar presentations


Ads by Google