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.
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.