Robot Programming Software for SMEs

At large global companies, industrial robots have been in use for decades. Everyone has seen images of an automotive body-in-white line with dozens of large robots welding and manipulating parts with speed and efficiency. Unfortunately, this type of mass-scale, high volume automation project is out of reach for most companies. However, in the past several years, the growth of the industrial robotics market has rapidly increased, and more and more flexible, easy to implement robots are finding users in an array of applications from manufacturing assembly to CNC milling, welding, packaging, healthcare, and even artistic projects.

How Offline Programming Software Helps Validate New Robot Integration Projects

So, how can you find out if flexible robotic automation can help in your process without purchasing a robot? The answer could be robotic simulation, allowing you to design and test your robotic cell layout and programming before investing in expensive hardware, software and integration. Because RoboDK is robot-agnostic, it’s possible to configure the simulation for many different makes and models of robot.

Below are a few different application examples:

Arc Welding

Norwegian startup Rebartek identified that the process of welding rebar parts into cages could be automated using two robots, with one picking and placing the rebar parts and the other robot doing the welding.  Rebartek used a Universal Robots robot to test their solution at first, before purchasing two KUKA robots to do the job.

Image courtesy of Rebartek

According to the company, RoboDK was the best choice because of its easy-to-use interface and extensive documentation, in addition to the online support community. Because Rebartek is planning more and more advanced projects with RoboDK, they used the RoboDK API to go beyond the capabilities of the graphical programming interface. Lastly, because RoboDK is robot agnostic, they were able to process their programming for the UR robot and for the KUKA robots.

Accurate Drilling

Here’s a machining challenge: how do you drill 40,000 holes across the surface of a sphere, with 0.100 mm tolerance? It may sound like a practical joke, but for Neoset designs, it was the critical challenge of creating Death Star II, an art project.

To drill the holes, the team used a KUKA Titan robot, one of the largest industrial robots on the market. The robot’s massive payload was needed to support a specially made drilling tool which itself had three axes of freedom like a milling machine. This allowed the drill to achieve a higher accuracy than was possible with the robot alone and to minimize vibration.

Image courtesy of Neoset Designs

The team used RoboDK to calibrate the massive robot and to and implement adaptive robot control to drill the 40,000 holes. A Python script and the robot driver made real time robot compensation possible in RoboDK. The Python script validated the position with the measurement system before drilling. Any inaccuracy was corrected using an external 6D measurement system.

Robot Machining

While Rebartek and Neoset Designs both designed their processes to use one tool, one of the advantages of robotic automation is its flexibility. A great example of this is Sunrob Robotics’ hockey stick milling process, a company based in Finland. A video of the process can be viewed here.

First, the robot picks up a preform goalie stick from a pile. Then, it uses a laser scanner to align the milling toolpath program with the real position of the preform. The robot’s program also controls the clamps which hold the preform in place during milling. Next, the robot executes the toolpath and cuts the preform into shape. Because RoboDK is software agnostic, the toolpath could be created with any CAM software.

Because the robot is able to perform multiple tasks including laser measurement, handling objects and milling, it effectively performs the entire process faster than what could be done with a CNC machining center, for example—especially because of the odd shape of the goalie stick.  

Image courtesy of Sunrob Robotics

Online Programming

Offline programming is a useful way of programming robots, but what about online programming?

Online programming with RoboDK allows executing the movements on the real robot at the same time as it is being simulated. Modifications in the original program can be made in real time and synchronization between robots can be easily managed. This is achieved by using RoboDK simulation platform and appropriate robot drivers.

EventRobotics implemented this live programming method in The Netherlands. At a concert event called Supremacy 2016, two KUKA KR 210 robots and RoboDK online programming were used to synchronize the motion of lights with the music of the concert.

Image courtesy of Event Electronics

Which Robot is Right for Your Application?

While many manufacturers tend to purchase only one brand of robot throughout their operations, not all robots are best suited to all tasks. For example, because collaborative robots are able to work alongside humans, this makes them well suited to tasks like machine tending, where the full safety guarding needed for a traditional industrial robot could get in the way. However, collaborative robots are not well suited to tasks that use a dangerous end-effector or take place away from human workers. For example, a Motoman HC-10 has collaborative safety features, but these are negated by a welding torch, which requires safety shielding when operated around people. A collaborative robot also may not be ideal in an automated paint spraying booth where people will not be working in close proximity to the robot during operation. So, it’s common for manufacturers who have existing robots from one vendor to purchase a robot from another vendor when necessary. However, this can cause headaches for the robot programming personnel.

How challenging is robot programming?

For those that haven’t worked with industrial robots before, this answer varies greatly between brands, process applications, and even types of robots within one brand. For example, most KUKA serial manipulator robots are programmed in KUKA Robot Language (KRL), a proprietary language similar to Fortran. KUKA collaborative robots such as the KUKA iiwa and KUKA mobile robots use the KUKA Sunrise controller and are programmed in Java.

FANUC robots may be programmed in two languages, teach pendant (TP) or KAREL. TP is written using the teach pendant interface, while KAREL can be programmed offline on a PC. Like KRL, KAREL is similar to VHDL. Motoman robots are programmed with the INFORM language (an assembler-like programming language), but the company also offers a library for C++, C# or Visual Basic called MotoCom. The ABB programming language is called RAPID and is similar to Visual Basic.

To illustrate the differences, take a look at this chart of three basic commands represented in several robot programming languages (and the number of parameters required):

Robot Joint
Move
Linear
Move
Set Speed Path
Rounding
ABB IRC5 MoveJ (4) MoveL (4) speeddata(4) zonedata(4)
Fanuc RJ3 J (2) L (2) speed (1) CNT (1)
Kawasaki JMOVE (1) LMOVE (1) SPEED (1) ACCURACY (1)
KUKA KRC PTP (1) LIN/SPL (1) $VEL.CP (1) $APO.CDIS (1)
Motoman JBI MOVJ (2) MOVL (2) VJ/V (1) PL (1)
Universal Robots movej (1) movel/movep (1) v(1) r (1)

Head spinning yet? That’s a lot of different languages and interfaces, and there are dozens more robot manufacturers on the market such as Staubli, Epson, or Kawasaki. The RoboDK library supports more than 1000 different robots from over 50 manufacturers, and end users can also add their robots to the library at any time.

In industrial robot programming, you could say that the motion path programming itself is the easy part. The challenge is in properly initializing the robot, figuring out how to structure a program with subroutine calls or logic, and working with external inputs such as sensors, switches, PLC control, and the end effector, especially if the end effector does not come with a supported plugin. However, while path programming is simple, it can be tedious and repetitive to do manually, as the robot must be jogged to each position and precisely located at each desired point. A typical program may contain dozens or even hundreds of points. When complete, the program must be tested at low velocity, then at full velocity, and debugged. If your production line is down for this entire process, it can be quite costly as well.

This is one of the advantages of using RoboDK. Instead of becoming proficient in multiple robot brands proprietary controller software, your programmer can achieve the same results faster as a user of RoboDK with basic capability with the robot interfaces.

In addition, since RoboDK is vendor agnostic it can help you decide if a robot of any make and model can add value to your production line before you purchase.

RoboDK is free to try. Compared to other offline programming software which can cost over $50K USD, RoboDK is an affordable option with extensive community support. So, if you’re considering adding a robot to your production line, or considering offline programming or simulation as a solution to your robot programming headaches, try RoboDK.