CSE 400/401: Senior Project, Spring 2006

MATLAB-to-ROCI Interface

Andy Chen

Faculty Advisor: Dr. Camillo J. Taylor

Project Writeup (PDF) | Project Poster (PDF)

Abstract | Related Work | Motivations


The Remote Objects Control Interface, or ROCI, is a framework used within the University of Pennsylvania's GRASP Laboratory to manipulate a network of distributed sensory nodes. The objective of this project is to build interfaces for querying and controlling these nodes, and thusly the network that they compose. In particular, the goal is to bridge the MathWorks MATLAB environment to ROCI. The end result is an API of primitive operations on ROCI nodes for use within the MATLAB environment (e.g. on an interactive console or in script files). These operations then will serve as the basic building blocks for implementing higher-level programs to interact with the ROCI network.

Related Work

The applications that result from this project build on top of the ROCI framework developed within the GRASP Laboratory at the University of Pennsylvania. ROCI enables the manipulation of a network of distributed sensory nodes. Each node executes a ROCI operating system kernel that is capable of running on existing network types, such as Ethernet and wireless LAN; the host machines on the network that run the kernel form a ROCI sensory network. Nodes can be dynamically added to a ROCI network during runtime; the new node broadcasts its arrival to other nodes already on the network, and each node then updates its list of known peer nodes.

The nodes in a ROCI network gather sensory information from the environment, and this collection of information from all nodes forms a distributed database. Information input and output to a node occurs through ROCI modules; the ROCI architecture defines a framework for developing reusable, self-describing modules. The modules can be used to build larger Task modules by interconnecting module interfaces, where the Task (i.e. the module connections) is defined by an XML document. Modules interface with other modules through ROCI Pins. The Pins are self-describing and strongly typed; e.g. an input Pin can only be connected to an output Pin of compatible type. Examples of Pin types include those for data such as GPS, internal or external temperature, video, and motor control.


The MATLAB-to-ROCI interface addresses one limitation of the ROCI architecture. Namely, a framework does not exist to interface with ROCI nodes through MATLAB. A MATLAB interface is desired for several reasons.

  • The MATLAB language is simple in that developers can quickly code and deploy client applications
  • MATLAB has an interactive console, which would enable users to interface with ROCI nodes in real-time.
  • MATLAB is a familiar tool already commonly used within some research projects involving large volumes of data.
  • MATLAB has several built-in features and add-on toolboxes for data processing, which users can utilize to analyze the results of queries on the ROCI network.

The MATLAB-to-ROCI interface is not a modification of the existing implementation of the ROCI architecture. Rather, it is built on top of ROCI, and serves as a tool to enhance interactions with ROCI systems and the data that they produce.

CSE400/401 Homepage | GRASP Laboratory | ROCI Homepage | The MathWorks MATLAB

ROCI - Pronunciation [rk]
Rocky | The Rocky Horror Picture Show | Rocky & Bullwinkle

Andy Chen, SEAS '06, University of Pennsylvania, 2006