Home > Agent Core, Perception & Action, Science > More percept problems

More percept problems

With one type of percept– egolocation– it’s easy to figure out how to deal with it. We keep overwriting the egolocation every time we get an update. With multiple types, it’s less clear.

So far, I’ve just been overwriting the percepts that are passed into each individual agent controller. This works well because we’ve only got one type. But with multiple types, need to be a bit more principled. I don’t really want to handle each type of data differently at the main thread; the main thread should just focus on routing percepts to the appropriate agents, rather than routing the individual types of percepts.

This implies that the percept management should be handled within the agentcontroller. In an ideal world, we’d do no processing– as current. Really, we need to be more careful. Some types can just be overwritten: egolocation, for example. But some may need to be handled differently. With the investigate example again, if the agent hears multiple noises, it should be able to keep track of (at least roughly) where they are, so it can investigate all of them in turn, and them drop them. If we have a “defend location” behavior triggered by the appearance of enemies, we should hold onto all enemy percepts which may affect how the behavior actually runs.

Three categories then: percepts that are always present (call them pure percepts), percepts which are events (transient), and percepts which directly observe other entities in the environment (referential). Furthermore, some transient percepts may actually be related to referential percepts: if the noise is in fact just a really loud bullfrog, then we should know to ignore it in the future, because we know there’s a bullfrog there.

From a cognitive standpoint, transient events should have some memory associated. It’s generally acknowledged that people have a sort of “iconic” memory for transient visual events, and an “auditory loop” for auditory events.

Arguably, this is overthinking, because we can cheat our way around it. But the architecture will be a stronger contribution if we do just a little better. I’m not claiming that we should do everything like the roboticists do– this is clearly a step above that. Also, we shouldn’t necessarily do everything the way cognitive scientists do (at least not yet). But I want to find the right shortcut for this.

For now, I think I’ll continue to treat the pure percepts with overwrites, and add in queues of limited size to deal with transient percepts. Referential percepts will be ultimately go into some sort of collection. Filters can be attached to the transient percepts, so that they can be ignored once the agent has decided it’s dealt with them– at the agentcontroller level, we’ll keep tags on all the percepts to track origins. These tags will either not be passed onto the behaviors, or only passed on once the behaviors have discovered the origin.

Categories: Agent Core, Perception & Action, Science Tags:
  1. No comments yet.
You must be logged in to post a comment.