ACME Software

The overall architecture is shown in the figure. With the exception of real-time control software, everything in ACME is implemented in Java 2. Users can interact with the facility using the ACME Client from any location on the Internet. The robotic subsystems are controlled by the ACME Server. A key feature is the teleprogramming provided by ACME Experiment objects, which allow time-critical sensing and control to be achieved despite latencies inherent in communication over the Internet.

ACME Server

The server implements Java objects called Devices, which include Actuators and Sensors. Actuators are robotic subsystems which can be controlled as a unit (see Facility). Sensors are sources of measurement data, such as the Triclops range camera, and the CMS's 6 axis force/torque sensor. An event-based mechanism is used control real-time data acquisition.

ACME Client

The client provides both a simple development environment for designing and controlling ACME Experiments, as well as a simulator. A graphical viewer renders the state of the ACME facility (either real or simulated) and the state changes as an experiment proceeds. The complete ACME client is a 100% pure Java program enabling its use on any system with an Internet connection and a Java virtual machine. The optional viewer is implemented in Java3D.


ACME Experiments

ACME programs are called ``Experiments'' and are written in the Java programming language. A user can write and instantiate an Experiment on his or her own local machine, and simulate the Experiment in the ACME Client. When satisfied, the Experiment object is serialized, loaded into the real ACME Server at UBC, and a real experiment is performed. Therefore once a physical object is mounted in the ACME Facility, a user can perform complex experiments from almost any location on the Internet.

Last modified: Sun Aug 1 17:28:08 PDT 1999