Will Offline Programming Work With My Robot?

Before you invest in offline programming, you want to make sure that it will work for your robot. Here are three steps you should take to ensure that your robot is supported.

Thinking about investing in offline programming? You’re probably wondering if it will work for your specific robot model.

It makes sense to find out if your robot is supported right now before you start testing many software packages. After all, it would be a waste of time and money to download, then install, then learn a new software program… only to find out that your robot model isn’t supported.

In the past, only some robot brands provided an offline programming option. Each manufacturer developed its own simulation software. This software was, more or less, the only option you had available for offline programming. If your brand didn’t provide it, you were stuck.

These days, there are many options available for programming any robot offline. Every year, new simulators appear on the market. Every year, robot users have more and more choice. As a result, every year the choice becomes a little more difficult.

The Basic Answer

The simple answer to the question “Can I program my robot offline?” is: Yes!

However, it’s not really as simple as that.

You can program any robot offline if you have got enough time and expertise in your team. The problem is that some software packages make it more difficult than others and, therefore, less of a viable option.

To determine whether your robot is suitable for offline programming you need to:

  1. Find a software which will make it easier, not harder, to program the robot.
  2. Assess how easily your specific robot can be used in this software.
  3. Try out the software for yourself.

In the rest of this article, I’ll go through these ones by one.

Why Some Software Isn’t Suitable to Program Your Robot Offline

You don’t want to waste hours, or days, trying to get your robot to “play nicely” with a particular software.

Some years ago, I was doing a PhD in robotics. At the time, I tried many robot simulators to try to find “the best one.” I eventually discovered that this was an exercise in futility — no one software is “the best,” it depends on your application. However, in the process, I learned a lot about what makes a good simulator.

Now, you might notice that I’ve used the word “simulator” here. All offline programming (OLP) is a type of simulation. However, I think it’s important to clarify that an OLP software is not necessarily a full robot simulator. Robot simulators often include physics engines which try to model the entire world. For example, if you create a ball object in a full simulator the ball will fall to the ground and roll around.

For industrial OLP, this level of “realism” is usually an unnecessary nuisance. I can tell you from years of bitter experience that “more realistic physics” is a pain in the neck when you’re trying to develop a reliable robot program. During my PhD, I wasted many hours trying to get physics engines to work properly, much longer than I spent actually programming the robot.

What I learned over the years is this:

You want a software which will only simulate those properties which are important for your task.

For most of us, this means we need kinematic modeling of our robot and sometimes basic collision detection.

RoboDK focuses on accurately controlling the kinematics of your robot, not modeling world physics. I think this makes RoboDK inherently more reliable and usable than some of the other options.

How to Assess Your Robot’s Compatibility with a Particular Software

The next thing you want is a good model of your specific robot. This is a key factor which will determine how easy it will be for you to use the software. With an accurate model, you can try out the software for yourself.

However, getting a good model is not always so simple.

You have three options for obtaining a model of your robot:

  1. Create one yourself — This often involves the following steps and can take a few days for an experienced engineer:
    1. Find and download the CAD model for your robot from the manufacturer.
    2. Clean up the CAD model so that it is suitable for kinematic control (e.g. merging parts and exporting each link to an individual file).
    3. Learn the required kinematic file format for the simulator you are using.
    4. Derive the kinematic model for the robot using the correct formulation for the simulator (e.g. using its Denavit-Hartenberg parameters).
    5. Code or build the input file which describes the robot.
    6. Load the file into the simulator, test it and correct any bugs.
    7. Develop or find a post-processor. This will generate instructions that the physical robot can understand. If you can’t find an existing post-processor for your robot brand, this could take quite some time. RoboDK offers a post processor, view the details here.
  2. Adapt a model from another simulator — This involves finding an existing model for the robot and reprogramming it for the simulator you are using. It can take almost the same amount of time as the previous option, and may still involve writing your own post-processor.
  3. Use a simulator which supports your robot out of the box — This is the best and easiest option. Use software which includes a big catalog of robots. You can then load your robot into the program in a matter of minutes and start programming it immediately.

At RoboDK, we favor the third option. We appreciate that most people don’t have time to fiddle around with kinematic files just to test out an OLP software package.

You can find over 300 robot models from over 30 manufacturers in our Robot Library.

Also, if you find that your specific robot isn’t listed, just send us an email and we will do our best to add it to our library, so that you don’t have to.

Test the Software Yourself

I have always believed that the best way to judge a software is to try it out yourself.

You can read as many reviews as you like. You can watch as many video tutorials as you want.  It is only when you sit down and get a feel for the software that you can tell if it will be right for you.

Once you have loaded your robot model into the software, try programming a simple task — like a basic pick-and-place task, for example.

With RoboDK, you should be able to get a program up and running in a matter of minutes. It probably won’t be the most optimized program in the world, but it will be something.

Now, I don’t want you to think that I’m over-simplifying this.

“Sure, Alex!” I hear you thinking. “A matter of minutes, yeah right!”

Let me prove it to you.

As a test, I just ran a new installation of RoboDK and loaded up a UR robot. This took me only a few minutes. I then programmed the robot. To make my time estimate more realistic, as I did this I read through the Getting Started tutorial to extract the information I needed to make a very simple pick-and-place program. I then exported the program to a UR Script file, which could be loaded into the robot. The whole process took me just 15 minutes.

Even accounting for the fact that I read quickly, you should be able to make your robot move using an OLP-produced program within an hour of installing RoboDK (assuming your robot is already in the Robot Library).

And if that’s not proof that offline programming will work for your robot, I don’t know what is!

Download a free trial copy of RoboDK at this link to try it out for yourself!



Alex Owen-Hill

About Alex Owen-Hill

Alex Owen-Hill is a freelance writer and public speaker who blogs about a large range of topics, including science, presentation skills at CreateClarifyArticulate.com, storytelling and (of course) robotics. He completed a PhD in Telerobotics from Universidad Politecnica de Madrid as part of the PURESAFE project, in collaboration with CERN. As a recovering academic, he maintains a firm foot in the robotics world by blogging about industrial robotics.

View all posts by Alex Owen-Hill

2 Comments on “Will Offline Programming Work With My Robot?”

Leave a Reply

Your email address will not be published. Required fields are marked *