1 / 18

November 2, 2007

Declarative Programming for Modular Robots Ashley-Rollman, De Rosa, Srinivasa, Pillai, Goldstein, Campbell. November 2, 2007. Locally Distributed Predicates (LDP) & Meld. Two very different approaches to declarative programming for modular robots Meld - logic programming

frye
Download Presentation

November 2, 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Declarative Programming for Modular Robots

  3. 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 Declarative Programming for Modular Robots

  4. 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 Declarative Programming for Modular Robots

  5. LDP and Meld: A Comparison Declarative Programming for Modular Robots

  6. Example: 3D Shape Change Algorithm • <20 lines of Meld or LDP • Connectivity maintenance guaranteed by algorithm Declarative Programming for Modular Robots

  7. Example 1: Setting Module State type state(module, min int). state(A, FINAL) :- isSeed(A). state(B, FINAL) :- neighbor(A, B), state(A, FINAL), in(B). forall (a) where (a.isSeed) do a.state = FINAL; forall (a,b) where (a.state = FINAL) & (b.inside) do b.state = FINAL; • 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 Meld LDP Declarative Programming for Modular Robots

  8. LDP and Meld: A Comparison Declarative Programming for Modular Robots

  9. Example 2: Evaluation Over all Neighbors 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(); 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). • 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 Meld LDP Declarative Programming for Modular Robots

  10. LDP and Meld: A Comparison Declarative Programming for Modular Robots

  11. Example 3: Self-deleting Gradients Declarative Programming for Modular Robots

  12. Example 3: Self-deleting Gradients 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. • 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 Meld LDP Declarative Programming for Modular Robots

  13. LDP and Meld: A Comparison Declarative Programming for Modular Robots

  14. Example 4: Spanning Tree Creation Declarative Programming for Modular Robots

  15. Example 4: Spanning Tree Creation 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 parent(module, first module). parent(A, A) :- root(A). parent(B, A) :- neighbor(B, A), parent(A, _). • Newer versions of Meld use the “first” aggregate to ensure uniqueness • This qualifier is not sufficient for more complex situations Declarative Programming for Modular Robots

  16. Example 4b: Spanning Tree Creation 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). • 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 Declarative Programming for Modular Robots

  17. LDP and Meld: A Comparison Declarative Programming for Modular Robots

  18. 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 Declarative Programming for Modular Robots

More Related