Skip to content

NVblox fails to load map in dynamic mode #150

@ScheglyakStas

Description

@ScheglyakStas

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
  1. When trying to load the map (using the load_map service), it tries to find the freespace voxel layer, which was not saved (as mentioned above), 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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions