Robot Control Programming

Robot Control Programming

A robot must be programmed to perform its motion cycle to do useful work. A robot program can be defined as a path in space to be followed by the manipulator, combined with peripheral actions that support the work cycle. Examples of peripheral activities include opening and closing the gripper, performing logical decision-making, and communicating with other pieces of equipment in the robot cell. A robot is programmed by entering the programming commands into its controller memory. Different robots use different methods of entering commands.

In the case of limited sequence robots, programming is accomplished by setting limit switches and mechanical stops to control the endpoints of their motions. The sequence in which the actions occur is regulated by a sequencing device. This device determines the order in which each joint is actuated to form the complete motion cycle. Setting the stops and switches and wiring the sequencer is more manual setup than programming.

Today and in the foreseeable future, nearly all industrial robots have digital computers as their controllers, together with compatible storage devices as their memory units. For these robots, three programming methods can be distinguished: (1)Lead through Programming, (2)Computer-like robot programming languages, and (3)Off-line programming.

1. Lead through Programming:

Lead-through programming and robot language programming are the two methods most commonly used today for entering commands into computer memory. Lead through programming dates back to the early 1960s before computer control was prevalent. The same basic methods are used today for many computer-controlled robots. In lead-through programming, the task is taught to the robot by moving the manipulator through the required motion cycle, simultaneously entering the program into the controller memory for subsequent playback.

There are two methods of performing the lead-through teach procedure: (1) powered lead-through and (2) manual lead-through. The difference between the two is in the manner in which the manipulator is moved through the motion cycle during programming. Powered lead-through is commonly used as the programming method for playback robots with point-to-point control. It involves the use of a J teach pendant (handheld control box) that has toggle switches or contact buttons for controlling the movement of the manipulator's joints. Figure 1 illustrates the important components of a teach pendant. Using the toggle switches or buttons, the programmer power drives the robot arm to the desired positions, in sequence, and records the positions in memory. During subsequent playback, the robot moves through the sequence of positions under its own power.

Fig 1. Teach Pendant

Source:https://www.industrial-electronics.com/

 

Manual lead-through is convenient for programming playback robots with continuous path control where the continuous path is an irregular motion pattern such as in spray painting. This programming method requires the operator to physically grasp the end-of-arm or tool attached to the arm and manually move it through the motion sequence, recording the path into memory. Because the robot arm itself may have significant mass and would therefore be difficult to move, a special programming device often replaces the actual robot for the teaching procedure. The programming device has the same joint configuration as the robot. and it is equipped with a trigger handle (or other control switch), which is activated when the operator wishes to record motions into memory. The motions are recorded as a series of closely spaced points. During playback, the path is recreated by controlling the actual robot arm through the same sequence of points.

Motion Programming:

The lead-through methods provide a very natural way of programming motion commands into the robot controller. In manual lead-through, the operator simply moves the arm through the required path to create the program as shown in Figure 2. In powered lead-through, the operator uses a teach pendant to drive the manipulator. The teach pendant is equipped with a switch or a pair of contact buttons for each joint. By activating these switches or in a coordinated fashion for the various joints, the programmer moves the manipulator to the required positions in the workspace as shown in Figure 3.

Fig 2. Manual Lead-through Programming

Source:https://www.youtube.com/

Fig 3. Powered Lead-through Programming

Source:https://www.youtube.com/ 

Coordinating the individual joints with the teach pendant is sometimes an awkward way to enter motion commands to the robot. For example, it is difficult to coordinate the individual joints of a jointed-arm robot (TRR configuration) to drive the end-of-arm in a straight-line motion. Therefore, many of the robots using powered lead-through provide two alternative methods for controlling the movement of the manipulator during programming, in addition to individual joint controls. With these methods, the programmer can control the robot's wrist end to move in straight line paths. The names given to these alternatives are (1) world coordinate system and (2) tool coordinate system. Both systems make use of a Cartesian coordinate system. In the world coordinate system, the origin and frame of reference are defined with respect to some fixed position and alignment relative to the robot base. This arrangement is illustrated in Figure 4(a). In the tool coordinate system, shown in Figure 4(b), the alignment of the axis system is defined relative to the orientation of the wrist faceplate (to which the end effector is attached). In this way, the programmer can orient the tool in the desired way and then control the robot to make linear moves in directions parallel or perpendicular to the tool.

Fig 4 (a) World Coordinate System (b) Tool Coordinate System

Source: https://www.brainkart.com/

The world coordinate system and the tool coordinate system are useful only if the robot has the capacity to move its wrist end in a straight line motion, parallel to one of the axes of the coordinate system. Straight line motion is quite natural for a Cartesian coordinate robot (LRR configuration) but unnatural for robots with any combination of rotational joints (types R, T, and V). To accomplish straight line motion for manipulators with these types of joints requires a linear interpolation process to be carried out by the robot's controller. In straight line interpolation. the control computer calculates the sequence of addressable points in space that the wrist end must move through to achieve a straight line path between two points.

The speed of the robot is controlled by means of a dial or other input device, located on the teach pendant or tile main control panel. Certain motions in the work cycle should be performed at high speeds (e.g., moving parts over substantial distances in the work cell), while other motions require low-speed operation (e.g. motions that require high precision in placing the work part). Speed control also permits a given program to be tried out at a safe slow speed and then at a higher speed to be used during production.

 

2. Robotic Programming Languages:

