Robot software

Robot software

Robot software is the coded commands that tell a mechanical device (known as a robot) what tasks to perform and control its actions. Robot software is used to perform tasks and automate tasks to be performed. Programming robots is a non-trivial task. Many software systems and frameworks have been proposed to make programming robots easier.

Some robot software aims at developing intelligent mechanical devices. Though common in science fiction stories, such programs are yet to become common-place in reality and much development is yet required in the field of artificial intelligence before they even begin to approach the science fiction possibilities. Pre-programmed hardware may include feedback loops such that it can interact with its environment, but does not display actual intelligence.

Currently, malicious programming of robots is of some concern, particularly in large industrial robots. The power and size of industrial robots mean they are capable of inflicting severe injury if programmed incorrectly or used in an unsafe manner. One such incident occurred on 21 July 1984 when a man was crushed to death by an industrial robot. That incident was an accident, but shows the potential risks of working with robots. In science fiction, the Three Laws of Robotics were developed for robots to obey and avoid malicious actions.

Industrial Robot Software

Industrial robot software usually comprises two sections: data objects and program flow (list of instructions). For example

Go to Jig1

is an instruction to the robot to go to positional data named Jig1. Of course programs can also contain implicit data for example

Tell axis 1 move 30 degrees.

Data and program usually reside in separate sections of the robot controller memory. One can change the data without changing the program and vice versa. For example one can write a different program using the same Jig1 or one can adjust the position of Jig1 without changing the program which uses it.

Examples of programming languages for Industrial Robots

Most robot manufacturers keep their software hidden. It is impossible to find out how most robots are programmed. It is almost as if they had no software in many cases. This is because these companies do not intend their customers to do their own programming and they sell complete proprietary application packages rather than general purpose software.

However, here are some examples of published robot programming languages.

Using the example pick and place task on Industrial Robot: Move to P1 (a general safe position) Move to P2 (an approach to P3) Move to P3 (a position to pick the object) Close gripper Move to P4 (an approach to P5) Move to P5 (a position to place the object) Open gripper Move to P1 and finish

VAL was one of the first robot ‘languages’ and was used in Unimate robots. Variants of VAL have been used by other manufacturers including Adept Technology. Stäubli currently use VAL3.Example program:

PROGRAM PICKPLACE 1. MOVE P1 2. MOVE P2 3. MOVE P3 4. CLOSEI 0.00 5. MOVE P4 6. MOVE P5 7. OPENI 0.00 8. MOVE P1 .END

Epson RC+ (example for a vacuum pickup)

Function PickPlace Jump P1 Jump P2 Jump P3 On vacuum Wait .1 Jump P4 Jump P5 Off vacuum Wait .1 Jump P1 Fend

ROBOFORTH (a language based on FORTH).

: PICKPLACE P1 P3 GRIP P5 UNGRIP P1 ;(With Roboforth you can specify approach positions for places so you do not need P2 and P4.)

Clearly the robot should not continue the next move until the gripper is completely closed. Confirmation or allowed time is implicit in the above examples of CLOSEI and GRIP whereas the On vacuum command requires a time delay to ensure satisfactory suction.

Other robot programming languages

Visual programming languages

The software system for the Lego Mindstorms NXT robots is worthy of mention. It is based on and written by Labview. The approach is to start with the program rather than the data. The program is constructed by dragging icons into the program area and adding or inserting into the sequence. For each icon you then specify the parameters (data). For example for the motor drive icon you specify which motors and by how much they move. When the program is written it is downloaded into the Lego NXT 'brick' (microcontroller) for test.

Parallel languages

Another interesting approach is worthy of mention. All robotic applications need parallelism and event-based programming. Parallelism is where the robot does two or more things at the same time. This requires appropriate hardware and software. Most programming languages rely on threads or complex abstraction classes to handle parallelism and the complexity that comes with it, like concurrent access to shared ressources. URBI provides a higher level of abstraction by integrating parallelism and events in the core of the language semantics.

whenever(face.visible) { headPan.val += camera.xfov * face.x & headTilt.val += camera.yfov * face.y }

