Saturday, January 26, 2008

Laser design

The term design can have two different meanings. In some cases, it is meant to be a detailed description of a device, including e.g. used parts, how they are put together, important operation parameters, etc. In other cases, the term denotes the process leading to such a description. This article assumes the first mentioned meaning and discusses some important aspects for the design of laser devices, such as e.g. diode-pumped solid state lasers, or similar devices such as e.g. optical parametric oscillators. A separate article on laser development gives additional information, in particular on the role which a laser design plays within the process of laser development, and how this process can be optimized.

Defining the Design Goals

Before a design is made, the design goals must be carefully evaluated. These should include not only the central performance parameters such as output power and wavelength; many more details can be relevant:

  • optimum performance, e.g. in terms of output power, power efficiency, beam quality, brightness, intensity and/or phase noise, long-term stability (e.g. of the output power or the optical frequency), timing jitter, etc.
  • compact and convenient setup, ease of operation (e.g. simple turn-on procedure, simple wavelength tuning, no need for realignment)
  • maximum flexibility (e.g. for changing operation parameters)
  • reliability, low maintenance requirements, simple and cost-effective error analysis, maintenance and repair
  • minimum sensitivity to vibrations, temperature changes, electromagnetic interference, aging of components
  • low production cost, i.e., low number of parts, simple alignment and testing, avoiding the use of parts which are expensive, sensitive, or difficult to obtain
It is certainly advisable to carefully work out the list of these requirements for the particular case before investing any significant resources in laser development, because it can easily be much more expensive and time-consuming to introduce additional properties into an already existing device.

Important Aspects of Laser Designs

Of course, the properties of the designed laser device are largely determined by the design details, not only by the used parts. Some aspects are particularly important:

This list, which is certainly not yet complete, shows that proper laser designs are not a trivial matter, but are essential for achieving full customer satisfaction, cost efficiency, and flexibility for future developments.


Laser applications

Lasers are sources of light with very special properties, as discussed in the article on laser light. For that reasons, there is a great variety of laser applications. The following sections give an overview.

Manufacturing

Lasers are widely used in manufacturing, e.g. for cutting, welding, soldering, surface treatment, marking, micromachining, pulsed laser deposition, lithography, alignment, etc. In most cases, relatively high optical intensities are applied to a small spot, leading to intense heating, possibly evaporation and plasma generation. Essential aspects are the high spatial coherence of laser light, allowing for strong focusing, and often also the potential for generating intense pulses.

Laser processing methods have many advantages, when being compared to mechanical approaches. They allow to fabricate very fine structures with high quality, avoiding mechanical stress as caused e.g. by mechanical drills and blades. A laser beam with high beam quality can be used to drill very fine and deep holes, e.g. for injection nozzles. A high processing speed is often (but not always) achieved, and it can also be advantageous to process materials without touching them.

Medical Applications

There is a wide range of medical applications. Often these relate to the outer parts of the human body, which are easily reached with light; examples are eye surgery and vision correction (LASIK), dentistry, dermatology (e.g. photodynamic therapy of cancer), and various kinds of cosmetic treatment such as tattoo removal or hair removal.

Lasers are also used for surgery (e.g. of the prostate), exploiting the possibility to cut tissues while causing only a low amount of bleeding.

Very different types of lasers are required for medical applications, depending on the optical wavelength, output power, pulse format, etc. In many cases, the laser wavelength is chosen so that certain substances (e.g. pigments in tattoos or caries in teeth) absorb light more strongly than surrounding tissue, so that they can be more precisely targeted.

Medical lasers are not always used for therapy. Some of them rather assist the diagnosis e.g. via methods of laser microscopy or spectroscopy (see below).

Metrology

Lasers are widely used in optical metrology, e.g. for extremely precise position measurements with interferometers, for long-distance range finding and navigation.

Laser scanners are based on collimated laser beams, which can read e.g. bar codes or other graphics over some distance. It is also possible to scan three-dimensional objects, e.g. in the context of crime scene investigation (CSI).

Optical sampling is a technique applied for the characterization of fast electronic microcircuits, microwave photonics, terahertz science, etc.

