Antoine,

Chrono is unit-independent, so you should model using whatever units make more 
sense for your problem. What is important is to ensure consistency which means 
that you need to look for all possible parameters that have dimensions (even 
when not explicitly stated, such as the sphere swept radius for a collision 
mesh that you mentioned, the margins and envelopes in collision detection, 
etc.) and modify them accordingly.

>From what you describe, your object models are in mm. From that, I assume they 
>are relatively small which would suggest working at that scale throughout.  
>Indeed, if you have very small objects (say you are modeling a mechanical 
>watch) working in meters would require working with very small numbers which 
>can lead to representation and approximation issues.

One last comment: you say that your models are in millimeters and that you have 
everything else set up in meters. From the code snippet you provide, it appears 
that you decided to modify the meshes.  In that case, shouldn’t you use a 
scaling “MM_to_M”, that is 1e-3?

--Radu


From: 'Antoine Laborde' via ProjectChrono <[email protected]>
Sent: Friday, January 30, 2026 5:48 PM
To: ProjectChrono <[email protected]>
Subject: [chrono] Collision detection at different scales

Hi!

I work since a few weeks on a rigid body simulation with 3 active bodies. I 
used the convex decomposition algorithm for two of the active bodies to get 
better collision detection and the results are pretty good.

But I realized that I work since the start at the wrong scale. My objects are 
in reality in mm but I work in meters since the start.

So I implemented the down-scaling of the bodies before creating the collision 
shape like this:

"""
auto trimesh = ChTriangleMeshConnected::CreateFromWavefrontFile(obj_filename, 
true, false);

trimesh->Transform(ChVector3d(0, 0, 0),  ChMatrix33<>(M_TO_MM));
"""

And a similar approach for the bodies that are decomposed in convex shapes.

The problem is that when down-scaling, the collision detections from one 
timestep to the other are fluctuating a lot, the collision detection seems 
unstable. This appears already when I downscale of a factor of 10.
I also noticed that the active bodies seems to be more reactive than before at 
collisions, like if they were bouncing more than before.

I played on the following parameters to fix the problem (with no good output):
- the mass of the bodies (I used extremely high and low values to see what 
would happen but the unstability was still there)
- the sphere swept radius when creating the collision shape
- the enveloppe and the margin of the BULLET collision detection algorithm
- I downscaled too the force and torque of my motors and my spring elements

I could not find a logic when tunig those parameters and I got a bit lost. So 
my question are, am I on the good path ? Are there parameters that I missed ? 
Do you have any idea why the collision detection would fail after downscaling ?

Thanks in advance for your help!
Best,
Antoine
--
You received this message because you are subscribed to the Google Groups 
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
To view this discussion visit 
https://groups.google.com/d/msgid/projectchrono/43398551-33eb-485c-93ee-803165667631n%40googlegroups.com<https://urldefense.com/v3/__https:/groups.google.com/d/msgid/projectchrono/43398551-33eb-485c-93ee-803165667631n*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!L3wrNupPyj2VkPYcuXIlRO9PYmLZxLXR2WvAzr04JTPLGQrp0M9Br4e9FcEI7-Vt5TkeyXiJGVr63evd-p3Kw2ZaKs4$>.

-- 
You received this message because you are subscribed to the Google Groups 
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/projectchrono/CH3PPF46CDC2185E07DD90E0C1B31E328A5A798A%40CH3PPF46CDC2185.namprd06.prod.outlook.com.

Reply via email to