Isaac ros visual slam node

I was trying to setup isaac ros visual slam node with my robot in isaac sim. I have given it the stereo camera topics and their camera info. But I am unable to figure out how to get the transformation from map to base_link or odom. Is there something I am missing. This is my launch file setup.

def generate_launch_description():
    """Launch Isaac ROS Visual SLAM node (composable version)."""

    vslam_node = ComposableNode(
        name='visual_slam_node',
        package='isaac_ros_visual_slam',
        plugin='nvidia::isaac_ros::visual_slam::VisualSlamNode',
        remappings=[
            ('/visual_slam/image_0', '/airnaux/camera/left/image_raw'),
            ('/visual_slam/camera_info_0', '/airnaux/camera/left/camera_info'),
            ('/visual_slam/image_1', '/airnaux/camera/right/image_raw'),
            ('/visual_slam/camera_info_1', '/airnaux/camera/right/camera_info'),
        ],
        parameters=[{
            'use_sim_time': True,
            'enable_image_denoising': True,
            'rectified_images': True,
            'enable_slam_visualization': True,
            'enable_observations_view': True,
            'enable_landmarks_view': True,
        }]
    )

    container = ComposableNodeContainer(
        name='vslam_container',
        namespace='',
        package='rclcpp_components',
        executable='component_container_mt',  # multi-threaded container recommended
        composable_node_descriptions=[vslam_node],
        output='screen',
    )

    return launch.LaunchDescription([container])

The robot publishes tf odom and imu values along with the strereo images.

Hello @haroonhidayath45,

Thanks for your post.

If you want to get the transformation from map to base_link or odom, you need to add below parameters to your isaac_ros_visual_slam node.
‘map_frame’: ‘map’, # Define the global fixed frame
‘odom_frame’: ‘odom’, # Define the local frame
‘base_frame’: ‘base_link’, # Define the robot’s base frame
You could reference vslam.launch.py for your implementation.

As for enabling the transform publishing to /tf, you need to set these parameters to tell the VSLAM node which transforms to broadcast on the /tf topic based on your need.
publish_tf: true
# [usually overwritten by launch file] publish `odom → base_link` TF
publish_map_tf: true
# [usually overwritten by launch file] publish `map → odom` TF

Reference file: zed_common.yaml

Also I want to pair this up with nvblox so that I can start mapping the environment. I will be using vo_pose from visual slam as the pose input for nvblox.

I have remapped the camera topics to that my robot uses and have passed the vo pose to nvblox. Is there anything else that I need to setup to get it working ?