Lasers also allow for extremely precise time measurements and are therefore essential ingredient of optical clocks which will soon outperform the currently used atomic cesium clocks.

Fiber-optic sensors, often probed with laser light, allow for the distributed measurement of temperature, stress, and other quantities e.g. in oil pipelines and wings of airplanes.

Data Storage

Optical data storage e.g. in compact disks (CDs), DVDs, HD-DVDs, blu-ray disks and magneto-optical disks, is nearly always relying on a laser source, which has a high spatial coherence and can thus be used to address very tiny spots in the recording medium, allowing a very high density data storage. Another case is holography, where the temporal coherence can also be important.

Communications

Optical fiber communications, extensively used particularly for long-distance optical data transmission, mostly relies on laser light in optical glass fibers. Free-space optical communications e.g. for inter-satellite communications is based on higher power lasers, generating collimated laser beams which propagate over large distances with small beam divergence.

Displays

Laser projection displays containing RGB sources can be used for cinemas, home videos, flight simulators, etc., and are often superior to other displays concerning possible screen dimensions, resolution and color saturation. Further reductions of manufacturing costs will be essential for deep market penetration.

Spectroscopy

Laser spectroscopy is useful e.g. in atmospheric physics and pollution monitoring (e.g. trace gas sensing with differential absorption LIDAR technology). It also plays a role in medicine (e.g. cancer detection), biology, and various types of fundamental research, partly related to metrology (see above).

Microscopy

Laser microscopes and setups for coherence tomography provide images e.g. of biological samples with very high resolution, often in three dimensions. It is also possible to realize functional imaging.

Various Scientific Applications

Laser cooling makes it possible to bring clouds of atoms or ions to extremely low temperatures. This has applications in fundamental research as well as for industrial purposes.

Laser guide stars are used in astronomical observatories in combination with adaptive optics for atmospheric correction. They allow a substantially increased image resolution even in cases where a sufficiently close-by natural guide star is not available.

Military Applications

There are various military laser applications. In relatively few cases, lasers are used as weapons; the "laser sword" has become quite popular via films, but not in practice. Some high power lasers are currently developed for potential use on the battle field, or for destroying missiles, projectiles and mines.

In other cases, lasers function as target designators or laser sights (essentially laser pointers emitting visible or invisible laser beams), or as irritating or blinding (normally not directly destroying) countermeasures e.g. against heat-seeking anti-aircraft missiles. It is also possible to temporarily or permanently blind soldiers with laser beams, although the latter is forbidden by rules of war.

There are also many laser applications which are not specific for military use, e.g. in areas like range finding, LIDAR, and optical communications.

Tuesday, January 15, 2008

Open source robot control software

OROCOS (Open RObot COntrol Software) is an effort to start up an open source robot control software project. Broad discussions are being held about what experiences, code and tools can be re-used from other projects, what open standards should be integrated into the project and what organizational structure is most appropriate for the project. Goals of the project are to develop robot control software as follows:

  • Under open source and/or free software license(s)
  • As modular as possible
  • Of the highest quality (from both technical and software engineering perspectives)
  • Independent of (but compatible with) commercial robot manufacturers
  • For all sorts of robotic devices and computer platforms
  • Localized for all programming languages
  • Featuring configurable software components for kinematics, dynamics, planning, sensing, control, hardware interfacing, etc.

The project aims to become more than just a copy of existing commercial robot controllers or robot simulation/programming packages. The OROCOS project wants to develop shareable libraries, stand-alone components (sometimes referred to as software agents), and a configurable run-time environment from which to eliminate and control all distributed robotics systems. These types of projects are useful in several ways:

  • For re-using code
  • For use as an independent sub-system
  • For copying their organizational structure
  • For learning from the experience of managing an open source project
  • For designing and developing extensible and reusable software

Open source matrix libraries

The following are open source matrix libraries that satisfy the above-mentioned requirements. Octave is recommended, since it is GPL-licensed and delivers all required functionality.

GNU Octave: GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.

GNU Octave is freely distributed software. You may redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation. More detailed information about GNU Octave can be found by visiting the Octave Web site (see Resources).

