Cargue un archivo STL que contenga una triangulación de contenedores rectangulares y luego visualice la triangulación de contenedores.
Cree una malla de colisión utilizando los puntos de la triangulación del contenedor y luego visualice la malla. Tenga en cuenta que, cuando se aproxima la triangulación del bin como una malla de colisión, el objeto collisionMesh
utiliza la envoltura convexa de la triangulación del bin para aproximarse al bin. Como resultado, la malla de colisión es convexa, a diferencia de la triangulación bin no convexa. El objeto collisionMesh
hace esto porque la verificación de colisiones es más eficiente con mallas convexas. Sin embargo, esta aproximación convexa no es ideal para contenedores porque los robots pueden manipular contenedores u objetos dentro de los contenedores.
Crea una lata de refresco usando un cilindro de colisión y establece la pose de modo que quede en el centro del contenedor. Luego, muéstralo en la malla de colisión convexa.
Configure la caja para que sea transparente para que pueda ver la superposición entre el contenedor y la lata de refresco.
Verifique la colisión entre la lata de refresco y la aproximación convexa del contenedor, y observe que están en colisión.
Para obtener una mejor aproximación del contenedor para la verificación de colisiones, descomponga la malla no convexa original en múltiples mallas convexas utilizando la descomposición convexa aproximada jerárquica voxelizada (V-HACD).
Utilice la función collisionVHACD
para descomponer la triangulación no convexa original en mallas de colisión convexas. Luego, muestra el contenedor descompuesto con la lata de refresco.
Comprobar colisión con todas las mallas que se aproximan al contenedor. Tenga en cuenta que la lata de refresco no choca con la aproximación no convexa descompuesta del contenedor. Si necesita una descomposición más precisa del bin, puede especificar opciones de solucionador personalizadas utilizando el objeto vhacdOptions
.
isCollidingAll = logical
0