CURL - today and tomorrow

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


Abstract

This paper describes the Cambridge University Robot Language (CURL) in its current form and looks towards the future of the software. Recent and forthcoming applications of CURL are summarised. Enhancements in the areas of human-computer interfacing, device-level configuration and sensor integration are proposed.

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]. The software was also instrumental in the development of the Interactive Robotic Quantitative Assessment Test (IRQAT) [3]. CURL is now used on a permanent basis for paper handling tasks in two Swedish workplace adaptations [4].

The original version of CURL was coded as an MS-DOS application to control an RTX robot arm from 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 [5].

CURL has also been restructured to separate the robot-specific code from the human-computer interface and command interpreter [6]. The software may now be configured to control a specific robot arm by coding a driver adhering to the CURL Device Driver (CDD) specification. Third parties are therefore able to use CURL with their own custom hardware configurations.

CURL today

Operation

Interaction with the robot is provided by three child windows and a menu bar (figure 1). One child window provides access to the direct control features of CURL. A control axis is selected from a list of axes appropriate to a particular robot arm. Legends corresponding to the motion of the selected axis in the positive and negative sense then appear within buttons. The operator is able to initiate robot motion by activating these buttons using a keyboard, pointing device, joystick or appropriate computer access sub-system. Control of the robot velocity is available when a joystick is used.

Figure 1. The CURL user interface

Another window allows direct entry of CURL commands from a keyboard. One or more CURL sentences may be typed within a text box and subsequently executed by activating an adjacent button.

A third window lists previously defined CURL procedures. These procedures may be invoked by direct selection using a keyboard or pointing device. A dialog box incorporating a task cancellation button appears throughout the execution of CURL commands and procedures. For reasons of safety, it is not possible to switch away from CURL to another application while a task is in progress.

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

Applications

CURL version 2.00 is currently available in beta form for evaluation purposes only. A CDD for the RT series of arms is also available and a driver for the CRS Plus A251 is under development as part of a collaborative project with AMU-HADAR. Interested parties are invited to participate in the beta testing programme which currently extends to 10 sites in Europe and North America.

A Windows-based version of CURL is in use by a disabled employee within the manufacturing industry. The software controls a custom-designed manipulator for the visual inspection of hybrid microcircuits using high-resolution video camera technology. In this application, a CDD was coded to facilitate control of circuit magnification and illumination in addition to the motorised manipulator joints.

CURL has also been specified as the command software for initial stages of an Educational Robotics project within the recently-established Rehabilitation Engineering Research Centre at the AI duPont Institute.

CURL tomorrow

Human-computer interfacing

Valuable input from potential robot operators has been acquired within the EC-funded RAID project [7]. Initial site trials of the RAID workstation were conducted using the MASTER 2 robot control software. They have indicated the need for a more involved study of human-computer interaction using a variety of visual presentations and levels of autonomy. In this respect, alternative graphical representations of key CURL functions are under consideration. The first step in this process will be the representation of CURL procedures as icons. CURL will be enhanced to facilitate the incorporation of icons into the human-computer interface. Icons representing specific robot tasks will be selected from a user-defined library.

The advent of WYSIWYG (what you see is what you get) user interfaces for business application software has demonstrated the productivity gains which may be realised when the on-screen manipulation of data more closely corresponds to the form of the final output. In the field of rehabilitation robotics, the final output resulting from the interaction of human and computer is in the form of a robot task which manipulates the environment in some way. A possible way forward may therefore be in the area of graphical modelling and the manipulation of a virtual environment [8]. The robot arm would then act to align the physical environment with the virtual one. An initial step in this development would involve the representation of objects as icons and the transfer of those objects between pre-defined locations using a 'drag and drop' technique.

In order to experiment with alternative human-computer interfaces, it will be necessary to develop a mechanism by which the existing interface can be modified or replaced. The use of Windows inter-process communication functions for this purpose is under investigation.

Device-level configuration

CURL currently interacts with one CDD only. Where modifications to standard robotic devices are necessary, such as the addition of a tool changer or force sensor, a new CDD is necessary to accommodate the additional control signals. In the near future, CURL will be enhanced to facilitate interaction with one robot CDD and a number of additional CDDs for non-robotic peripheral equipment. This modification will enable CDDs to be developed for individual peripherals. CURL will then be configured for a specific combination of robot and peripheral devices by loading the appropriate CDDs. This approach addresses the demand for more modular robotic workstations which employ particular peripherals on an 'as needed' basis.

Sensor integration

CURL currently facilitates sensor polling while the robot is stationary only. There is no facility for sensor-based trajectory generation or modification in real time. In this respect, the field of rehabilitation robotics lags behind the state of the art in industrial robotics by a significant margin. Current research is directed at the generation and modification of robot trajectories using a fuzzy logic summation of the output signals from a number of behaviour generating functions [9]. Possible primitive behaviours include obstacle avoidance, gripper centring and object grasping.

The CURL programming language itself is an interpreted language and unsuited to the demands of real-time sensor processing. It is therefore proposed to develop a system of pre-compiled 'behavioural modules' which may be linked with CURL at run-time and invoked from within CURL procedures. These modules would assert full control over the robot and peripherals until an exit condition is satisfied. At this point, execution of the calling procedure would resume. The implementation of behavioural modules within CURL would serve to increase both system autonomy and the reliability of individual tasks.

The enhancements to CURL discussed in this section are summarised in figure 2.

Figure 2. A possible future structure for CURL

Acknowledgements

Recent development of CURL has been supported by the ACME directorate of the UK Science and Engineering Research Council. Additional support has been provided by AMU-HADAR and 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. Mahoney RM, Jackson RD, Dargie GD (1992) An Interactive Robot Quantitative Assessment Test. RESNA 92 - Proceedings. 110-112
  4. Holmberg L (1993) The Installation of a Robotized Workstation at Samhall-HADAR. ECART 2 - Proceedings. 29.2
  5. Dallaway JL, Mahoney RM, Jackson RD (1993) CURL - A Robot Control Environment for Microsoft Windows. RESNA 93 - Proceedings. 510-511
  6. Mahoney RM, Dallaway JL, Jackson RD, Gosine RG (1992) Development of the Robot Control Language CURL. ICORR 92 - Conference Papers.
  7. Dallaway JL, Jackson RD (1993) The RAID Workstation for Office Environments. RESNA 93 - Proceedings. 504-506
  8. Andersson M, Fahlén LE, Söderlund T (1993) A Virtual Environment User Interface for a Robotic Assistive Device. ECART 2 - Proceedings. 29.3
  9. McEachern WA (1993) A Manipulation Strategy for Applications in Rehabilitation Robotics. Internal Report - Cambridge University Engineering Department.

This paper may be referenced as follows:

Dallaway JL, Jackson RD (1993) CURL - today and tommorrow. Proceedings of the second Nordic Workshop on Rehabilitation Robotics.