The Sensory EgoSphere (SES) is a software object that serves as a short-term memory for a robot. The SES was inspired by the egosphere as defined by Albus [Albus, J. S., “Outline for a theory of intelligence”, IEEE Transactions on Sysems, Man, and Cybernetics, vol. 21, no. 3, 1991]. The original egosphere was conceived as a topological sphere surrounding an entity onto which external or internal events are projected. Albus proposed multiple egospheres for different components of a system, i.e. head egosphere, camera egosphere, body egosphere. The objective of the SES is to store sensory information, both exteroceptic and proprioceptic, that the robot detects. The SES is structured as a geodesic sphere that is indexed by azimuth and elevation angles and is centered at a robot’s origin. With ISAC, the head’s pan-tilt origin serves as the center of the SES. The geodesic dome provides an interface for projection of data while a database provides storage for a description of projected data. Sensory processing agents in the system send their outputs to the SES for short-term storage. The SES then projects these outputs onto its geodesic interface. The projection vector is a unit vector from the center of the sphere in the direction of the robot’s pan and tilt angles. The information and data that was sent by the sensory processor is then entered into the database with a timestamp reference.
Figure 1 shows the projection of an object onto the SES. In this view, ISAC’s head is located in the center of the sphere. The projection vector occurs at a given azimuth, elevation from the center of the sphere which correlates to a specific pan, tilt location of the head. Once this object is projected onto the sphere, a distance measure is performed to find the vertex on the sphere closest to the projection spot. This vertex, or node, becomes the registration node for the specific object. The SES enters the object, any information reported about the object and a timestamp into the database at the location of its registration node. This process occurs each instance that a sensory processing agent sends its output to the SES.
The SES can also retrieve information stored in its database. An agent can request retrieval of data from the SES in one of three methods: by data name, data type of location of data. For the first two methods, the SES simply queries the database using the name or type of the data. To retrieve data using a location, the requesting agent must supply the SES with a specific pan, tilt angle pair and a search neighborhood. The search neighborhood specifies how many nodes from the center node to retrieve data. The center node is defined as the closes node to the given pan, tilt angle pair. The SES calculates which nodes are included in the neighborhood and then queries for data from these nodes.
Figure 1. Registered events on the SES.
Figure 2. ISAC Displaying SES.
Figure 1 shows ISAC, the SES and the registered location of events ISAC has detected. Figure 2 shows ISAC displaying the SES on its chest monitor.
Since the SES is a short-term memory component, old data is continuously removed from the sphere. The timestamps of each registered data are checked against pre-defined time limits. If any of the timestamps exceed the limits, the data is removed from its registration node.
Currently, the SES has been developed on ISAC and NASA’s Robonaut and is being deployed at MIT’s Media Lab and at the Naval Research Lab.