As digital computers took over the control function in robotics, the use of textual programming languages became an appropriate programming strategy. Their use has been fueled by the rising complexity of the tasks that robots are asked to accomplish, as well as the necessity to include logical reasoning into the robot work cycle. Because the robot must still be taught its locations through the leadthrough approach, these computer-like programming languages are really-online/off-fine ways of programming.

Textual programming languages for robots enable the following functions that Ieadthrough programming cannot easily accomplish:

  1. improved sensor capabilities includes the use of both analog and digital inputs and outputs
  2. enhanced output capability for controlling external equipment
  3. programme logic that goes above and beyond the limits of leadthrough approaches
  4. computations and data processing in the same manner as computer programming languages
  5. interaction with other computer systems

Examples of Top Robotic Programming Languages:

There are around 1500 robotic programming languages available worldwide. They are all participating in robotic training. This section will go over the top programming languages available today.

1.     C/C++ :

It allows for a low-level hardware interface and real-time performance. C++ is the most advanced programming language for getting the most out of a robot. C++ allows you to programme in three ways. Among these are the Constructor, Autonomous, and OperatorControl techniques. The initializing code runs to generate a class in this function Object() { [native code] } mode. In this case, it will run at the start of the programme. It helps with sensor initialization and the generation of additional WPILib objects. The autonomous technique ensures that the code is run. It only works for a limited period. The robot then advances to the teleoperation phase. In this scenario, the Operator Control method is applied.

2.     Python

Python, along with C and C++, is one of the easiest programming languages to learn and one of the most popular. Python is an interpreted language with a large library that makes it even easier to construct basic functions. Python also requires fewer lines of code, making it easier to use — and understand — than C, C++, and Java. Python saves time on programming by eliminating the need to specify and cast variable types and allowing motions to be defined in the same script. Python has a large developer community, which can be an excellent resource for novices to tap into during the learning phase due to its widespread use and popularity.

 

3. Simulation and offline programming:

Programming is a vital step involved with the implementation process of robotic automation. Programming consists of creating a set of commands or instructions that inform an industrial robot how to perform a given application. For users to maximize the benefits of robotic automation it is imperative their robot is programmed correctly. For instance, the FANUC Arcmate 120ic can be used to automate arc welding applications, but to carry out a specific arc welding task it must first be programmed.

Fig 5. Offline Programming

Source:https://www.youtube.com/

Offline programming is one of the programming methods commonly used with industrial robots. Teach pendants have been the most popular robotic programming method as they are a key component of any industrial robot and allow for on-the-go programming. However, offline programming is becoming more common and gaining ground on teaching pendants. Offline programming can be used with just about any of today’s industrial robots. FANUC’s M710ic/50 has the option for offline programming as well as Yaskawa Motoman’s MA1400.

Robotic offline programming (OLP) involves using software on an external computer to create a robotic application program outside of the production environment. Unlike teach pendants which use online programming, OLP designs articulated robot programs before involving the actual robot. Robotic offline programming is often confused and interchanged with offline robot simulation software, however, these two are different. Offline simulation involves testing a robot program outside of the production environment and may be used in conjunction with offline programming. If an automated assembly application is created through offline programming for a FANUC LR Mate 200id, it can be tested prior to being uploaded to the six-axis robot through offline simulation which creates a virtual representation of the robot and its work environment as shown in Figure 6.

Fig 6. Offline Simulation 

URSim is a simulation software that is used for offline programming and simulation of robot programs.

There are some limitations to the simulator since no real robot arm is connected. Especially the force control will be limited in use. If Simulation Mode is selected in the bottom left corner, it is possible to simulate digital inputs on the I/O page

When To Use Offline Programming

Offline programming can be used for most robotic systems but there are some scenarios where it is more beneficial than other robotic programming methods. OLP is ideal for any complex applications that involve several steps. Opting for offline programming can save significant time since complex applications can involve an extensive amount of manual programming when using a teach pendant. It is also ideal for manufacturing processes involving large workpieces or those with high part mixes. It can also be useful for programming robots operating in low-volume productions. The only time offline programming is not recommended is for simple applications with minimal steps as a teach pendant is still best for those.

Advantages of Offline Programming

The advantages of offline programming robots over other programming methods is the reason behind its sudden growth. Programming robots outside of the production environment eliminates downtime associated with programming. It is estimated downtime can be reduced from forty hours to just four hours or by one-tenth. Complex applications can go from taking several weeks to implement to just one day, increasing robot uptime and productivity. With less time needed to deploy a new robotic program, integration costs are decreased which helps to reduce the entire cost of the robotic system allowing for a faster ROI. In addition, when used with offline simulation adjustments can be made to work out all programming bugs before it goes live, ensuring robot accuracy and safety.


References:

[1]https://www.brainkart.com/article/Robot-Programming_6414/

[2]https://www.youtube.com/watch?v=I-M1x6aWPs8

[3]https://www.researchgate.net/publication/318812862_A_practical_approach_for_automated_polishing_system_of_free-form_surface_path_generation_based_on_industrial_arm_robot

[4]https://www.plantautomation-technology.com/articles/different-types-of-robot-programming-languages

[5]https://robotsdoneright.com/Articles/what-is-robotic-programing.html


 I would like to thank my group members Siddhant Gavit and Kedar Basutkar for their immense contribution to developing this blog in the simplest way for the understanding of each and every concept in a simple yet descriptive manner.

 

Comments