Content deleted Content added
+Robotic automation software, Swarm robotics platforms, moved ext. links and their section, +wls to the lead |
|||
(48 intermediate revisions by 38 users not shown) | |||
Line 1:
'''Robot software''' is the set of [[Computer programming|coded commands]] or instructions that tell a [[Machine|mechanical device]] and electronic system, known together as a [[robot]], what tasks to perform. Robot [[software]] is used to perform autonomous tasks. Many software systems and frameworks have been proposed to make programming robots easier.
Line 5 ⟶ 4:
==Introduction==
While it is a specific type of software, it is still quite diverse. Each manufacturer has their own robot software.
While the vast majority of software is about manipulation of data and seeing the result on-screen, robot software is for the manipulation of objects or tools in the real world.
==Industrial robot software==
Software for industrial robots consists of data objects and lists of instructions, known as program flow (list of instructions). For example,
Go to Jig1
It 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 programs that use it.
Line 20:
==Examples of programming languages for industrial robots==
Due to the highly [[Proprietary software|proprietary]] nature of robot [[software]], most manufacturers of robot hardware also provide their own software. While this is not unusual in other automated [[control systems]], the lack of standardization of programming methods for robots does pose certain challenges.
Some examples of published robot programming languages are shown below.
Line 37:
Move to P1 and finish
[[Variable Assembly Language|VAL]] was one of the first robot ‘languages’ and was used in [[Unimate]] robots.<ref>{{cite book|last1=O. Nnaji|first1=Bartholomew|title=Theory of Automatic Robot Assembly and Programming|publisher=Springer|isbn=978-0412393105|page=5|edition=1993|url=https://books.google.
Example program:
Line 65:
end
trAppro is cartesian transformation variable. If we use in with appro command, we do not need to teach P2
Epson RC+ (example for a vacuum pickup)
Line 83:
ROBOFORTH (a language based on [[FORTH]]).
<syntaxhighlight lang="forth">
</syntaxhighlight>
(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 language===
The
===Scripting languages===
A [[scripting language]] is a
{| class="wikitable"
|+Programming languages in industrial robotics<ref>{{cite web|title=Robot programming languages|url=http://fabryka-robotow.pl/2015/01/programming-languages-to-control-robot/|website=Fabryka robotów|
!Robot brand
!Language name
|-
|ABB
|[[RAPID (programming language)|RAPID]]
|-
|Comau
Line 135 ⟶ 136:
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 resources. [[URBI]] provides a higher level of abstraction by integrating parallelism and events in the core of the language semantics.
<syntaxhighlight lang="urbiscript">
whenever(face.visible)
{
Line 142 ⟶ 143:
headTilt.val += camera.yfov * face.y
}
</syntaxhighlight>
The above code will move the <code>headPan</code> and <code>headTilt</code> 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.
== Robot application software ==
Regardless which language is used, the
===Safety considerations===
Programming errors represent a serious safety consideration, 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. Due to the mass and high-speeds of industrial robots, it is always unsafe for a human to remain in the work area of the robot during automatic operation. The system can begin motion at unexpected times and a human will be unable to react quickly enough in many situations, even if prepared to do so. Thus, even if the software is free of programming errors, great care must to be taken to make an industrial robot safe for human workers or human interaction, such as loading or unloading parts, clearing a part jam, or performing maintenance. The ''ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revision of ANSI/
. ==See also==
* [[Behavior-based robotics]] and [[Subsumption architecture]]
* [[Developmental robotics]]
Line 198 ⟶ 178:
==External links==
* {{webarchive |date=2013-01-27 |url=
▲* {{webarchive |date=2013-01-27 |url=http://archive.is/20130127182004/http://www.linuxdevices.com/articles/AT5739475111.html |title=A review of robotics software platforms}} Linux Devices.
* [http://www.robotics.org/bookstore-prod.cfm?category_id=118&product_id=269/ ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revision of ANSI/RIA R15.06-1992)]
{{Robotics}}
|