The I-Room Helper Robot provides a centralised mechanism by which users can access the facilities that the I-Room offers them. It also can be linked to an external I-X agent that allows instructions to be sent to it from an I-X Process Panel (or any other I-X agent). In their basic form, an interaction with the Robot takes the form of an activity name (a verb) and then any appropriate parameters. For instance, instructing the Robot to say hello causes the Robot to announce "hello" on the Second Life open chat channel. It is intended that the functonality of the Robot - in terms of the messages it 'understands', that is, to which it can respond usefully - would be extended as appropriate for specific applications. This might involve modifications to the Robot's code (written in LSL, the Linden Scripting Language) or additions to the Robot's "I-Room Setup Notecard" to associate additional capabilities (verbs) with objects.
We assume that the Robot has been configured and placed in the I-Room, and has been switched on. The basic manner in which users interact with the Robot is by chatting with it on a designated channel. By default this is channel 9 (and this is the value we will use here in examples) but this can be altered by changing the value of the channel variable in the Robot's I-Room Help script.
The Robot responds to the following standard commands that are 'chatted' by avatars on its designated channel (ie, prefix the command with /9 if using the default channel). Alternatively, if communicating with the Robot from I-X, the appropriate message (without channel information) should be sent as an I-X activity to the I-X Second Life agent (from a Process Panel activities can be easily constructed and sent with the Tools > Messenger tool).
Commands may be give via channel 9 (by default) to the helper in-world. I.e. /9 command
A summary of the commands is here:
Syntax: display [screen-name] <url>|<matrix-cell-label>
Description: causes the Robot to pass on the command to display the contents of URL url (assumed to be an image in a standard format) or the contents of the cell of the current matrix named matrix-cell-label to an object in the I-Room. If screen-name is specified then the corresponding object (as defined in the notecard) is the target; otherwise the default display object (also as defined by the notecard) is the target. If there is no such default, the Robot repeats the display command on the open chat channel.
Syntax: say [/<channel>] <message>
Description: causes the Robot to put message on the designated channel, or the open channel if none is specified.
Syntax: read notecard
Description: causes the Robot to (re-)read the contents of its notecard (and so update its knowledge of I-Room objects and their capabilities without restarting the Robot).
Syntax: describe avatars|display|objects
Description: causes the Robot to describe, on the open chat channel, some aspect of its current state:
avatars: the Robot says the list of avatars to the room (and also sends "present" state information to the Chair's panel, if this message originated from I-X).
display: the Robot says the names of the different elements that comprise the matrix image currently displayed in the I-Room on the open chat channel.
objects: the Robot says a list of known object-capability pairs (this is the information that the Robot has read from its notecard).
Syntax: minute <minute-content>
Description: the Robot will send a report to I-X saying that the given content has been minuted, and also say this to avatars listening on the open channel.
Syntax: decision <decision-content>
Description: the Robot will send a report to I-X recording that the described decision had been made, and also say this on the open channel.
Syntax: agenda <agenda-item>
Description: the Robot will send a report to I-X noting that the specified agenda-item will be added to the next meeting in the current series; this will also be said on the open channel.
Syntax: action <forename> <surname> <activity>
Description: the Robot will send a report to I-X noting that the avatar forename surname has been actioned to perform the specified activity. This will also be said to all listening on the open channel.
If the Robot receives a command other than one of those listed above, it first checks to see whether it knows of an object that has as a capability the verb of the command. If such an object is found, it says the command to that object on the object's designated communication channel; otherwise, the Robot says the command on the open chat channel. Note that the Robot will respond to any command that originates from I-X with a completion report, once it has handled the command. (This should not be interpreted as indicating that the corresponding activity has been completed - since it might have been passed on to a different object - but that the handling of the command by the Robot has been completed.)
Furthermore, it should be noted that many of the activities listed above involve the Robot saying something on one or other of the Second Life chat channels. Hence, this effectively constrains the in-world size of the I-Room to the radius within which chat is audible, which is currently 20 metres; all objects and participating avatars should lie within this radius.
Details at: http://www.aiai.ed.ac.uk/project/i-room/resources/vwow/release/doc/helper-robot.html
Information is at http://openvce.net/iroom. Much more detail, in the context of an application to a product team support meeting space and a Scotch Whisky tasting tutorial room application is at http://www.aiai.ed.ac.uk/project/i-room/