Issue on VSLAM with Isaac Sim

Hi all,

I’m having an issue with VSLAM node and ISAAC Sim integration. When I load the map in the following order Isaac Examples → ROS → Isaac Ros → Sample Scene and start the simulation as instructed, I see the following topic list:

/clock 
/cmd_vel 
/front_3d_lidar/point_cloud 
/front_stereo_camera/imu/data 
/front_stereo_camera/left_rgb/camerainfo 
/front_stereo_camera/left_rgb/image_raw 
/front_stereo_camera/right_rgb/camerainfo 
/front_stereo_camera/right_rgb/image_raw 
/left_stereo_camera/imu/data 
/odom 
/parameter_events 
/rear_stereo_camera/imu/data 
/right_stereo_camera/imu/data 
/rosout 
/tf 

However, when I start isaac_ros_visual_slam node and send signal to move the robot, even though the robot moves in the ISAAC Sim, it doesn’t display neither the movement or left/right images on the Rviz screen.


Then I loaded the same map from the newest version (omniverse://localhost/NVIDIA/Assets/Isaac/ 4.1/Isaac/Samples/ROS2/Scenario/carter_warehouse_apriltags_worker.usd), started the isaac_ros_visual_slam node again and I could see the left/right camera images this time. But again, there was no landmarks detected on the Rviz screen and signal to move the robot didn’t work.


I thought maybe it doesn’t move because of the Mac&Cheese box in front of it so I removed it from the simulation but it still doesn’t move after sending the signal. The topic list when I can get the images on Rviz looks like below:

/back_stereo_imu/imu 
/chassis/imu 
/chassis/odom 
/clicked_point 
/clock 
/cmd_vel 
/diagnostics 
/front_stereo_camera/left/camera_info 
/front_stereo_camera/left/image_rect_color 
/front_stereo_camera/left/image_rect_color/nitros 
/front_stereo_camera/right/camera_info 
/front_stereo_camera/right/image_rect_color 
/front_stereo_camera/right/image_rect_color/nitros 
/front_stereo_imu/imu 
/goal_pose 
/initialpose 
/left_stereo_imu/imu 
/parameter_events 
/right_stereo_imu/imu 
/rosout 
/tf
/tf_static 
/visual_slam/status 
/visual_slam/tracking/odometry 
/visual_slam/tracking/slam_path 
/visual_slam/tracking/vo_path 
/visual_slam/tracking/vo_pose 
/visual_slam/tracking/vo_pose_covariance 
/visual_slam/vis/gravity 
/visual_slam/vis/gravity_array 
/visual_slam/vis/landmarks_cloud 
/visual_slam/vis/localizer 
/visual_slam/vis/localizer_loop_closure_cloud 
/visual_slam/vis/localizer_map_cloud 
/visual_slam/vis/localizer_observations_cloud 
/visual_slam/vis/loop_closure_cloud 
/visual_slam/vis/observations_cloud 
/visual_slam/vis/pose_graph_edges 
/visual_slam/vis/pose_graph_edges2 
/visual_slam/vis/pose_graph_edges2_array 
/visual_slam/vis/pose_graph_edges_array 
/visual_slam/vis/pose_graph_nodes 
/visual_slam/vis/slam_odometry 
/visual_slam/vis/velocity 

I also checked the /visual_slam/tracking/odometry topic messages but it just hangs without printing any data. What would be the reason for this issue?

Hi @Raffaello, can I get help for this issue?

Hi @dsonmez

Like the post you previously opened Issue on ESS with Isaac Sim, it seems you are working with Isaac Sim 2023.1.1

Let me know if working with Isaac Sim 4.0.0 fixes your issue.

@Raffaello, I just tested but after playing the Sample Scene in Isaac Sim 4.0 and running the isaac_ros_visual_slam package from the container, it throws the following error and terminates the package:

xx@xx:/workspaces/isaac_ros-dev$ ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_isaac_sim.launch.py

[INFO] [launch]: All log files can be found below /home/admin/.ros/log/2024-08-01-20-34-39-582641-doruk-ws-391
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container-1]: process started with pid [401]
[component_container-1] [INFO] [1722533679.887738711] [visual_slam_launch_container]: Load Library: /opt/ros/humble/lib/libvisual_slam_node.so
[component_container-1] [INFO] [1722533679.964833207] [visual_slam_launch_container]: Found class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::visual_slam::VisualSlamNode>
[component_container-1] [INFO] [1722533679.964870287] [visual_slam_launch_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::visual_slam::VisualSlamNode>
[component_container-1] [INFO] [1722533679.969144818] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/std/libgxf_std.so
[component_container-1] [INFO] [1722533679.971314618] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_gxf_helpers.so
[component_container-1] [INFO] [1722533679.972921131] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_sight.so
[component_container-1] [INFO] [1722533679.974646733] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/libgxf_isaac_atlas.so
[component_container-1] 2024-08-01 20:34:39.980 WARN  external/com_nvidia_gxf/gxf/std/program.cpp@532: No GXF scheduler specified.
[component_container-1] [INFO] [1722533679.980328982] [NitrosContext]: [NitrosContext] Loading extension: gxf/lib/multimedia/libgxf_multimedia.so
[component_container-1] [INFO] [1722533679.986708939] [visual_slam_node.ManagedNitrosSubscriber]: Starting Managed Nitros Subscriber
[component_container-1] [INFO] [1722533679.987161434] [visual_slam_node.ManagedNitrosSubscriber]: Starting Managed Nitros Subscriber
[component_container-1] [INFO] [1722533679.997262071] [visual_slam_node]: cuVSLAM version: 12.2
[component_container-1] [INFO] [1722533680.066535287] [visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 0.069253
[component_container-1] [INFO] [1722533680.069411175] [visual_slam_node]: Initializing cuVSLAM.
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/visual_slam_node' in container '/visual_slam_launch_container'
[component_container-1] Warning: Invalid frame ID "base_link" passed to canTransform argument target_frame - frame does not exist
[component_container-1]          at line 93 in ./src/buffer_core.cpp
[component_container-1] Warning: Invalid frame ID "base_link" passed to canTransform argument target_frame - frame does not exist
[component_container-1]          at line 93 in ./src/buffer_core.cpp
[component_container-1] Warning: Invalid frame ID "base_link" passed to canTransform argument target_frame - frame does not exist
[component_container-1]          at line 93 in ./src/buffer_core.cpp
....
[component_container-1] Warning: Invalid frame ID "base_link" passed to canTransform argument target_frame - frame does not exist
[component_container-1]          at line 93 in ./src/buffer_core.cpp
[component_container-1] [ERROR] [1722533683.626731779] [visual_slam_node]: Transform is impossible. canTransform(base_link->front_stereo_camera_left_optical) returns false
[component_container-1] [INFO] [1722533687.406817458] [visual_slam_node]: Could not transform front_stereo_camera_left_optical to base_link: Lookup would require extrapolation into the past.  Requested time 10.416667 but the earliest data is at time 10.433334, when looking up transform from frame [front_stereo_camera_left_optical] to frame [base_link]
[component_container-1] terminate called after throwing an instance of 'std::runtime_error'
[component_container-1]   what():  Could not find the requested transform!
[ERROR] [component_container-1]: process has died [pid 401, exit code -6, cmd '/opt/ros/humble/lib/rclcpp_components/component_container --ros-args -r __node:=visual_slam_launch_container -r __ns:=/'].

I also tested the Quickstart related to the VSLAM, and it is working just fine.

@Raffaello I just come across to this topic: [visual_slam_node]: Transform is impossible. canTransform(base_link->front_stereo_camera_left_optical) returns false.

I checked and looks like it is the same bug:

$ ros2 topic echo /tf
transforms:
- header:
    stamp:
      sec: 16
      nanosec: 550000863
    frame_id: base_link
  child_frame_id: front_stereo_camera_right_optical
  transform:
    translation:
      x: 0.10030002146959305
      y: -0.07500199973583221
      z: 0.3459000587463379
    rotation:
      x: 0.5
      y: -0.5
      z: 0.4999999701976776
      w: -0.4999999701976776
- header:
    stamp:
      sec: 16
      nanosec: 550000863
    frame_id: base_link
  child_frame_id: front_stereo_camera_left_optical
  transform:
    translation:
      x: 0.10030008107423782
      y: 0.07499799877405167
      z: 0.3459000587463379
    rotation:
      x: 0.5
      y: -0.5
      z: 0.4999999701976776
      w: -0.4999999701976776
- header:
    stamp:
      sec: 16
      nanosec: 550000863
    frame_id: base_link
  child_frame_id: front_stereo_camera_imu
  transform:
    translation:
      x: 0.10030011832714081
      y: -0.019701998680830002
      z: 0.3519999384880066
    rotation:
      x: 1.8189894035458565e-12
      y: 0.7071067690849304
      z: -1.2212453270876722e-12
      w: 0.7071067094802856
- header:
    stamp:
      sec: 16
      nanosec: 550000863
    frame_id: base_link
  child_frame_id: left_stereo_camera_right_optical
  transform:
    translation:
      x: -0.28043001890182495
      y: 0.14999999105930328
      z: 0.3459000587463379
    rotation:
      x: 0.7071067094802856
      y: 0.0
      z: 4.876968967559847e-11
      w: -0.7071067690849304
- header:
    stamp:
      sec: 16
      nanosec: 550000863
    frame_id: base_link
  child_frame_id: left_stereo_camera_left_optical
  transform:
    translation:
      x: -0.4304300546646118
      y: 0.15000000596046448
      z: 0.3459000587463379
    rotation:
      x: 0.7071067094802856
      y: 0.0
      z: 4.876968967559847e-11
      w: -0.7071067690849304
- header:
    stamp:
      sec: 16
      nanosec: 550000863
    frame_id: base_link
  child_frame_id: left_stereo_camera_imu
  transform:
    translation:
      x: -0.3357299566268921
      y: 0.14999999105930328
      z: 0.3519999384880066
    rotation:
      x: -0.4999999701976776
      y: 0.5
      z: 0.5
      w: 0.4999999403953552

Thank you, @dsonmez, for your extra check.
This bug has already been reported. I will let you know when it will be fixed.

Thank you so much for confirming it @Raffaello!

1 Like

Can you please help me, I am having the same issue, i tried a lot to resolve it.
No map frame, and no visual landmark is coming on rviz