Collision over-simplification in RST
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Denizhan AKINCI
il 11 Giu 2024
Commentato: Denizhan AKINCI
il 12 Giu 2024
Hello,
I am working with MATLAB to visualize the collision meshes of a robot I've designed. When using the show(robot) function, I notice that the collision meshes appear less detailed, I guess, the idea is to optimize execution time and reduce CPU load.
Could you please provide information on the maximum number of triangles allowed per STL file for collision meshes? I aim to achieve a balance between having detailed collision meshes and maintaining computational efficiency.
How it's supposed to look like :
meshTri = stlread("concept_c-bras5_col.stl");
trisurf(meshTri)
axis equal
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1713511/image.png)
How it actually looks like :
rbt = importrobot("concept.urdf");
show(rbt,Collisions="on");
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1713516/image.png)
As you can see it's really ugly. Do you know how to improve the collision meshes make them more accurate ?
0 Commenti
Risposta accettata
Githin John
il 12 Giu 2024
Hello,
You are seeing this over-simplification because it makes use of the convex hull of the available mesh, as we need a convex mesh for the collision check.
You could make use of convex decomposition of your mesh to get a more represntative collision mesh.
robotCollisionDecomp = importrobot("concept.urdf",CollisionDecomposition=true);
Alternatively, you could use collisionVHACD to decompose just the required mesh.
meshTri = stlread("concept_c-bras5_col.stl");
decomposedMesh = collisionVHACD(meshTri);
showCollisionArray(decomposedMesh);
Then clear the approximated collision mesh from the rigidBody and replace with the decomposed one.
rbt.Bodies{indexOfBody}.clearCollision;
for i=1:numel(decomposedMesh)
rbt.Bodies{indexOfBody}.addCollision(decomposedMesh{i})
end
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Collision Detection in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!