Chargez un fichier STL contenant une triangulation de bacs rectangulaires, puis visualisez la triangulation de bacs.
Créez un maillage de collision en utilisant les points de la triangulation du bac, puis visualisez le maillage. Notez que, lorsque vous approximez la triangulation de casiers comme un maillage de collision, l'objet collisionMesh utilise l'enveloppe convexe de la triangulation de casiers pour approximer le casier. En conséquence, le maillage de collision est convexe, contrairement à la triangulation non convexe. L'objet collisionMesh fait cela car la vérification des collisions est plus efficace avec des maillages convexes. Cependant, cette approximation convexe n’est pas idéale pour les bacs car les robots peuvent manipuler des bacs ou des objets à l’intérieur des bacs.
Créez une canette de soda à l'aide d'un cylindre de collision et définissez la pose de telle sorte qu'elle repose au centre de la poubelle. Ensuite, montrez-le dans le maillage de collision convexe.
Réglez la boîte pour qu'elle soit transparente afin que vous puissiez voir le chevauchement entre le bac et la canette de soda.
Vérifiez la collision entre la canette de soda et l'approximation convexe du bac, et notez qu'ils sont en collision.
Pour obtenir une meilleure approximation du bac pour la vérification des collisions, décomposez le maillage non convexe d'origine en plusieurs maillages convexes à l'aide de la décomposition convexe approximative hiérarchique voxelisée (V-HACD).
Utilisez la fonction collisionVHACD pour décomposer la triangulation non convexe d'origine en maillages de collision convexes. Ensuite, montrez le bac décomposé avec la canette de soda.
Vérifiez la collision avec tous les maillages qui se rapprochent du bac. A noter que la canette de soda n'est pas en collision avec l'approximation décomposée non convexe du bac. Si vous avez besoin d'une décomposition plus précise du bac, vous pouvez spécifier des options de solveur personnalisées à l'aide de l'objet vhacdOptions .
isCollidingAll = logical
0