The above code will move the headPan and headTilt motors in parallel to make the robot head follow the human face visible on the video taken by its camera whenever a face is seen by the robot.

Robotics Software Projects

* [http://robots.mobilerobots.com/ARIA/ ARIA robot API libraries] Source available under GNU; compatible with pioneers, peoplebot, seekur, amigobot, powerbot and other robots; programmable with Java, C++, Python under WIN/Linux.
* [http://claraty.jpl.nasa.gov/ CLARAty] - Coupled-Layer Architecture for Robotic Autonomy. It is a collaborative effort among four institutions: NASA Jet Propulsion Laboratory, NASA Ames Research Center, Carnegie Mellon, and the University of Minnesota.
* [http://dros.org Dave's Robotic Operating System (DROS)] Free Software for the robotics researcher or hobbyist.
* [http://www.evolution.com/products/ersp/ ERSP] - A commercial robot software system by Evolution Robotics.
* [http://miarn.sf.net Experimental Robotics Framework] - A software for making experiments with multiple robots in 3d, with support for the latest technologies, that sits on top of Player/Stage and Open/CV.
* [http://marie.sf.net MARIE] - Mobile and Autonomous Robotics Integration Environment - is a Free Software using a component-based approach to build robotics software systems by integrating previously-existing and new software components.
* Microsoft Robotics Studio - Uses a component based approach. Each component is a service. Services are orchestrated through a concurrency library called the CCR. Current version (1.5) includes a Microsoft XNA-Framework based simulator with physics simulation and a Visual Programming Language.
* MobileSIM, built on the Stage simulator platform. MobileSim provides access to simulated robots and their environment with ARIA programs.
* The Mobile Robot Programming Toolkit (MRPT) - An open-source set of C++ libraries and applications which cover grabbing, visualizing and manipulating datasets, particle filter and Kalman filter-based SLAM, linear algebra, robotics sensors and MATLAB-like plot rendering.
* [http://www.openjaus.com OpenJAUS] - An open-source component based approach that uses standarized messages and transport methods to create interoperable robotic systems.
* [http://orca-robotics.sourceforge.net Orca] - an open-source framework for developing component-based robotic systems. It provides the means for defining and developing the building-blocks which can be pieced together to form arbitrarily complex robotic systems, from single vehicles to distributed sensor networks. Inter-component communication is implemented using Ice middleware.
* Orchestra Control Engine - A suite of software components (based on Linux/RTAI) for realtime industrial robots and machines control.
* [http://www.orocos.org OROCOS] - the Open Robot Control Software project provides a Free Software toolkit for realtime robot arm and machine tool control.
* Player/Stage Project - A very popular Free Software robot interface and simulation system, used for robotics research and teaching worldwide.
* [http://www.programblue.com Programblue] - A growing project of 80's fans from the showbiz pizza era creating custom shows on their robot bands in their garages. See how music can be enjoyed visually through these robots using programblue software.
* [http://PyroRobotics.org Pyro, Python Robotics] - Popular robotics Free Software used in universities and colleges. Easy to use, yet powerful, allows students and researchers to write high-level programs to explore Artificial Intelligence and robotics without worrying about low-level details.
* [http://roboDNA.com roboDNA] - RoboDNA researches Dashboard technologies used to operate robots from a PC, including a free version for the Lego NXT.
* [http://www.robomind.net RoboMind] - Educational software to learn the basics of robotics and programming.
* [http://www.inl.gov/adaptiverobotics/robotintelligencekernel/index.shtml Robot Intelligence Kernel ]
* [http://www.skilligent.com Skilligent] - a commercial control system for autonomous service robots. The control system enables creation of robots which can be trained by end users - vs. programmed by a software engineer.
* [http://www.gostai.com/index-main.php URBI] - Universal Real-time Behavior Interface from Gostai.
* Webots - A commercial robot simulation package that allows physically realistic simulations and allows you to prototype your own robot. It also comes with a broad palette of predesigned robot models, e.g. Aibo, e-puck, khepera, hoap2, hemisson, pioneer, etc.

Robotics Linux Kernel Drivers

* [http://cole.homedns.org/parallelport_pwm_driver.php Parallel Port PWM/Encoder Linux Driver] - a poor-mans motor controller software driver.

ee also

* Behavior based robotics and Subsumption architecture
* Developmental robotics
* Epigenetic robotics
* Evolutionary robotics
* Cognitive robotics
* Robot control
* Automated planning and scheduling
* Cybernetics
* Artificial intelligence
* Telerobotics / Telepresence
* Swarm robotics

External links

* "The Basics - [http://www.seattlerobotics.org/encoder/aug97/basics.html Robot Software] ". Seattle Robotics Society.
* G.W. Lucas, " [http://rossum.sourceforge.net/ Rossum Project] ".
* " [http://www-static.cc.gatech.edu/ai/robot-lab/MARS/ Mobile Autonomous Robot Software] " (MARS)". Georgia Tech Research Corporation.
* " [http://robot.spawar.navy.mil/home.asp?item=robotsoftware Tech Database] ". robot.spawar.navy.mil.
* [http://www.inl.gov/adaptiverobotics Adaptive Robotics Software at the Idaho National Laboratory]
* [http://www.linuxdevices.com/articles/AT5739475111.html A review of robotics software platforms] Linux Devices.
* [http://www.mobilerobots.com/TrainingFactoryUserGuide.pdf "MobileRobots Training Factory"] Robot software users guide for set-up, installation, tasking and control of autonomous robots without programming.


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Robot — Saltar a navegación, búsqueda Para otros usos de este término, véase Robot (desambiguación). Un robot es una entidad virtual o mecánica artificial. En la práctica, esto es por lo general un sistema electromecánico que, por su apariencia o sus… …   Wikipedia Español

  • Robot kinematics — is the study of the motion (kinematics) of robots. In a kinematic analysis the position, velocity and acceleration of all the links are calculated without considering the forces that cause this motion. The relationship between motion, and the… …   Wikipedia

  • Robot — This article is about mechanical robots. For other uses of the term, see robot (disambiguation). For software agents, see Bot. ASIMO (2000) at the Expo 2005, a humanoid robot …   Wikipedia

  • robot — robotism, n. robotic, robotistic /roh beuh tis tik, bo /, adj. robotlike, adj. /roh beuht, bot/, n. 1. a machine that resembles a human and does mechanical, routine tasks on command. 2. a person who acts and responds in a mechanical, routine… …   Universalium

  • Robot competition — A robotic competition is an event where robots have to accomplish a given task. Usually they have to beat other robots in order to become the best one. Most competitions are for schools but as time goes by, several professional competitions are… …   Wikipedia

  • Robot Battle (Macintosh game) — Infobox VG| title = Robot Battle developer = Toby Smith publisher = Blue Cow Software designer = Toby Smith Charlie Moylan engine = released = 1991 genre = Programming game modes = Single player ratings = platforms = Mac OS media = requirements …   Wikipedia

  • Robot combat — Not to be confused with Military robots. A spinner type robot attacks Robot combat is a hobby/sport in which two or more custom built machines use varied methods of destroying or disabling the other. As of today, in most cases these machines are… …   Wikipedia

  • Robot Battle — Infobox VG| title = Robot Battle developer = Brad Schick publisher = GarageGames designer = engine = released = 2002 genre = Programming game modes = Single player ratings = platforms = Windows media = requirements = input = : For the Apple… …   Wikipedia

  • Robot (disambiguation) — A robot is an electro mechanical device.Robot may refer to: * Endhiran , a forthcoming Indian science fiction film previously known as Robot * Robots (computer game), a computer game originally developed for the unix operating system. * Robot… …   Wikipedia

  • Robot fetishism — An Actroid manufactured by Kokoro Company Ltd. Robot fetishism (also ASFR or technosexuality[1]) is a fetishistic attraction to humanoid robots; also to people acting like robots or people dressed in robot costumes. A less common fantasy involves …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”