NVblox fails to load map in dynamic mode

I’m using NVblox in ROS Humble for robot navigation. When setting it to dynamic mode, there are several issues with saving and loading the map:

  1. Mesh and freespace voxel layers are not serialized and saved by the save_map service. Calling the service produces the errors listed below (in addition to the normal output):

    [nvblox_node-1] E0901 12:54:48.250876 550 serializer.cpp:126] Unrecognized layer type, can’t serialize: N6nvblox10BlockLayerINS_9MeshBlockEEE
    [nvblox_node-1] E0901 12:54:48.314859 550 serializer.cpp:126] Unrecognized layer type, can’t serialize: N6nvblox15VoxelBlockLayerINS_14FreespaceVoxelEEE

  2. When trying to load the map (using the load_map service), it tries to find the freespace voxel layer, which was not saved (see #1), and fails, killing the NVblox node. Here is the load_map output:

    [nvblox_node-1] W0908 16:19:58.914960 552 layer_cake_impl.h:86] Request for a LayerType: N6nvblox15VoxelBlockLayerINS_14FreespaceVoxelEEE which is not in the cake.
    [nvblox_node-1] F0908 16:19:58.916170 552 layer_cake_impl.h:110] Check failed: ‘ptr’ Must be non NULL
    [nvblox_node-1] *** Check failure stack trace: ***
    [nvblox_node-1] @ 0x7ed0b516cb03 google::LogMessage::Fail()
    [nvblox_node-1] @ 0x7ed0b51749d1 google::LogMessage::SendToLog()
    [nvblox_node-1] @ 0x7ed0b516c7c2 google::LogMessage::Flush()
    [nvblox_node-1] @ 0x7ed0b516e78f google::LogMessageFatal::~LogMessageFatal()
    [nvblox_node-1] @ 0x7ed09f7324b6 nvblox::LayerCake::get<>()
    [nvblox_node-1] @ 0x7ed09f722322 nvblox::Mapper::updateEsdfSlice()
    [nvblox_node-1] @ 0x7ed09f74b3eb nvblox::MultiMapper::updateEsdfOfMapper()
    [nvblox_node-1] @ 0x7ed09f74b970 nvblox::MultiMapper::updateEsdf()
    [nvblox_node-1] @ 0x7ed0b2cbc3c4 nvblox::NvbloxNode::processEsdf()
    [nvblox_node-1] @ 0x7ed0b2cafa47 nvblox::NvbloxNode::tick()
    [nvblox_node-1] @ 0x7ed0b2cc1176 rclcpp::GenericTimer<>::execute_callback()
    [nvblox_node-1] @ 0x7ed09f4f0301 rclcpp::Executor::execute_any_executable()
    [nvblox_node-1] @ 0x7ed09f4f76ea rclcpp::executors::MultiThreadedExecutor::run()
    [nvblox_node-1] @ 0x7ed09eeb0253 (unknown)
    [nvblox_node-1] @ 0x7ed09ec3fac3 (unknown)
    [nvblox_node-1] @ 0x7ed09ecd1850 (unknown)
    dev@STAS-NOTEBOOK:/workspace$ [ERROR] [nvblox_node-1]: process has died [pid 65, exit code -6, cmd ‘/workspace/install/nvblox_ros/lib/nvblox_ros/nvblox_node --ros-args -r __node:=nvblox_node -r __ns:=/spectra --params-file /workspace/install/aivot_robot_spectra/share/aivot_robot_spectra/config/nvblox_base.yaml --params-file /tmp/launch_params_qjtd3s4c --params-file /tmp/launch_params_erep3gss --params-file /tmp/launch_params_efwcxr8c -r /tf:=tf -r /tf_static:=tf_static -r camera_0/depth/image:=camnav/depth/depth_registered -r camera_0/depth/camera_info:=camnav/zed/depth/camera_info -r camera_0/color/image:=camnav/left/image_rect_color -r camera_0/color/camera_info:=camnav/left/camera_info -r /tf:=tf -r /tf_static:=tf_static’].

How can I fix this?

Hi @Robotmaker2005,

Thank you for your post.

This issue should have been fixed in February as part of a minor update for Isaac ROS 3.2. Are you using an earlier version? Which demo are you using to reproduce the error?

Best,
Ahung

My NVblox version is 3.2.5.
I’m using a custom setup, not a demo. Here’s my NVblox config (contents of the nvblox_base.yaml):

nvblox_base.txt (4.5 KB)

Hi @Robotmaker2005

Thank you for the info.
I can reproduce the error at my end. Let me forward this issue to our engineers.

Best,
Ahung

1 Like

Hi @Robotmaker2005,

I’d like to update you that the fix has been released. Please pull the latest 3.2 release of isaac_ros_nvblox and give it a try.

Best,
Ahung

1 Like

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