A Simple Provisional Language for Actions and Tasks

SPLAT is a library of Scheme code for writing robot control laws and plans. It provides both a language (implemented in Scheme macros) for specifying these control laws and a runtime environment for executing and monitoring them. We have developed SPLAT as the robot control and plan-execution back end for the ARGUS real-time vision system.

The abstraction provided by SPLAT is similar to that of RAPS but greatly simplified and improved to reflect a modern, multithreaded runtime environment. In particular, the dependence on a separate "skill manager" is eliminated. RAPS "skills" (which we call behaviors) can run in Scheme threads, making it much easier to coordinate and control interacting skills and tasks without the external "task network" model. Robot behaviors that require hard real-time performance, such as vision processing, can be run as distributed objects with the ARGUS distributed object library (not included with this release of SPLAT), taking advantage of whatever processing resources are available on the network.

SPLAT has the advantage of being small and simple enough to be easily understood and modified, while still providing substantial expressive power. Limited use of Scheme macros provides a readable (and easily machine-generated) task definition syntax.

The documentation for SPLAT is on-line. It is also available as SGML source and PostScript in the SPLAT source distribution.

Getting SPLAT

In order to get and use SPLAT, you will need several things. SPLAT depends heavily on the Scheme extensions implemented in RScheme, a very nice and rapidly improving Scheme compiler by Donovan Kolbly.

Unfortunately, SPLAT also depends on some features of RScheme for multithreaded IO that have been implemented locally but have not yet made it back into the standard RScheme distribution. Much of RScheme is written in RScheme, and bootstrapping it is a non-trivial undertaking.

Below are links to the source and patches for RScheme. If you are able to install .deb files (the Debian Linux package format), that is the simplest way to get a working version of RScheme. If not, grab the virgin source and the Debian source package follow the instructions in the source package to apply the patches and build RScheme.

NOTE: the file links below are http links, not ftp, so you may have to use the "Save this link" option on your browser.

[Robotics home]
SPLAT home page/Bill Gribble grib@cs.utexas.edu
1 September 1997