I am running Isaac preceptor. I am trying to understand if loop closure has happened and I am properly localized. I do see a topic called /visual_slam/status with vo_state which appears to always be a value of “1”, I’d expect loop closure to be something that was achieved over time as cuvslam saw points that it recognized, is there a status that is updated somewhere that I can know definitely if loop closure has happened and I am fully localized?
I should note that I am running the devkit with no lidar, just the stock devkit on my robot base.
Hi @anthony.webb and welcome to the Isaac ROS forum.
Let me reply to your questions:
this topic indicates whether visual tracking worked successfully for a given stereo pair (but is not related to slam)
to observe the loop closure, you need to set the following parameters as True
of isac_ros_visual_slam in the launch file:
enable_slam_visualization
enable_localization_n_mapping
More details on the Isaac ROS vlsam parameters are available at this link: isaac_ros_visual_slam — isaac_ros_docs documentation
Then, through the topic /visual_slam/vis/loop_closure_cloud
, you can view a point cloud of visual features from the current image that were matched with features from the vslam map.
Let me know if you can see the output request.
Best,
Raffaello
I do see the red dots on the loop closure cloud, so perhaps all it is well.
Let me describe what I am trying to accomplish as a sanity check. When the robot starts up, I will manually drive it from its dock around my warehouse to various stations and grab the current pose to use as waypoints I can later return to as “goal poses” sent to nav2.
I assume that if the vslam does not have loop closure or has otherwise drifted when I collected a pose/waypoint then when I go to send them as a goal pose to nav2 I will not end up in the proper physical location?
For this reason I thought it would be wise/necessary to ensure that loop closure had occurred and the bot was fully localized BEFORE collecting a waypoint. It would make sense to me there there was a status that would give a simple boolean that the bot was confident it knew where it was. This flag could then give me the green light to go ahead and confidently grab the pose/waypoint.
Does this sound reasonable?