Cuvslam how to get current observations

The CUVSLAM_GetLastLeftObservations function cannot obtain CUVSLAM_ObservationVector type data and causes the node to crash.
How do I set the parameters or is this function not open to the public?

Hi @lmljll

Welcome to the Isaac ROS forum.

This functionality can only be used within a ROS node if the enable_observations_export flag is set to True in the cuvslam.h file, which is part of the initial cuvslam configuration. To enable this configuration and obtain the point cloud of observations through the ROS node, modify the parameters in the launch file for the isaac_ros_visual_slam node as follows:

  • Enable visualization by setting: 'enable_slam_visualization': True
  • Enable observation visualization specifically by setting: 'enable_observations_view': True
  • These settings will work whether SLAM is enabled or not: 'enable_localization_n_mapping'

Once configured, the observations will be published via the following topic: visual_slam/vis/observations_cloud

Best,
Raffaello

Thank you very much for your reply. I know from the ROS2 code that the observation point cloud data type comes from CUVSLAM_LandmarkInfo defined in cuvslam.h. I use the CUVSLAM_GetLastLeftObservations and CUVSLAM_GetLastLandmarks functions in cuvslam.h and cannot get the current feature point data (the corresponding data structures are CUVSLAM_Observation and CUVSLAM_Landmark). The CUVSLAM_LandmarkInfo structure contains a feature point weight information. How is it generated and how can I obtain the 2D feature point information?