Means-ends analysisReviewSlide 3Error feedback controlBehavior-based control (“Bottom-up”)Plan-based control (“Top-down”)Planning-based control (“Top-down”)Logic-based representations of the state spaceSlide 9GPS (Newell and Simon)The STRIPS representationPlanning with STRIPSReactive planning in fully reactive systemsGRL exampleComputing activation-levelsCompile-time property listsMaking the behaviorComputing desirable?Computing runnable?Gatherer functionsComputing conflicted?Slide 22Slide 23Slide 24A pathetic exampleSlide 26Compiled codeMeans-ends analysisNorthwestern UniversityCS 395 Behavior-Based RoboticsIan HorswillReviewRobot operates in an environmentState space SSet of possible motor outputs ADynamics (physics) that determines how the environment changes stateContinuous dynamics (continuous-time actions)f = dS/dt: SA S,f = d2S/dt2: SA S, etc.Discrete dynamics (atomic/ballistic actions, discrete time): SA SReviewWant to construct a policy to make the robot do the right thingp: S AComplete environment-robot system evolvesContinuous case: curve through state-spaceds/dt = f(s,p(s))Discrete case: system evolves through series of statess0s1 = (s0, p(s0))s2 = (s1, p(s1)) = ((s0, p(s0)), p((s0, p(s0))))Etc.Error feedback controlGoal state sgControl action computed from errords/dt = f(s- sg)d2s/dt2 = f(s- sg)Linear feedback controlf is a linear operatords/dt = k(s- sg)P control (proportional control)k is a gain you multiply byk is a matrix when s is a vectord2s/dt2 = kp(s- sg)+ kd ds/dt + ki ∫s dtPID controlBehavior-based control(“Bottom-up”)Combine policies by running them in parallelBehavior = policy + triggerBottom-up integration of behaviorsMap several behaviors to a single composite behavior (or composite policy)Several different composition operatorsBehavior-or (prioritization/subsumption)Behavior-+ (motor schemas/potential fields)Behavior-maxWeighted votingEtc.Plan-based control(“Top-down”)Combine policies by running them seriallyBehaviors → atomic actionsStill policy + activation levelExternally triggeredSelf-terminatingCombine behaviors using serial controllers (plans)Finite state machinesIndividual states canTrigger actionsWait for them to terminateWait for other external conditionsEtc.Planning-based control(“Top-down”)Combine policies “non-deterministically”Idea: “guess the action that will ultimately work”i.e. guess the one that leads to the goalProblem: this doesn’t help muchDon’t know which action(s) will ultimately workIf you guess wrong, you’re screwedSolution: simulationRun actions in simulationSearch through possible sequences of actions (plans) to find one that works and remember itExecute the successful plan in the real worldLogic-based representations of the state spaceRepresent states using propositions(true/false statements)Find a set of propositions that let you distinguish all the states you care aboutState = truth of each propositionAdvantage: partial state descriptionsP^Q is the set of states in which both P and Q are trueMeans-ends analysisPair goals up with actionsFor each proposition, keep track of the actions that can make it trueFor each action, write the precondition (partial state descriptions) for being able to run itTo solve the goal P^QLook up the action A that achieves PRecursively solve precondition(A)Run ARecursively solve Q without “clobbering” PGPS (Newell and Simon)“General Problem Solver”Used means-ends analysisAssumed priority ordering on propositionsAlgorithm:GPS(goal)while goal not yet true p = highest priority unsatisfied subgoal (subgoal = proposition inside of goal) a = action to solve p GPS(precondition(a)) do aThe STRIPS representationDefine actions in terms ofAdd list: propositions the action makes trueDelete list: propositions the action may make falsePrecondition list: propositions that must be true in order to run the actionPlanning with STRIPSGoal = set of propositions to make trueAlgorithm:STRIPS(initial, goal)for each subgoal p in goal not in initial for each action a with p in its add list try the plan: STRIPS(initial, precondition(a)) a STRIPS(initial-delete_list(a) +add_list(a), goal) if both recursive calls worked, we win else, try another action, or another subgoalReactive planning in fully reactive systemsCollection of behaviorsEach behavior achieves some goal(s)Each behavior has some precondition(s)Higher level system drives some goal signalGoal signalsActivate behaviors that achieve themDrive goal signals of preconditionsExamples:GAPPS (Kaelbling 90), Behavior Networks (Maes 90)GRL exampleExtended STRIPS representationOperators are just behaviors that activate themselves when they can achieve a goal.(define-operator name motor-vector (achieves add-list-signals …) (clobbers delete-list-signals …) (preconditions precondition-signals ...) (serial-preconditions precondition-signals ...) (required-resources names ...) (priority number))Computing activation-levelsA behavior is runn able if all its preconditions are satisfiedIt is desirable ifIt satisfies a maintenance goalIt satisfies some unsatisfied goal of achievementIt is unconf licted ifIt doesn’t clobber a satisfied goal or a maintenance goal, andNone of its resources are required by desirable operators of higher priorityCompile-time property lists(define-signal-property (add-list x) '())(define-signal-property (delete-list x) '())(define-signal-property (preconditions x) '())(define-signal-property (serial-preconditions x) '())(define-signal-property (priority x) 0)(define-signal-property (required-resources x) '())Making the behavior(letrec ((the-behavior (behavior (run? the-behavior) motor-vector-signal))) the-behavior)(define-signal (run? x) (and (desirable? x) (runnable? x) (not (conflicted? x))))Computing desirable?(define-signal-modality (desirable? x) (define adds (add-list x)) (signal-expression (or (apply or (unsatisfied-goal adds)) (apply or (maintain-goal adds))) (drives (goal (runnable? x))) (operator x)))Computing runnable?(define-signal-modality (runnable? x) (signal-expression
View Full Document