GSL (GNU Scientific Library) GSL is an ongoing effort to develop a modern extensive and ANSI C library for numerical computing. The GNU Scientific Library (GSL) is a collection of routines for numerical computing. The routines are written from scratch by the GSL team in ANSI C, and are meant to present a modern Applications Programming Interface (API) for C programmers, while allowing wrappers to be written for very high level languages.

GSL is free software. It is distributed under the terms of the GNU General Public License. Visit Red Hat's Web site (see Resources) for more information concerning GSL.

Real time kernels

Real-Time Linux (RTLinux) RTLinux(TM) is a hard real-time operating system that handles time-critical tasks and runs Linux as its lowest priority execution thread. In RTLinux, the kernel shares one or more processors with standard Linux. This allows the system to run accurately timed applications performing data acquisition, systems control and robotics, while still serving as a standard Linux workstation. Version 3.0 (final) is available on the Web at ftp.rtlinux.com (see Resources).

RTLinux.org is the non-commercial RTLinux site for the open source user and developer community. Their sister site, RTLinux.com (see Resources), discusses commercial support and development.

eCos (embedded Configurable operating system): eCos is an open source real-time operating system for deeply embedded applications. It meets the requirements of the embedded space that Linux cannot yet reach. Linux currently scales upwards from a minimal size of around 500 kilobytes of kernel and 1.5MB of RAM, before taking into consideration application and service requirements. The eCos open source project can be found at their Web site (see Resources).

RTEMS (GPL License): RTEMS is an open source real-time operating system and environment for C, C++ and Ada95. It is distributed under the terms of the GNU General Public License.

Visit the RTEMS site (see Resources) for downloads and more detailed information about RTEMS.

Utilities and tools

ROBOOP (A robotics object oriented package in C++): This package is an object-oriented toolbox in C++ for robotics simulation. Technical references and downloads are provided in the Resources.

CORBA: A real-time communications and object request broker software package for embedding distributed software agents. Each independent piece of software registers itself and its capabilities to the ORB, by means of an IDL (Interface Definition Language). Visit their Web site (see Resources) for technical information, downloads, and documentation for CORBA.

TANGO/TACO: This software might be useful for controlling a robotics system with multiple devices and tools. TANGO is an object oriented control system based on CORBA. Device servers can be written in C++ or Java. TACO is object oriented because it treats all (physical and logical) control points in a control system as objects in a distributed environment. All actions are implemented in classes. New classes can be constructed out of existing classes in a hierarchical manner, thereby ensuring a high level of software reuse. Classes can be written in C++, in C (using a methodology called Objects in C), in Python or in LabView (using the G programming language).

TACO was designed to be portable and runs on a large number of platforms (for example, Linux, Solaris, HP-UX, Windows/NT, Windows/95, and OS9). To download the source code and other technical documents visit their web site (see Resources).

Controllers

Task Control Architecture: The Task Control Architecture (TCA) simplifies building task-level control systems for mobile robots. "Task-level" refers to the integration and coordination of perception, planning, and real time control to achieve a given set of goals (tasks). TCA provides a general control framework, and is intended to control a wide variety of robots. TCA provides a high-level machine-independent method for passing messages between distributed machines (including between Lisp and C processes). TCA provides control functions, such as task decomposition, monitoring, and resource management, that are common to many mobile robot applications. The Resources section provides technical references and download information for Task Control Architecture.

EMC (Enhanced Machine Controller): The EMC software is based on the NIST Real time Control System (RCS) methodology, and is programmed using the NIST RCS Library. The RCS Library eases the porting of controller code to a variety of UNIX and Microsoft platforms, providing a neutral application programming interface (API) to operating system resources such as shared memory, semaphores and timers. The EMC software is written in C and C++, and has been ported to the PC Linux, Windows NT, and Sun Solaris operating systems.

Darwin2K: Darwin2K is a free, open source toolkit for robot simulation and automated design. It features numerous simulation capabilities and an evolutionary algorithm capable of automatically synthesizing and optimizing robot designs to meet task-specific performance objectives.

Languages

