CURL - a robot control environment for Microsoft Windows

John L Dallaway, Richard M Mahoney and Robin D Jackson
Department of Engineering
University of Cambridge, UK


Abstract

This paper describes recent developments of the Cambridge University Robot Language (CURL). In particular, CURL has been ported to the Microsoft Windows operating environment. The software is now structured to facilitate the control of novel devices through the creation of appropriate device drivers.

Background

CURL is an interactive robot control environment which has been developed over a number of years at the Department of Engineering, University of Cambridge. The CURL environment facilitates both direct control and task-level control of a robot arm and has been specifically designed for applications in rehabilitation. It provides an intuitive method of performing pick and place operations through the definition of objects and goals within a world model. Objects are manipulated using commands which employ a natural language syntax. These commands may be combined to form CURL procedures. Previous versions of CURL have been evaluated in both educational and vocational contexts [1, 2].

CURL for Windows

The original version of CURL was coded as an MS-DOS application to run on a PC compatible computer. However, the Microsoft Windows operating environment has now succeeded MS-DOS as the environment of choice for most PC users. CURL has recently been modified to run under Windows 3.1 in order to take advantage of the superior facilities offered by this environment.

The Windows Graphical User Interface (GUI) enforces a standard look and feel for all Windows applications. A combination of overlapping windows, drop-down menus and dialog boxes enables users to rapidly navigate an unfamiliar application and investigate its features. The nested menus of the original CURL application have been replaced by three MDI child windows and a menu bar (figure 1). One child window provides access to the direct control features of CURL. Another window allows direct entry of CURL commands and a third window lists pre-defined CURL procedures for immediate invocation. These child windows may be displayed concurrently to facilitate rapid switching between the various forms of control. Alternatively, those aspects of the human-computer interface which are not required for a specific installation may be reduced to iconic form. The novice user is therefore less likely to be distracted by irrelevant display elements. The menu bar provides access to lesser used configuration facilities.

Figure 1. The CURL user interface

The Windows operating environment also facilitates the integration of CURL with other application software. This is particularly important in computer related vocations where a robot arm is used as an assistive device. For example, CURL is able to co-exist with word processing software on the Windows desktop. A worker could therefore type documents and use the robot arm to manipulate reference materials in a particularly intuitive manner using a single computer.

The consistency with which Windows applications access the computer hardware has facilitated the development of software-based access products such as Switch Access to Windows (SAW) and the Windows Visual Keyboard (WiViK) [3]. These products enable non-keyboard users to gain full control of all applications on the Windows desktop using alternative input devices. It has not, therefore, been necessary to make provision for non-keyboard users within CURL itself.

CURL device drivers

Previous versions of CURL have been primarily used to control the UMI RT series of robot arms. In certain installations, the software has been modified to accommodate auxiliary sensors and actuators. The syntax of the language, however, lends itself to implementation with a number of other robotic devices. CURL has therefore been re-structured to separate the device specific code from the human-computer interface and interpreter [4]. It is now possible to write device independent CURL procedures for subsequent execution on a robot of unspecified geometry. Device independence is achieved by rigidly specifying the messages passed across a software interface between the CURL interpreter and the device-level control software.

Microsoft Windows provides an effective platform for the implementation of such an interface. It facilitates the development of robot drivers as separately compiled modules known as Windows Dynamic Link Libraries (DLLs). A DLL is a library of data and programming functions which is linked to an application at the time of execution. CURL may be configured to control a specific robot arm by coding a DLL to the CURL Device Driver (CDD) specification. A CDD for the UMI RT series of arms is currently available and a driver for the CRS Plus A251 is planned as part of a collaborative project with the Swedish AMU-HADAR organisation. The CDD specification allows third parties to develop their own drivers for custom hardware configurations.

Acknowledgements

This work has been supported by the ACME directorate of the UK Science and Engineering Research Council. Additional support has been provided by the Papworth Group.

References

  1. Gosine RG, Harwin WS, Jackson RD (1989) Applications of the CURL Programming Environment. RESNA 89 - Proceedings. 192-193
  2. Gosine RG, Harwin WS, Jackson RD (1990) Development and Application of a Task-Level Robot Control Language. ICORR 90 - Conference Proceedings. 97-118
  3. Shein F, Hamann G, Brownlow J, Treviranus J, Milner M, Parnes P (1991) WiViK: A Visual Keyboard for Windows 3.0. RESNA 91 - Proceedings. 160-162
  4. Mahoney RM, Dallaway JL, Jackson RD, Gosine RG (1992) Development of the Robot Control Language CURL. ICORR 92 - Conference Papers.

This paper may be referenced as follows:

Dallaway JL, Mahoney RM, Jackson RD (1993) CURL - a robot control environment for Microsoft Windows. Proceedings of the RESNA 93 Annual Conference. 510-511