skip to Main Content

I am trying to construct a small application that will run on a robot with very limited sensory capabilities (NXT with gyroscope/ultrasonic/touch) and the actual AI implementation will be based on hierarchical perceptual control theory. I’m just looking for some guidance regarding the implementation as I’m confused when it comes to moving from theory to implementation.

The scenario

My candidate scenario will have 2 behaviors, one is to avoid obstacles, second is to drive in circular motion based on given diameter.

The problem

I’ve read several papers but could not determine how I should classify my virtual machines (layers of behavior?) and how they should communicating to lower levels and solving internal conflicts.

These are the list of papers I’ve went through to find my answers but sadly could not

pct book

paper on multi-legged robot using hpct

pct alternative perspective

and the following ideas are the results of my brainstorming:

  • The avoidance layer would be part of my sensation layer and that is because it only identifies certain values like close objects e.g. ultrasonic sensor specific range of values. The other second layer would be part of the configuration layer as it would try to detect the pattern in which the robot is driving like straight line, random, circle, or even not moving at all, this is using the gyroscope and motor readings. Intensity layer represents all sensor values so it’s not something to consider as part of the design.

  • Second idea is to have both of the layers as ‘configuration’ because they would be responding to direct sensor values from intensity layer and they would be represented in a mesh-like design where each layer can send it’s reference values to the lower layer that interface with actuators.

