I noticed there was a similar thread one year ago, but the offered optimizations are not sufficient in my case.
For a project we need to simulate a palletizing robot. This means, we take packets and place them on a palette. According to this, we have a lot of collision bodies and can´t remove them after placement, because we want to see them interacting on top of the palette.
The problem is, we have a very powerful computer to work with and it´s not enough. The processor is an Intel Xeon e3 1275 v5 with 4 cores at 3,6ghz and turbo boost.
With this and simulation step time at 3msec we are able to place 2 layers of 20 packets on the palette.
A higher step time leads to increasing strange behaviours, as described in my other thread.
While doing some research we found out, thatit seems like MCD just uses processor power to do its calculations. I read about MCD is using the bullet physics engine, but apparently an old one. I found videos on youtube about this engine simulating 110000 bodies colliding with each other by using the power of a graphics card.
Are there any hidden optimizations to realize lots of colliding bodies without delay in realtime simulation?
Is it possible to use graphics power for calculations, maybe by replacing some parts of the bullet engine with the actual version?
If this is not possible, are there plans on updating the engine in MCD in the near future?
Thank you very much,
I can only give some tipps from my experience:
1) Simulation Time / Tolerance -> this will increase performance, but decrease stability (As far as I know the physicsengine doesn't "prevent" collisions, but waits for a penetration of the collision bodys and then calculates a counterforce? So when the collision bodys have more time to penetrate, the counterforce will be higher resulting in a more extreme behavior (at least thats what I think)
2) Collison body type -> Of course, if you can work with boxes instead of polygon-meshes, do so
3) Collision category -> theres an Excel in ...\NX\MECHATRONICS\ with a collision matrix to define which category collides with whom. Use these for each collision body (instead of default category 0)
all in all, those will help, but I would agree that simulating 110.000 bodys in "realtime" isn't posssible.
Thank you for your advices,
what you say about these forces while increasing the Simulation Time sounds reasonable. I already tried different settings and it shows that I can´t go higher than 3ms, after this the calculation is too unaccurate.
All collision bodies are now already boxes, but before there were also just a few forms more complex than boxes. So there aren´t great improvements.
The collision category is a nice advice, thank you! The Problem with this is, many of the collision bodies must be able to collide with each other, so there are also not so many improvement possibilities. But I´ll try.
I mean, if we search for realtime physics simulation on youtube, there are so much videos showing very much more bodies colliding inside game engines, and without delays at a nice framerate. The robot we try to simulate is not the most complex model and we already reach the borders... Is this just like it is, or does anybody know if there will be something done in this field?