How to Tell If Your Robot Simulation Setup Is Too Complex

You have created a robot simulation. You’ve added everything that you think you need — the robot model, the sensors, the end effector, the objects…

And the simulation is starting to look quite complex.

How complex should it be?

Do you need to add every detail of the setup?

What are the signs that your simulation is getting too complex?

Simulations are a great way to test your robot application before you even put your hands on a physical robot. They allow you to quickly try out new ideas, strategies, and hardware items in a safe way, without stealing valuable production time from the physical robot.

But, simulation can also be a bit of a black hole.

By which I mean, it can suck valuable time away from your work if you’re not careful.

One way that this often happens is when you add too much complexity to the simulation itself.

Why Robot Simulations Don’t Need Wallpaper

We encounter 3D simulations and animations all the time in our lives. Movies are filled with ever more realistic CGI, TV adverts increasingly use animations instead of real-life footage, and videos of engineering products often feature impressive animations of products and machines.

Naturally, we appreciate those simulations that look more realistic.

But, this love of computer-generated realism can lead us to make a costly mistake when we are creating simulations of our robot applications…

We prioritize the aesthetics of the simulation over the functionality.

It’s not uncommon to see robot simulations with complete replications of the entire factory. People add floors, walls, and all the other machines into their simulations. They even add models of workers into the simulation and waste valuable hours making those models move around.

This is the equivalent of pasting pretty wallpaper all over your CNC machine to “make it look better.” It won’t have any effect on the function of the machine and might even harm its performance.

The Only Complexity That’s Really Important in Simulations

The only reason that a robot simulation should be complex is if that complexity adds to the functionality of the robot application.

For example, let’s say you are creating a simulation to develop an offline program of your pick-and-place application. The only things that you should add to that simulation are the aspects that will contribute to the success of that application.

Everything else is just “wallpaper” and is probably unnecessary.

On one hand, if you want to be able to program the route of the robot automatically — avoiding collisions with objects in the workspace — this will add complexity by requiring more objects in the simulation and the use of a motion planner. However, it is a necessary level of complexity to achieve the functionality you need.

On the other hand, if you want to add all the other machines around the robot to your simulation, even though the robot never interacts with those machines, this is an unnecessary level of complexity and should be avoided.

In a recent update of RoboDK, we increased support for bigger, more complex project files.

But, just because you have this extra capacity now doesn’t mean you should always use it.

7 Complexities That Might Be Necessary for Your Simulation

Here are 7 aspects of a robot simulation that can increase complexity. Maybe your simulation needs them and maybe it doesn’t. Only you can decide.

1. Objects handled by the robot

Only include those objects in the simulation that the robot will handle or it will otherwise affect the robot’s task. Also, you don’t need to include highly-detailed models of those objects unless it is necessary. If the robot will only be grasping an object, for example, you might be able to simplify the object’s shape to only include suitable grasp points.

2. Furniture and other environment objects

We often include a table in our robot simulations. This is not always technically necessary but it does help the programmer to visualize the surface that the robot will be placing objects on. But, a table is often all that you need to achieve this — there’s no need to create a highly accurate model of your specific workbench.

Robot Arc Welding

3. Sensors

The main purpose of including sensors into a simulation is for their functionality. You don’t usually need to have an accurate model of the sensor itself. For example, if you are using robot vision it might be acceptable to include just a simple camera object. You probably don’t need a fully-working, detailed model of your specific camera.

4. Decoration

If you wanted to, you could spend hours developing textures for all of the models in your simulation. You could even go and take photos of the real items in your workspace and then painstakingly map these photos to custom-built 3D models of the workspace. While this might be necessary if you were creating a 3D movie, it’s a waste of time in robot simulation.

5. Programming complexity

The more complex your program, the more time and effort it will take to program, debug, and deploy to the robot. This complexity could show up in various ways including using extra libraries, adding many subroutines, and using more advanced features. As with everything else, only use the functionality that is absolutely necessary to get the job done right.

6. Multiple robots

If you are using multiple robots in your workspace, it might be necessary to include them all in the same simulation but it might not. If the robots will be interacting with each other then, yes, it does make sense to program them in the same simulation. However, if they will never interact with each other and their workspaces don’t interact, it might be simpler to simulate them separately.

Collaborative robots and a conveyor

7. Other machines

Similarly, it only makes sense to simulate those machines that the robot will be interacting with. If you are using the robot to tend a CNC machine then you might want to simulate that CNC machine — or approximate it as much as you need to program the robot — but you don’t need to simulate every machine in the workshop.

A Quick Tip to Avoid Simulation Overcomplexity

The key to creating a simulation that is not overly complex is to always think about what is actually necessary for achieving the task.

Each time you add something to your robot project, quickly ask yourself:

Does this really need to be here to achieve the functionality I need?

If not, it might not be necessary for your simulation.

Which item was probably not be needed in your last robot simulation? Tell us in the comments below or join the discussion on LinkedIn, Twitter, Facebook, Instagram, or in the RoboDK Forum.

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

Leave a Reply

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