Isaac ROS VSLAM and Nvblox - how to change internal parameters

Hello,

I am using the Isaac ROS Visual SLAM and Isaac ROS Nvblox repositories for a project where each package requires different parameters, and the goal is to configure everything using only terminal commands. However, I have had to add and modify scripts because it seems there’s no way to pass some parameters directly from the terminal when using ros2 launch.

For instance, I can run Isaac ROS VSLAM using only odometry with the command:

ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_realsense.launch.py enable_localization_n_mapping:=False

On the other hand, to preserve the mesh created by Isaac ROS Nvblox, I need to modify the parameter decay_tsdf_rate_hz = 0 in the nvblox_base.yaml file. Since the objective is to rely solely on terminal commands, I had to create a new nvblox_base.yaml file called nvblox_base_3D.yaml and corresponding launch files like nvblox_3D.launch.py and realsense_3D.launch.py based on existing examples.

I did this because I couldn’t find an argument to change this parameter directly from the terminal. Maybe that’s the reason I cannot use Nav2 with realsense?

Is there a simpler way to handle this, or is this approach correct?

Thanks!

Hi @jim.fabian

I’m happy to read your messages and your tests.
Yes, you are right looks not simple to modify the examples.

I suggest that instead of adding many arguments to the command, it’s better to rewrite a new launch file and add all parameters together. This way, it will be simpler to modify all parameters and add new configurations.

Hello @Raffaello, thanks for answering and the suggestion. In that case is it possible to call arguments from nvblox_base.yaml in the realsense_3D.launch.py?

You can load multiple yaml files in a ROS 2 node.

An example you can modify the roslaunch adding a second yaml file like this example: Universal_Robots_ROS2_Driver/ur_bringup/launch/ur_control.launch.py at ee29712804b0edcaf1a1693ed1bcb4c6ecd4c0cf · UniversalRobots/Universal_Robots_ROS2_Driver · GitHub

Reference: Can we pass multiple config files to a node in ROS2 - ROS Answers: Open Source Q&A Forum