Robotics

Must Watch!



MustWatch

Botmag Robotic Magazine Servo Magazine
Robotics Sciencemag global 50 best robotics Amazing Robots 全球机器人公司50强 Robot Without Cables Or Connectors robotics stackexchange quadcopter Robot


Robot software introduction

Industrial robot software
Examples of programming languages for industrial robots
Other robot programming languages
Visual programming language
Scripting languages
Parallel languages
Robot application software
Safety considerations
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.

Examples of programming languages for industrial robots


Due to the highly 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. For example, there are over 30 different manufacturers of industrial robots, so there are also 30 different robot programming languages required. There are enough similarities between the different robots that it is possible to gain a broad-based understanding of robot programming without having to learn each manufacturer's proprietary language. One method of controlling robots from multiple manufacturers is to use a Post processor and Off-line programming (robotics) software. With this method, it is possible to handle brand-specific robot programming language from a universal programming language, such as Python (programming language). however, compiling and uploading fixed off-line code to a robot controller doesn't allow the robotic system to be state aware, so it cannot adapt its motion and recover as the environment changes. Unified real-time adaptive control for any robot is currently possible with a few different third-party tools. Some examples of published robot programming languages are shown below. Task in plain English: 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 Example of Stäubli VAL3 program: begin movej(p1,tGripper,mNomSpeed) movej(appro(p3,trAppro),tGripper,mNomSpeed) movel(p3,tGripper,mNomSpeed) close(tGripper) movej(appro(p5,trAppro),tGripper,mNomSpeed) movel(p5,tGripper,mNomSpeed) open(tGripper) movej(p1,tGripper,mNomSpeed) end trAppro is cartesian transformation variable. If we use in with appro command, we do not need to teach P2 land P4 point, but we dynamically transform an approach to position of pick and place for trajectory generation. 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 WITHDRAW P5 UNGRIP WITHDRAW 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 language


The LEGO Mindstorms EV3 programming language is a simple language for its users to interact with. It is a graphical user interface (GUI) written with 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.

Scripting languages


A scripting language is a high-level programming language that is used to control the software application, and is interpreted in real-time, or "translated on the fly", instead of being compiled in advance. A scripting language may be a general-purpose programming language or it may be limited to specific functions used to augment the running of an application or system program. Some scripting languages, such as RoboLogix, have data objects residing in registers, and the program flow represents the list of instructions, or instruction set, that is used to program the robot.
Programming languages in industrial robotics
Robot brandLanguage name
ABBRAPID
ComauPDL2
FanucKarel
KawasakiAS
KukaKRL
StäubliVAL3
YaskawaInform
Programming languages are generally designed for building data structures and algorithms from scratch, while scripting languages are intended more for connecting, or “gluing”, components and instructions together. Consequently, the scripting language instruction set is usually a streamlined list of program commands that are used to simplify the programming process and provide rapid application development.

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

Robot application software


Regardless which language is used, the end result of robot software is to create robotic applications that help or entertain people. Applications include command-and-control and tasking software. Command-and-control software includes robot control GUIs for tele-operated robots, point-n-click command software for autonomous robots, and scheduling software for mobile robots in factories. Tasking software includes simple drag-n-drop interfaces for setting up delivery routes, security patrols and visitor tours; it also includes custom programs written to deploy specific applications. General purpose robot application software is deployed on widely distributed robotic platforms.

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/ R15.06-1992) book from the Robotic Industries Association is the accepted standard on robot safety. This includes guidelines for both the design of industrial robots, and the implementation or integration and use of industrial robots on the factory floor. Numerous safety concepts such as safety controllers, maximum speed during a teach mode, and use of physical barriers are covered.

9 Types of Robotics Software

