How build and save map 3D reconstruction to use with nvblox nav2

How build and save map 3D reconstruction to use with nvblox nav2 ?

Hi @AMR_all

It’s pretty simple! There are services to load and save a map generated from nvblox ROS Topics and Services — isaac_ros_docs documentation

ROS Service Interface Description
~/save_ply nvblox_msgs/FilePath Will save the mesh as the PLY (standard polygon file format, which can be viewed with MeshLab or CloudCompare) at the specified location.
~/save_map nvblox_msgs/FilePath Will serialize the entire map, including TSDF, ESDF, etc., at the given location.
~/load_map nvblox_msgs/FilePath Will overwrite the current map in the node with a map loaded from the given path.

The commands to user are like below

ros2 service call /nvblox_node/save_ply nvblox_msgs/srv/FilePath "{file_path: '/home/USERNAME/super_cool_map.ply'}"
ros2 service call /nvblox_node/save_map nvblox_msgs/srv/FilePath "{file_path: '/home/USERNAME/super_cool_map.nvblx'}"
ros2 service call /nvblox_node/load_map nvblox_msgs/srv/FilePath "{file_path: '/home/USERNAME/super_cool_map.nvblx'}"

Best,
Raffaello

Hi @Raffaello
I have tried to save map and load it following above instructions.
what i do

  1. in first terminal , i run : ros2 launch nvblox_examples_bringup realsense_example.launch.py
    mode:=dynamic
  2. in second terminal and third terminal i do : ros2 service call /nvblox_node/save_ply nvblox_msgs/srv/FilePath “{file_path: '/workspaces/isaac_ros-dev/super_cool_map.ply}”

ros2 service call /nvblox_node/save_map nvblox_msgs/srv/FilePath “{file_path: ‘/workspaces/isaac_ros-dev/super_cool_map.nvblx’}”

But i get error as in terminal
admin@orinnano-desktop:/workspaces/isaac_ros-dev$ ros2 service call /nvblox_node/save_ply nvblox_msgs/srv/FilePath “{file_path: ‘/workspaces/isaac_ros-dev/super_cool_map.ply’}”
waiting for service to become available…
requester: making request: nvblox_msgs.srv.FilePath_Request(file_path=‘/workspaces/isaac_ros-dev/super_cool_map.ply’)

and

admin@orinnano-desktop:/workspaces/isaac_ros-dev$ ros2 service call /nvblox_node/save_map nvblox_msgs/srv/FilePath “{file_path: ‘/workspaces/isaac_ros-dev/super_cool_map.nvblx’}”

requester: making request: nvblox_msgs.srv.FilePath_Request(file_path=‘/workspaces/isaac_ros-dev/super_cool_map.nvblx’)

i have wait more than 10 min to complete this but, it was as it is. map duration was 5-10 seconds.

Please help me how to overcome this problem. I am stuck in this for 4 days. Thank you in advance.

Best,
Amar

1 Like

I am having similar issues. Has this been resolved yet?

@Raffaello

Hi @calebr2310

I forward your issue to the engineering, I keep you posted

Hi @calebr2310, can you please verify that your node is running correctly? If you can, please share the rosgraph, which may help.

Thank you in advance,
Raffaello

Hi @Raffaello ,
Sorry to say it doesn’t work in my case.

To build and save a 3D reconstruction map for use with nvblox nav2, you need to set up Isaac ROS with the isaac-ros-vslam and isaac-ros-nvblox packages, which enable SLAM and 3D mapping integration. Capture sensor data using compatible cameras or LiDAR, process the data through nvblox to generate the map, and save the output in formats like .pcd or .bin. After saving the map, you can load it into nav2 for navigation purposes.

Hi @atmosphereswitchh ,
Thank you for your answer . the problem is i have followed the official guides and resources for nvblox, i setup both ros vslam and isaac ros nvblox i can make map but when i save map, it doesnt save , the terminal halt . Can you give me the command through which you can save map and load map in jetson orin with jetpack 6.
Thank you in advance

1 Like

Hi @amarnath.m

The commands are the same ROS Topics and Services — isaac_ros_docs documentation

ROS Service Interface Description
~/save_ply nvblox_msgs/FilePath Will save the mesh as the PLY (standard polygon file format, which can be viewed with MeshLab or CloudCompare) at the specified location.
~/save_map nvblox_msgs/FilePath Will serialize the entire map, including TSDF, ESDF, etc., at the given location.
~/load_map nvblox_msgs/FilePath Will overwrite the current map in the node with a map loaded from the given path.

If you are working with Jetpack 6, you can follow the documentation related to Isaac ROS 3.1: Isaac ROS Nvblox — isaac_ros_docs documentation

You can always switch on the documentation from the version button:

Best,
Raffaello