How to Convert .nvblox Map to an Occupancy Grid Map (.yaml) for use in Navigation?

🧭 [Question] How to Convert .nvblox Map to an Occupancy Grid Map (.yaml or other format) for use in Navigation?

Hi everyone,

I’m using Isaac ROS Perceptor and trying to load a prebuilt global map during navigation. Here’s my setup and where I’m stuck:


πŸ”§ 1. Global Mapping Phase

I create the global map using this config:
πŸ”— nvblox_global_mapping.yaml

It contains:

decay_tsdf_rate_hz: 0.0

This way, the TSDF is not decayed, and the full global map is preserved. I save it using:

nvblox_after_shutdown_map_save_path

This produces a .nvblox map file.

πŸ‘‰ I can reload this map and navigate inside it without any problems, but since there is no decay, the computational load becomes quite high during long sessions or in large environments.

This is the map I use, I assume it is StaticMapSlice


πŸš— 2. Navigation Phase

Then I run navigation using:
πŸ”— nvblox_perceptor.yaml

This has:

decay_tsdf_rate_hz: 1.0

Which causes the global map to decay and effectively disappear over time, breaking localization and mapping continuity.


πŸ“ 3. Mapping and Localization Workflow

I followed this tutorial:
πŸ”— Mapping and Localization Tutorial
Does this script create a .yaml occupancy map with cameras?
isaac_perceptor/isaac_ros_perceptor_bringup/scripts/create_map.py at main Β· NVIDIA-ISAAC-ROS/isaac_perceptor
There, I saw a global occupancy map visualized in RViz, like this:


❓ My Problem

In perceptor repository shows that global occupancy map is loaded differently and uses:
πŸ”— occupancy_map_server.launch.py

But this launch file expects a .yaml map input β€” and I only have the .nvblox map saved during the global mapping phase.


πŸ’¬ Question

How can I convert a .nvblox map into a format (like .yaml, or otherwise) that is compatible with occupancy_map_server.launch.py and usable for global navigation?

Is there any existing method to extract or export a 2D occupancy grid from the .nvblox file, or a tool that bridges this gap?

Thanks a lot for your help πŸ™

1 Like

Okay I found it:

you can actually just give the:
after_shutdown_map_save_path: β€œβ€

it automatically saves the png and yaml there. if somebody also would have the confusion.

There is: isaac_ros_nvblox/nvblox_ros/src/lib/conversions/occupancy_conversions.cpp at main Β· NVIDIA-ISAAC-ROS/isaac_ros_nvblox

Actually if the documentation in parameters part could be updated by adding .yaml and .png, it would be much better. I thought initially that parameter was the directory to save .nvblox map automatically.

Cheers!

1 Like

Hi @sakalbatuhan1

Happy to read that you fixed the issue. Feel free to open a new topic if you encounter bugs or need clarification.

Best,
Raffaello

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.