Offline Programming
Simulators
Middleware
Mobile Robot Planning
Real-Time Path Planning
UAV (Drone) Control
Artificial Intelligence for Robots
Which Software Is Best for You?
Here at RoboDK, we were recently overjoyed to see ourselves named as one of the Top 5 Robot Movement Software companies in a ranking by StartUS Insights. The selection was made from a database of 181 robotics software companies so this is a real thumbs-up for our great piece of software. Alongside us in Top 5 were companies with a wide range of focuses within robotics, including drone movement planning software, real-time reactive path planning, and mobile robot control. There is a huge variety of different types of software available in the robotics industry. It can be quite overwhelming to distinguish between them all and keep yourself up-to-date with the latest developments that are relevant to you and your needs. If you search for “robotics software” on Google, you will probably find yourself in front of a rather confusing set of search results. At the time of writing, many of the search results lead you towards something called Robot Process Automation (RPA) which — despite its name — has absolutely nothing to do with programming physical robots. Other results lead you specific robotics software packages, mostly those that come packaged with the particular brands of robot. Robotics software that you might encounter in the market:

Offline Programming


The category of software that is most dear to our hearts here at RoboDK, offline programming software provides a way for you to program your industrial robot without needing to be physically connected to the robot at the time. This means that you don’t need to take the robot out of production to program it. It reduces downtime, improves the quality of programming, and allows you to change between product lines quickly, amongst other benefits. The offline programming market is quite fractured, with packages often tied into individual robot brands. Then, there is offline programming software that can be used with any robot brand, like RoboDK.

Simulators


Robot simulators come in many forms. Some only allow for simple 2D simulation of specific aspects of robotics whilst others include 3D simulation with complex physics engines and realistic environments. If you wanted to, you could spend a lot of time testing all the many different simulation packages available (I have done this in the past and the usability and quality of them varies wildly). Unfortunately, it’s difficult to tell from a promotional video how easy a simulator is to use. You have to go out and test it for yourself. As well as being an offline programming tool, RoboDK is also a great simulator. It is simple enough to allow you to easily program your robot whilst being powerful enough to handle many different use cases.

Middleware


One of the most misunderstood types of robot software is middleware — the most popular being ROS (Robot Operating System). Robot middleware provides a framework for running and managing complex robotic systems from a single unified interface. As some people describe it, middleware is the “software glue” that helps robot builders to avoid reinventing the wheel when they are designing a new robotic system. You probably wouldn’t use middleware to control a single robot on a production line. However, if you were building your own robotic system with multiple components or looking to coordinate multiple robots, you might use middleware to make your life a bit easier during the R&D phase.

Mobile Robot Planning


Mobile robots are programmed in a different way from other robots which means using a different type of software too. For example, path planners are used to program the route that the robot will take through the environment while obstacle avoidance algorithms react to changes in the moment. There are a lot of interesting software tools available for mobile robot programming, ranging from warehouse logistics to autonomous vehicles.

Real-Time Path Planning


Path planning software is used in many areas of robotics. Basic path planners, like our PRM feature, are simply used to speed up the programming phase for industrial robotics. Real-time path planning is much more complex than basic path planning because it involves continually updating the program to respond to changes in the environment. These allow the robot to be reactive but can also make the robot more unsafe. Software companies who specialize in real-time path planning tend to focus their efforts on a single type of robot, like humanoid robotics, mobile robotics, or robotic arms.

UAV (Drone) Control


A growing type of robotic software is drone control. This refers to any software which is used to program and coordinate unmanned aerial vehicles (UAVs/drones). There have been a growing number of application areas for drones over the last decade or so with drones now used in agriculture, inspection, and security. Software for drones tends to focus on particular application areas or aspects of drone control (e.g. data collection, image analysis, mapping etc).

Artificial Intelligence for Robots


Artificial intelligence (AI) has been used with robotics for many years — almost as long as robotics have been around. However, there has recently been a rising number of software solutions specifically for using AI with robots in particular application areas. As with the other types of robot software, AI tends to be focused on specific aspects of these applications, such as analyzing images collected in agricultural settings, filtering operational data in manufacturing environments, or coordinating swarms of mobile robots in logistics.

Which Software Is Best for You?


As you can probably see, there is a huge range of types of robot software. If you’re looking for software for a particular robot application, it’s worth being very specific about what you are looking for. For example, you will be much more successful if you search for terms like “offline programming for robotic machining” than just “industrial robot programming.” And, as I said above, one of the best ways to determine if a particular piece of robotic software is right for your needs is to try it out for yourself.