URL_3

재택근무

Blender로 gazebo 월드 파일 제작

문제점 1

기존 송전탑과 월드 파일은 mesh와 텍스쳐만 있어서 slam이 잘 이루어지지 않음

목표: 송전탑 주변과 유사한 환경을 구사할 것

해결법

Blender에 particle system과 particle instance를 이용하여 쉽게 표면이나 vertex에 물체를 배치할 수 있음 따라서 기존 hill 모델의 COLLADA 파일을 import 하고 다른 물체들을 추가해줌.

  1. 붙여질 Object에서는 Modifier Properties > Add Modifier > Particle System 하여 추가해주고, Particle Properties에서는 원하는 갯수를 설정하고 Vertices나 Faces를 고른다.
  2. Render > Render As “Object” > Object > Instance Object 하고 내가 넣을 물체 설정.
  3. 붙일 Object에서 Modifier Properties > Add Modifier > Particle Instances > Object > “붙여질 Object” 하면 형성된다.

이때, 주의점은 scale이나 location, rotation이 모두 0에 맞춰져 있어야 particle들에 딱 들어맞게 설정된다.

만약, Import한 물체에 값이 설정되어 있다면 Object Mode에서 A를 눌러 바꿔주어야 하는 값을 눌러줌. 이후 변경을 해주되, Orientation을 Local로 두고 변경해주면 Global 좌표계에서는 반대로 적용됨.

예를 들어, 기존 모델이 90도로 돌아가져 있었고 이것이 정방향이라면 local 좌표계를 -90도로 돌려줌. 그러면, 기존 모델의 global rotation은 여전히 90도로 적용되어 있으나 처음에 비하면 180도 돌아가 있음. 이를 0으로 맞춰주면, 원하는 정방향이되 rotation 값은 0으로 맞춰줄 수 있음.

scale도 마찬가지. 즉, local로 설정하여 값을 건드리면 global의 값은 여전히 유지되나 local이 변한 상대적인 위치로 모델은 바뀜.

문제점 2

넣은 모델의 용량이 너무 커서 5GB였고, 가제보에서 열리지 않음

chatGPT에게 물어서 mesh compression 쪽으로 알아봄

To reduce the file size of the exported COLLADA file from Blender, you can try the following techniques:

1. Decimate Geometry: Select the combined mesh object and go to the "Modifiers" tab in the Properties panel. Add a "Decimate" modifier and adjust the "Ratio" value to reduce the number of vertices in the mesh. This will simplify the geometry and help reduce the file size. Keep in mind that reducing the ratio too much may result in a loss of detail.

2. Remove Unnecessary Geometry: Inspect your mesh and identify if there are any parts that are not visible or contribute to the overall appearance. If so, delete or hide those unnecessary parts of the mesh before exporting. This will reduce the vertex count and file size.

3. Texture Optimization: Check if your mesh has textures applied to it. Large texture files can significantly increase the file size. Optimize your textures by reducing their resolution or compressing them using image editing software or dedicated texture compression tools. Be sure to balance the reduction in texture quality with the desired file size reduction.

4. LOD (Level of Detail) Models: If your scene has objects that are far away from the camera or are less visible, you can create separate, simplified versions of those objects with reduced vertex count. Use the LOD feature in Blender to switch to these simplified models at a distance. This technique can help reduce the file size, especially for large scenes.

5. Mesh Compression: When exporting, check if your COLLADA exporter has an option to enable mesh compression. Enabling compression can significantly reduce the file size without losing much detail. Keep in mind that not all exporters support mesh compression, so you may need to try different export options or plugins.

6. Remove Unused Data: Before exporting, make sure you remove any unused materials, textures, or objects from your scene. This can be done by reviewing your Outliner or using the "Clean Up" tools in Blender. Removing unused data will help reduce the file size.

By applying these techniques, you should be able to reduce the file size of your exported COLLADA file while still preserving the essential details of your mesh.

현재 5번 방법은 옵션에 없었고, 1번인 Decimate를 활용함. vertices가 너무 많아서 연산이 많이 걸렸고, 이 과정에서 시간이 많이 소요되었음.

Decimate는 vertex 갯수를 줄여주며 마찬가지로 Add Modifiers에서 추가하여 사용한다.

보통 설정은 Collapse나 Unsubdivide를 사용한다. 자세한 내용은 공식문서 참고.

모델을 미리 compression 시키고 이후 particle system으로 배치하여도 여전히 3GB여서, 용량이 많이 차지하는 모델을 제거함.

이렇게 Gazebo에서 로드하는 것이 성공하였음.

문제점 3

나무에 texture가 입혀지지 않았음

gazebo에서는 COLLADA(.dae)형식 파일을 사용하여 texture가 자동으로 들어가 있지 않음.

이를 입히기 위해서는 UV Mapping을 사용한다.

위처럼 Edit Mode에서 원하는 vertex들을 골라주고, [V] > [Unwrap] 을 눌러서 적용.

이를 위해서는 Color에 Image Texture가 적용되어야 있어야 한다.

[참고링크] - 1 2