![]() |
||||
Measuring RPM via Photo reflector
Computer
Interface
|
An Introduction to Robotics Technology warsayo writes "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 robot consists of: 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 often function to relieve us from
danger and tedium: Mechanical Platforms - The Hardware Base Motors 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 brushless DC or AC motors. 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 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 There are literally hundreds of types and styles of batteries available for use in robots. Batteries are categorized by their chemistry and size, and rated by their voltage and capacity. The voltage of a battery is determined by the chemistry of the cell, and the capacity by both the chemistry and size. The robot platform runs off of two separate battery packs, which share only a ground. This way, the motor may dirty up one power source while the electronics can run off of the other. The electronics and the motors can also operate from different voltages. Electronic Control 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 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. Microcontroller Systems There are four basic aspects of a microcontroller - speed, size, memory, and other. Speed is designated in clock cycles, and is usually measured in millions of cycles per second (Megahertz, MHz). The use of the cycles varies in different MCUs, affecting the usable speed of the processor. Size specifies the number of bits of information the MCU can process in one step - the size of its natural cluster of information. MCUs come in 4-, 8-, 16-, and 32-bits, with 8-bit MCUs being the most common size. MCUs count most of their ROM in thousands of bytes (KB) and RAM in single bytes. Many MCUs use the Harvard architecture, in which the program is kept in one section of memory (usually the internal or external SRAM). This in turn allows the processor to access the separate memories more efficiently. The fourth aspect of microcontrollers, referred to as "other", includes features such as a dedicated input device that often (but not always) has a small LED or LCD display for output. A microcontroller also takes input from the device and controls it by sending signals to different components in the device. Also the program counter keeps track of which command is to be executed by the microcontroller. R/C Servos - Servomotors, used in radio-controlled models (cars, planes, etc.) are useful in many kinds of smaller robots, because they are compact and quite inexpensive. The servomotors themselves have built-in motor, gearbox, position-feedback mechanisms and controlling electronics. Standard radio control servomotors which are used in model airplanes, cars and boats are useful for making arms, legs and other mechanical appendages which move back and forth rather than rotating in circles. Animatronic Systems Pneumatics Pneumatics is the name for fluid power used in a large number of commercial robots. Pneumatics are also used in a variety of animatronic systems that fall under the category of fluid power. A more well known branch of fluid power is hydraulics. Visit the pneumatics Web site (see Resources later in this article) for additional information. Open Source Robot Control Software The project aims to become more than just a copy of
existing commercial robot controllers or robot simulation/programming
packages. The goal of the OROCOS project is 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: Open Source Matrix Libraries 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 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. 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 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). 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 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. |
|||