My problem here is how conflicting behavior would be handled (maneuvering around objects and keep running in circles)? should be similar to Subsumption where certain layers get suppressed/inhibited and have some sort of priority system? forgive my short explanation as I did not want to make this a lengthy question.




  1. Partial answer from RM of the CSGnet list:

    1. Forget about the levels. They are just suggestions and are of no use in building a working robot.

    2. A far better reference for the kind of robot you want to develop is the CROWD program, which is documented at

    3. The agents in the CROWD program do most of what you want your robot to do. So one way to approach the design is to try to implement the control systems in the CROWD programs using the sensors and outputs available for the NXT robot.

    4. Approach the design of the robot by thinking about what perceptions should be controlled in order to produce the behavior you want to see the robot perform. So, for example, if one behavior you want to see is "avoidance" then think about what avoidance behavior is (I presume it is maintaining a goal distance from obstacles) and then think about what perception, if kept under control, would result in you seeing the robot maintain a fixed distance from objects. I suspect it would be the perception of the time delay between sending and receiving of the ultrasound pulses.Since the robot is moving in two-space (I presume) there might have to be two pulse sensors in order to sense the two D location of objects.

    5. There are potential conflicts between the control systems that you will need to build; for example, I think there could be conflicts between the system controlling for moving in a circular path and the system controlling for avoiding obstacles. The agents in the CROWD program have the same problem and sometimes get into dead end conflicts. There are various ways to deal with conflicts of this kind;for example, you could have a higher level system monitoring the error in the two potentially conflicting systems and have it make reduce the the gain in one system or the other if the conflict (error) persists for some time.

    Login or Signup to reply.
  2. Here is an example of a robot which implements HPCT and addresses some of the issues relevant to your project,

    It is interesting to see a comparison of these two paradigms, as they both approach the field of AI at a similar level, that of embodied agents exhibiting simple behaviors. However, there are some fundamental differences between the two which means that any comparison will be biased towards one or the other depending upon the criteria chosen.

    The main difference is of biological plausibility. Subsumption architecture, although inspired by some aspects of biological systems, is not intended to theoretically represent such systems. PCT, on the hand, is exactly that; a theory of how living systems work.

    As far as PCT is concerned then, the most important criterion is whether or not the paradigm is biologically plausible, and criteria such as accuracy and complexity are irrelevant.

    The other main difference is that Subsumption concerns action selection whereas PCT concerns control of perceptions (control of output versus control of input), which makes any comparison on other criteria problematic.

    I had a few specific comments about your dissertation on points that may need
    clarification or may be typos.

    • “creatures will attempt to reach their ultimate goals through
      alternating their behaviour” – do you mean altering?

    • “Each virtual machine’s output or error signal is the reference signal of the machine below it” – A reference signal can be a function of one or more output signals from higher-level systems, so more strictly this would be, “Each virtual machine’s output or error signal contributes to the reference signal of a machine at a lower level”.

    • “The major difference here is that Subsumption does not incorporate the ideas of ‘conflict’ ” – Well, it does as the purpose of prioritising the different layers, and sub-systems, is to avoid conflict. Conflict is implicit, as there is not a dedicated system to handle conflicts.

    • “‘reorganization’ which require considering the goals of other layers.” This doesn’t quite capture the meaning of reorganisation. Reorganisation happens when there is prolonged error in perceptual control systems, and is a process whereby the structure of the systems changes. So rather than just the reference signals changing the connections between systems or the gain of the systems will change.

    • “Design complexity: this is an essential property for both theories.” Rather than an essential property, in the sense of being required, it is a characteristic, though it is an important property to consider with respect to the implementation or usability of a theory. Complexity, though, has no bearing on the validity of the theory. I would say that PCT is a very simple theory, though complexity arises in defining the transfer functions, but this applies to any theory of living systems.

    • “The following step was used to create avoidance behaviour:” Having multiple nodes for different speeds seem unnecessarily complex. With PCT it should only be necessary to have one such node, where the distance is controlled by varying the speed (which could be negative).

    • Section 4.2.1 “For example, the avoidance VM tries to respond directly to certain intensity values with specific error values.” This doesn’t sound like PCT at all. With PCT, systems never respond with specific error (or output) values, but change the output in order to bring the intensity (in this case) input in to line with the reference.

    • “Therefore, reorganisation is required to handle that conflicting behaviour. I”. If there is conflict reorganisation may be necessary if the current systems are not able to resolve that conflict. However, the result of reorganisation may be a set of systems that are able to resolve conflict. So, it can be possible to design systems that resolve conflict but do not require reorganisation. That is usually done with a higher-level control system, or set of systems; and should be possible in this case.

    • In this section there is no description of what the controlled variables are, which is of concern. I would suggest being clear about what are goal (variables) of each of the systems.

    • “Therefore, the designed behaviour is based on controlling reference values.” If it is only reference values that are altered then I don’t think it is accurate to describe this as ‘reorganisation’. Such a node would better be described as a “conflict resolution” node, which should be a higher-level control system.

    • Figure 4.1. The links annotated as “error signals” are actually output signals. The error signals are the links between the comparator and the output.

    • “the robot never managed to recover from that state of trying to reorganise the reference values back and forth.” I’d suggest the way to resolve this would be to have a system at a level above the conflicted systems, and takes inputs from one or both of them. The variable that it controls could simply be something like, ‘circular-motion-while-in-open-space’, and the input a function of the avoidance system perception and then a function of the output used as the reference for the circular motion system, which may result in a low, or zero, reference value, essentially switching off the system, thus avoiding conflict, or interference. Remember that a reference signal may be a weighted function of a number of output signals. Those weights, or signals, could be negative so inhibiting the effect of a signal resulting in suppression in a similar way to the Subsumption architecture.

    • “In reality, HPCT cannot be implemented without the concept of reorganisation because conflict will occur regardless”. As described above HPCT can be implemented without reorganisation.

    • “Looking back at the accuracy of this design, it is difficult to say that it can adapt.” Provided the PCT system is designed with clear controlled variables in mind PCT is highly adaptive, or resistant to the effects of disturbances, which is the PCT way of describing adaption in the present context.

    In general, it may just require clarification in the text, but as there is a lack of description of controlled variables in the model of the PCT implementation and that, it seems, some ‘behavioural’ modules used were common to both implementations it makes me wonder whether PCT feedback systems were actually used or whether it was just the concept of the hierarchical architecture that was being contrasted with that of the Subsumption paradigm.

    I am happy to provide more detail of HPCT implementation though it looks like this response is somewhat overdue and you’ve gone beyond that stage.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top