RoboML (Robotic Markup Language): RoboML is used for standardized representation of robotics-related data. It is designed to support communication language between human-robot interface agents, as well as between robot-hosted processes and between interface processes, and to provide a format for archived data used by human-robot interface agents.

ROSSUM: A programming and simulation environment for mobile robots. The Rossum Project is an attempt to help collect, develop, and distribute software for robotics applications. The Rossum Project hopes to extend the same kind of collaboration to the development of robotic software.

XRCL (Extensible Robot Control Language): XRCL (pronounced zircle) is a relatively simple, modern language and environment designed to allow robotics researchers to share ideas by sharing code. It is an open source project, protected by the GNU Copyleft.

Open System Architecture for Controls within Automation Systems (OSACA): OSACA is a joint European project that aims to improve the competitiveness of the manufacturers of machine tools and control systems in the world market. The main goal of the project is to specify system architecture for open control systems, which is manufacturer independent.

Mechanical platforms -- the hardware base of robots

A robot consists of two main parts: the robot body and some form of artificial intelligence (AI) system. Many different body parts can be called a robot. Articulated arms are used in welding and painting; gantry and conveyor systems move parts in factories; and giant robotic machines move earth deep inside mines. One of the most interesting aspects of robots in general is their behavior, which requires a form of intelligence. The simplest behavior of a robot is locomotion. Typically, wheels are used as the underlying mechanism to make a robot move from one point to the next. And some force such as electricity is required to make the wheels turn under command.

Motors

A variety of electric motors provide power to robots, allowing them to move material, parts, tools, or specialized devices with various programmed motions. The efficiency rating of a motor describes how much of the electricity consumed is converted to mechanical energy. Let's take a look at some of the mechanical devices that are currently being used in modern robotics technology.

DC motor: Permanent-magnet, direct-current (PMDC) motors require only two leads, and use an arrangement of fixed- and electro-magnets (stator and rotor) and switches. These form a commutator to create motion through a spinning magnetic field.

AC motor: AC motors cycle the power at the input-leads, to continuously move the field. Given a signal, AC and DC motors perform their action to the best of their ability.

Stepper motor: Stepper motors are like a brushless DC or AC motor. They move the rotor by applying power to different magnets in the motor in sequence (stepped). Steppers are designed for fine control and will not only spin on command, but can spin at any number of steps-per-second (up to their maximum speed).

Servomotors: Servomotors are closed-loop devices. Given a signal, they adjust themselves until they match the signal. Servos are used in radio control airplanes and cars. They are simple DC motors with gearing and a feedback control system.

Driving mechanisms

Gears and chains: Gears and chains are mechanical platforms that provide a strong and accurate way to transmit rotary motion from one place to another, possibly changing it along the way. The speed change between two gears depends upon the number of teeth on each gear. When a powered gear goes through a full rotation, it pulls the chain by the number of teeth on that gear.

Pulleys and belts: Pulleys and belts, two other types of mechanical platforms used in robots, work the same way as gears and chains. Pulleys are wheels with a groove around the edge, and belts are the rubber loops that fit in that groove.

Gearboxes: A gearbox operates on the same principles as the gear and chain, without the chain. Gearboxes require closer tolerances, since instead of using a large loose chain to transfer force and adjust for misalignments, the gears mesh directly with each other. Examples of gearboxes can be found on the transmission in a car, the timing mechanism in a grandfather clock, and the paper-feed of your printer.

Power supplies

Power supplies are generally provided by two types of battery. Primary batteries are used once and then discarded; secondary batteries operate from a (mostly) reversible chemical reaction and can be recharged several times. Primary batteries have higher density and a lower self-discharge rate. Secondary (rechargeable) batteries have less energy than primary batteries, but can be recharged up to a thousand times depending on their chemistry and environment. Typically the first use of a rechargeable battery gives 4 hours of continuous operation in an application or robot.


Electronic control

There are two major hardware platforms in a robot. The mechanical platform of unregulated voltages, power and back-EMF spikes, and the electronic platform of clean power and 5-volt signals. These two platforms need to be bridged in order for digital logic to control mechanical systems. The classic component for this is a bridge relay. A control signal generates a magnetic field in the relay's coil that physically closes a switch. MOSFETs, for example, are highly efficient silicon switches, available in many sizes like the transistor that can operate as a solid state relay to control the mechanical systems.

