Dynamic Learning |
The Interface Server collects data from individual robots and other devices. It stores the data and forwards it to browsers and external client processes. It also manages the feedback interactions to the devices from external controllers. The Interface Server is housed in an Enterprise Java Beans (EJB) container and written as a set of Java Beans. The basic layout is shown in the Interface Server Schematic. The following is a simple description of the modules shown, starting from the bottom of the figure. |
Video ServerThe Video Server is not included in the EJB container at this time, but runs standalone on a Macintosh computer. As such it is considered to be another external device, similar to the Robot Cars. Its function is to record the progress of an Experiment, and to extract accurate position data for each of the mobile devices on the experimental table. The position data is recorded in the same database as the robot telemetry. |
Robo Control ProxyThe control proxy is fundamentally the software that exists on the robot itself, plus a wrapper to communicate telemetry and receive commands from the Interface Server. The proxy may exist entirely on the robot, or in some other connected system. The method of connecting the robot to the proxy is device dependent, but the proxy uses Java RMI EJB interfaces to connect to the Interface Server. |
Data CollectorThe Data Collector receives telemetry from all devices in the system, translates it, and stores it in a database. Initially each device will have its own Data Collector, but this is implementation dependent. Telemetry data from the Robo Control Proxies is in a simple XML format described here. The database uses JDBC to access and insert rows. |
Feedback ControllerThe Feedback Controller receives commands from external and internal processes, translates them, and transmits them to the robot device. It also logs the commands in the same database as the Data Collector. Initially each device will have its own Feedback Controller, but this is implementation dependent. Command data to the Robo Control Proxies is in a simple XML format (not yet) described here. The database uses JDBC to access and insert rows. |
C-CubedThe Command, Control, Communications module coordinates behaviors between external control processes and the individual Feedback Controllers. It is pretty much a TBD thing for future development, but we want to make sure that the proper interfaces are available for development. |
CloudScape DatabaseThe telemetry and command storage mechanism is a Java based Object-Relational database called CloudScape. It runs external to the EJB container but is reasonably tightly coupled. The basic ER diagram and table schema are here. The system is driven by the creation of an 'Experiment' using a web browser interface. The new experiment creates a SampleData table with a unique suffix in its name. All collected data for the experiment is time stamped and inserted into this table. Each experiment's SampleData table may be searched, archived, and destroyed as needed. The remaining tables are used to store persistent device and data type information and normalize the schema. |
Data SelectorThe Data Selector receives selection criteria used to search and retrieve specific data from the SampleData table for a particular Experiment. It formats the select statements, issues the JDBC commands, and translates the results into a usable format. If the client is a web browser the data is put into a simple XML table format described here. If the client is an external (or internal) process the data is returned as a list of Java objects (TBD). |
Web ServletA web servlet is needed to connect the web server (also running external to the EJB server itself) to the system in order to browse data or issue commands. There will be a number of special case servlets to implement access functions. |
System MonitorThe System Monitor module is a catch all for any necessary command and monitor functions needed by the Interface Server itself. It will collect whatever data and statistics are necessary and transmit them to a web browser (via a servlet) and accept commands from a browser or external process to control the operation of the Interface Server. |
Web BrowserStandard web browsers will be used to monitor and control the Interface Server and Experiments. Screens will be made. |
Mainframe BeowolfThe coyote Linux cluster will be used for offline processing. Suitable Java or Corba interfaces to the Interface Server will be provided (TBD). |