Presentation is loading. Please wait.

Presentation is loading. Please wait.

Conflict resolution CS 395 Behavior-Based Robotics.

Similar presentations


Presentation on theme: "Conflict resolution CS 395 Behavior-Based Robotics."— Presentation transcript:

1 Conflict resolution CS 395 Behavior-Based Robotics

2 Naïve behavior-based systems  Behavior = policy + trigger  System = set of behaviors  Assume mutually exclusive triggers  Use policy of currently triggered behavior  Problem: what happens when triggers aren’t mutually exclusive?

3 Types of conflict resolution  Types of activation  Binary: on or off  Graded (numerical): degrees of activation  Types of combination  Switching (choose a behavior)  Blending (form a composite action)

4 Switched arbitration  Fixed priorities  Give each behavior a priority  Use binary activation  Choose policy of highest priority active behavior  Dynamic priorities  Use graded activation  Choose most active behavior

5 Arbitration in GRL Arbitration schemes implemented as functions over behaviors  Input A set of behaviors to decide between  Output A composite behavior with the output of the selected input behavior

6 Simple switching (Brooks?)  Assume binary activation and only two behaviors  Operates like or in Scheme or || in C++: Takes the leftmost input that’s “on”. (define-signal (behavior-or b1 b2) (behavior (or (activation-level b1) (activation-level b2)) (if (activation-level b1) (motor-vector b1) (motor-vector b2))))

7 A cleaverer way to code it These compile to exactly the same code since: (or a b) is defined to be: (if a a b) (define-signal (behavior-or b1 b2) (if (activation-level b1) b1 b2))

8 What it looks like as signals b1 b2 or if Motor vectors Activation levels output

9 More than two behaviors Notes:  This is a different (and somewhat cleaner) implementation than the one in the notes  The compiler knows to perform the outer if at compile time  There don’t end up being any linked lists at run time. (define-signal (behavior-or first-behavior. rest-of-behaviors) (if (null? rest-of-behaviors) first-behavior (if (activation-level first-behavior) first-behavior (apply behavior-or rest-of-behaviors)))) Extra args passed as a list calls a procedure with a list of arguments

10 Brooks’ suppress operator  Like behavior-or, but stays with the first argument for a while even after it becomes inactive  Good for removing chatter (define-signal (suppress suppressor suppressee time) (let ((suppressing? (< (true-time (not (activation-level suppressor))) time))) (behavior (or suppressing? (activation-level b2)) (if suppressing? (motor-vector b1) (motor-vector b2))))

11 Switching with dynamic priorities (Tinbergen) Remember:  Behaviors now have graded activation  Arg-max returns the position of the maximum argument, not its value  List-ref returns the list element with the specified position  Again, the compiler in-lines all of this so there aren’t actually any lists at run time (define-signal (behavior-max. behaviors) (list-ref behaviors (apply arg-max (activation-level behaviors))))

12 Computing arg-max using lateral inhibition  Biological system often use maximal activation for conflict arbitration using a “winner-take-all network”  Each signal inhibits the other signals  Less active signals inhibit each other less  More active signals are more inhibiting and less inhibited  Eventually, the strongest signal wins, and the others are turned off

13 Motor schemas (Arbib, Arkin) (define-signal (weighted-motor-vector behavior) ;; Returns behavior’s motor vector ;; with each element multiplied by the behavior’s activation-level (* (activation-level behavior) (motor-vector behavior))) (define-signal (weighted-sum. behaviors) (apply + weighted-motor-vector behaviors)) (define-signal (behavior-+. behaviors) (behavior (apply + (activation-level behaviors)) (apply weighted-sum behaviors)))

14 Weighted voting (Rosenblatt/CMU)  Principle of least commitment  Don’t make decisions until you have to  Least commitment arbitration  Assume behaviors don’t return a single motor vector, but rather a set of preferences on possible motor vectors  Sum everyone’s preferences  Pick the vector with the most preference

15 Weighted voting for directions Notes  Behaviors are now vectors of numbers of rating each of 16 different directions to move in  Angle-preferences takes a function from angles to numbers and returns a vector of 16 samples of the function (define-signal avoid-obstacles sonar-readings) (define-signal go-forward (angle-preferences cos)) (define-signal angle-preferences (+ avoid-obstacles go-forward)) (define-signal motor-vector (follow-xy-vector (unit-vector (* (vector-arg-max angle-preferences) radians-per-angle-sample))))


Download ppt "Conflict resolution CS 395 Behavior-Based Robotics."

Similar presentations


Ads by Google