Course:COGS300/Hierarchical Control

From UBC Wiki

In the COGS labs, we have always explored the idea of hierarchical controllers through the NXT robots. With our first hand experience with the robots, this is just meant to be a refresher on what exactly hierarchical controller is and what comprises it.


The main purpose of creating an architecture of hierarchical controllers is to increase the speed and efficiency at which a robot, reacts to the current dynamic environment. If one controller would intake all higher and lower level percepts AND decide on the actions it should take then the reaction of the robot would be a lot slower compared to having multiple controllers each taking in either higher or lower level percepts, etc.


To think about this in a simpler way, it would be better to look at a diagram that I have taken from our lecture and colour coded to show the inputs and outputs of each controller in the hierarchy.

FIGURE:

COGS.jpg

  • excuse the drawing :)

LEGEND:

Black boxes: Controllers

Purple: Outputs

Red: Inputs

Hot pink: next states

Salmon: Previous states

As you can see in the diagram that I have drawn out, the higher level controllers' outputs can be taken as inputs for the lower level controllers. There are multiple types of inputs and outputs which I explain below (I also give mnemonics so that we can try to remember everything for the final)

Two mnemonics can be used to remember all the possible inputs and outputs for the controllers:

Bender Steals Peanut Butter Cups for Amy

There are 3 possible types of inputs (Red arrows in the diagram):

 ⦁ features from BELIEF STATE
 ⦁ features representing PERCEPTS from LAYER BELOW
 ⦁ features representing COMMANDS from LAYER ABOVE

Henry And Lynus Buy Very Big Suits

There are also 3 possible types of outputs (Purple arrows in the diagram):

HIGHER-level percepts for layer ABOVELOWER-level commands for layer BELOW 
 ⦁ next VALUES for BELIEF-STATE features

I have highlighted the higher and lower levels in the mnemonics because they have different types of reasoning. Higher layers carry out higher-level reasoning and lower layers carry out lower-level reasoning.

Consider the mnemonic :

Dancing Queen Latifah

Higher-level reasoning is defined as follows:

DiscreteQualitative: Logic using qualitative observations

And this mnemonic considers the lower-level reasoning:

Colourful Quail's Nest

Lower-level reasoning is defined as follows:

ContinuousQuantitative: Numeric values
  • Lower level reasoning is usually used for functions like using the motors of a robot, directionality and avoidance of obstacles in a dynamic environment

To be able to understand how important higher level reasoning is for the hierarchy, we have to consider the discrete values that qualitative reasoning takes in. Consider the example given in the textbook Artificial Intelligence by Dr. Poole and Dr. Mackworth: A robot that pours coffee and delivers it to specific individuals

Consider the following mnemonic:

Lame Organic Quinoa

which represents:

Landmarks: In the example, landmarks would be whether the coffee cup is empty, full or half-full. 
    This would be used by the robot to distinguish whether if it needs to pour coffee into the cup or not
 ⦁ Orders-of-magnitude reasoning: In the example, if a cup of coffee is just partially full, this 
    reasoning would determine whether the cup is "full enough" for delivery. 
 ⦁ Qualitative derivatives: the derivatives just give an indication whether a given value is changing 
    (in terms of decrease, increase)

And this is a brief summary of what we need to know about hierarchical controllers. On a final note, robots don't need to exhibit both qualitative and quantitative reasoning. A robot is able to function with just qualitative reasoning but in terms of efficiency of a robot that needs numerous functions like motility, it would be better to run both qualitative and quantitative reasoning.


References: Artificial Intelligence textbook by Dr. David Poole and Dr. Alan Mackworth