On the other hand, larger sized robots may require a PMDC motor in which the value of the MOSFET's "on" resistance Rds(on) results in great increases in the heat dissipation of the chip, thereby significantly reducing the chip's heat temperature. Junction temperatures within the MOSFET and the coefficients of conduction of the MOSFET package and heat sink are other important characteristics of PMDC motors.

There are two broad families of transistor: bipolar junction transistors (BJT) and field-effect transistors (FET). In BJT devices, a small current flow at the base moderates a much larger current between the emitter and collector. In FET devices, the presence of an electrical field at the gate moderates the flow between the source and drain.

Sensors

Robots react according to a basic temporal measurement, requiring different kinds of sensors.

In most systems a sense of time is built-in through the circuits and programming. For this to be productive in practice, a robot has to have perceptual hardware and software, which updates quickly. Regardless of sensor hardware or software, sensing and sensors can be thought of as interacting with external events (in other words, the outside world). The sensor measures some attribute of the world. The term transducer is often used interchangeably with sensor. A transducer is the mechanism, or element, of the sensor that transforms the energy associated with what is being measured into another form of energy. A sensor receives energy and transmits a signal to a display or computer. Sensors use transducers to change the input signal (sound, light, pressure, temperature, etc.) into an analog or digital form capable of being used by a robot.

Logical sensors: One powerful abstraction of a sensor is a logical sensor, which is a unit of sensing or module that supplies a particular percept. It consists of the signal processing, from the physical sensor, and the software processing needed to extract the percept.

Proprioceptive sensors: Proprioception is dead reckoning, where the robot measures a signal originating within itself.

Proximity sensors: A proximity sensor measures the relative distance between the sensor and objects in the environment.

Infrared (IR) sensors: Another type of active proximity sensor is an infrared sensor. It emits near-infrared energy and measures whether any significant amount of the IR light is returned.

Bump and feeler sensors: Another popular class of robotic sensing is tactile, or touch-based, done with a bump and feeler sensor. Feelers or whiskers are constructed from sturdy wires. A bump sensor is usually a protruding ring around the robot consisting of two layers.



Introduction to robotics technology

The word "robot" originates from the Czech word for forced labor, or serf. It was introduced by playwright Karel Capek, whose fictional robotic inventions were much like Dr. Frankenstein's monster -- creatures created by chemical and biological, rather than mechanical, methods. But the current mechanical robots of popular culture are not much different from these fictional biological creations. Basically a robots consists of:

  • A mechanical device, such as a wheeled platform, arm, or other construction, capable of interacting with its environment
  • Sensors on or around the device that are able to sense the environment and give useful feedback to the device
  • Systems that process sensory input in the context of the device's current situation and instruct the device to perform actions in response to the situation

In the manufacturing field, robot development has focused on engineering robotic arms that perform manufacturing processes. In the space industry, robotics focuses on highly specialized, one-of-kind planetary rovers. Unlike a highly automated manufacturing plant, a planetary rover operating on the dark side of the moon -- without radio communication -- might run into unexpected situations. At a minimum, a planetary rover must have some source of sensory input, some way of interpreting that input, and a way of modifying its actions to respond to a changing world. Furthermore, the need to sense and adapt to a partially unknown environment requires intelligence (in other words, artificial intelligence).

From military technology and space exploration to the health industry and commerce, the advantages of using robots have been realized to the point that they are becoming a part of our collective experience and every day lives.

They function to relieve us from danger and tedium:

  • Safety: Robotics have been developed to handle nuclear and radioactive chemicals for many different uses including nuclear weapons, power plants, environmental cleanup, and the processing of certain drugs.
  • Unpleasantness: Robots perform many tasks that are tedious and unpleasant, but necessary, such as welding or janitorial work.
  • Repetition and precision: Assembly line work has been one of the mainstays of the robotics industry. Robots are used extensively in manufacturing and, more glamorously, in space exploration, where minimum maintenance requirements are emphasized.