How to create custom environment and load in Issac sim

Hello,

I want to know if we can create a custom environment and load in issac sim?

So far I created the mesh file of a parking environment. I used my dji drone to map the area and created the .obj and the .mtl file I was trying to use this file and convert into usd so that I can use my custom environment for robot simulation.

Here is the files-
Map1_3DModel_ThuJul18125327996364.zip (53.6 MB)

I followed the below step to load into Issac sim
Content → Import → loaded .obj file
Then it converted into usd file and this is how it looks like
Screenshot from 2024-07-19 15-07-41

I want it to look like a real one.

Please tell me how can i make it happen.

Thanks

What’s worked for me is to obtain/design the environment in some external program, e.g. UE5. Then I export it to USD and import the USD into Isaac Sim.
You can also use Omniverse USD Composer to put scenes together.
For your scenario specifically, you have to texture your mesh somehow.

1 Like

ok, thanks. I will give a try to both UE5 and USD composer.

1 Like

you need to have a texture file that you can overlay on your obj mesh. blender supports exporting wavefront objects that provides you with obj and texture files seperately. you can then converet obj to usd with added texture in omniverse and export it as usd file.

1 Like

Here you go. I just converted it to USD for you. You already had the model. You just needed to create a basic MDL material and add your material to its color. Dropbox

Hey, thanks for the answer.
I did the same and also now I can use the model in Issac sim, the only problem is the texture, it doesn’t apply to all the places correctly.

The parking space is very flat but when I load the .usdc file generated from blender, Issac sim some how doesn’t apply the texture correctly to some places so now some areas are bouncy.



That’s how I loaded the model in Issac sim -

  1. Imported the .obj folder which also contain the material and the textures in blender 4.2
  2. Removed some objects and flatten the roads in the map.
  3. Exported the map with texture enabled in .usdz format.
  4. open the .usdz file in Issac sim.

By this way, I was able to load the model in Issac sim with correct scaling. How can i fix the texture? How can i make the surface as in reality?

Thanks, I will try that and let you know.

This has to do with texture remapping since you modified the mesh but texture file is original one.

In order to fix the texture in Blender, you can follow one of many guides available online.

  1. activate a vertex attribute
  2. in render properties, select Cycles. Select Bake > diffuse. Deselect direct and indirect, and select active color attribute. Click Bake to send the existing texture into the vertex attributes.
  3. Create a new material, and a new image. Assign the new material to the mesh. Edit the nodes to add an Attribute node with the name of the color attribute as it’s input. Add the node for the new image to the graph (it does not need to be connected).
  4. Create a new UV map and set it as active. In UV editor, Select all vertices, click UV > Project from view (Bounds).
  5. Go back to Bake, set Target to Image Textures and click bake.

What a great job! I also want to create an environment and load it into Isaac Lab to train the robot’s strategy. Can you tell me how to do it? Have you used any tools or software to create this environment?

I used my DJI drone to map the area and then processed the images using DroneDeploy to generate a 3D mesh. DroneDeploy provides multiple output formats for the mesh, and I selected .obj, which included the mesh along with the materials and texture files.

Next, I imported the .obj file into Blender 4.2 to make the necessary modifications. When exporting the final mesh, it’s important to choose the .usd format and ensure that textures are included. By default, Blender 4.2 offers .usdz or .usdc formats, but you can manually select .usd. After exporting, Blender generates a .usd file for the mesh along with a folder containing the textures.

To bring the mesh into Isaac Sim, simply open the .usd file. You might need to adjust the lighting, but this workflow should function correctly—it worked in my case.

Key Considerations:

  1. Drone Setup:
  • Ensure the drone has GPS enabled when capturing images.
  • Use a high-quality drone for better results. I used a DJI Mini SE and manually created the grid for mapping.
  1. Blender Workflow:
  • Adjust the mesh as needed before exporting.
  • Set “/world” as the Root Prim when exporting.
  • Choose .usd as the file format and ensure textures are selected.
  1. Isaac Sim Configuration:
  • Set the physics properties for the mesh, especially the collider presets, to ensure proper interaction with the environment.

By following these steps, you should be able to successfully create, edit, and import a 3D mesh from drone images into Isaac Sim. 🚀

1 Like