Logos

Options for factory simulation

Here we discuss the options to create a factory simulation using software. If you need background information, see:

There are a number of software packages that can be used for factory simulation but they fall into two approaches:

  • Commercial Off-the-shelf (COTS) software for simulating robots and machines
  • Game engines

In short, the COTS offerings will:

  • Handle robots well allowing you to program robots for a particular work cell.
  • Handle custom machinery less well.
  • Not scale to large systems.
  • Have barriers between machine, line and plant scale.

And, game engines will:

  • Scale well.
  • Allow you to ship a build of your simulation.
  • Build anything you want.
  • Require custom programming.

Off-the-shelf Software

There are a number of packages available that do various things well and not so well. They can be split into:

Robot Simulators

These are focused on providing "offline programming (OLP)) for robot programmers. They help the designer choose the proper sized robot, test programs and generate runnable code. Most can also load programs from robots into the simulation software. Many companies choose to use this software as the gateway for all program changes on the robot to ensure that backups are created and physical crashes are minimized.

Robot Simulator Software

Robot Vendor These are typically supplied by the robot vendor when you purchase a robot but can be obtained other ways as well.

3rd Party These are standalone software products. Their main advantage is that they support most robots from most vendors.

Automation Simulators

These packages attempt to allow simulation of tooling like conveyors, gantries and custom machinery. This tends to be a harder problem since custom machines come in endless varieties therefore the geometry, physics and programs are infinitely variable.

Of course, various components are well known like proximity sensors, motors and lights among many others. The question is:

  • can the components handle the complexity of the machine you're building?
  • how long will it take to create the sim?

Automation Simulator Software

Game Engines

Video games are very complex to build and require complex tooling. Recently, this tooling has started to move beyond video games and into many other fields, especially design fields such as architecture/engineering/construcion (AEC) and film/TV. They have also become invaluable tools for complex and dangerous fields like self-driving cars. They are, therefore, quite capable of meeting the demands of the industrial automation space. But there are challenges since nothing is (yet) fully featured out-of-the-box.

The realization of this approach is well demonstrated by the Factory I/O software package. It is a very polished product but is used only for training (ie. learning how to program a PLC. All machines and functionality are predefined. And while their components can be rearranged to create, say, various conveyor configurations, it does not allow you to load your custom machine geometry and run your program. Therefore, it is a training tool only, not an engineering tool.

What is needed is something like Factory I/O but with a framework that allows you to easily create the machine you're building. There are some people working on this but it is early days:

This article (forthcoming) details the functionality that needs to be built within a game engine to make it useful and easy to create an industrial simulation.

Game Engine Software

There are a number of games engines available but the big two for the average developer in the industrial space are:

While I have in-depth experience only with Unity, some important features for simulation can be easily compared.

Game Engine Comparison

Cost: Unity: Varies | Unreal: Free

  • Yep, Unreal is free forever. So, you have to decide whether the dev time working with C++ is more expensive than the seat costs of Unity. It's likely it will be if you don't have C++ talent already.

CAD Import Unity: Pixyz (extra) | Unreal: Datasmith (included)

  • It is extra cost to get CAD import functionality in Unity. One of the big advantages of Unreal is that many CAD formats are built in.

Programming Language Unity: C# | Unreal: C++

  • Both are powerful, but C# is considered much easier to use. Both help ease the coding barrier.

Graphical Programming Unity: Bolt | Unreal: Blueprint

  • Blueprint is built into Unreal, where Bolt was recently added from a 3rd party.

3rd Party Libraries Unity: .NET | Unreal: C++ (not .NET)

  • Life will just be easier with .NET DLLs.

Assets Unity: Asset Store | Unreal: Marketplace

  • While both are great, Unity has more content for the 'industrial' space.

So, the comparison is

Topic Unity Unreal
Cost win
Programming Language win
CAD Import win
Graphical Programming tie tie
3rd-party Libraries win
3rd party Assets win

So, this may look like nearly a tie, but if you're doing a lot of programming in-house you're likely going to benefit from 3rd party libraries, assets and a more approachable programming language. Also, Unity is free for a while so you can decide if it is the right fit.

Wrap up

If you're doing mostly industrial robotics in workcell-type applications, then the robot packages will work well for you. If you have custom machinery, then consider one of the automation packages.

But if you're going to go in hard on simulation, consider rolling your own with a game engine. Of course, it would be nice if there was an industrial framework for game engines to make this easier. See this article for what's needed:

Or check out the other articles in this series:

results matching ""

    No results matching ""