Pose Jumping for VSLAM using Orbbec Camera

I’m running the Isaac ROS Visual Slam package version 3.2 on a Jetson Orin Nano with an orbbec stereo camera. It’s working correctly when run in isolation but when I run other nodes the pose jumps around as shown below (what I drove was a small square). None of the cores/gpu/memory were being maxed when I ran jtop.

May I ask which model of Orbbec camera you are using for your tests? I am also using the Genimi335L camera to test isaac_ros_visual_slam. The node starts without errors, but I can’t build the map properly. The map->odom->camera coordinate system keeps drifting. Could you share some experience and guidance? I encountered no errors during my tests, only a warning!

Hello @iancurd21,

Welcome to the Isaac ROS forum and thanks for your post!

Which other node are you running alongside Visual SLAM?
It’s possible there are conflicting TF publishers (such as map, odom, or base_link), for example, Nav2, AMCL, wheel-odom, another SLAM/localizer, or a simulation node. If multiple sources publish the same transform, the pose may “jump” even if Visual SLAM is functioning correctly.

You could check with the following command ros2 run tf2_tools view_frames

Or inspect TF in real time

ros2 run tf2_tools tf2_echo odom base_link
ros2 run tf2_tools tf2_echo map odom

If you see sudden discontinuities exactly when some other node runs, you’ve got a TF conflict.

I went over my tf publishers and there aren’t any conflicts that I can see.

The other nodes are perception nodes that handle camera bring up, drivers, ect. ground segmentation, can bus communication and a node that compares the vslam position to a ground truth one that i get from the can bus. Usually it works fine when I run everything except that comparison node but it doesn’t work or break every time for either. This node converts LLH to NED aligned with the VSLAM and then does a simple comparison.

I’m using the 335LE - I haven’t experienced any map building issues so I’m not sure quite how to help. What kind of drift are you experiencing?

I have described the problem I encountered in detail in this topic. Could you please take a look, or could you share your parameter settings? https:://forums.developer.nvidia.com/t/isaac-ros-visual-slam/351148/7

I did get it to start working again - I was running an LLH to NED conversion too many times per second which was messing it up. I can’t have the conversion more than every 5ish seconds though which seems wrong since I would think it could handle doing the math twice a second or so. Not sure if there’s any advice in that regard since getting a position update every 5 seconds isn’t very reasonable.

May I ask how you got it running? Is it just mapping topics, or do the camera parameters need to be calibrated manually? Could you share the parameter configuration? Also, have you solved the issue with coordinate system drift? I’ve encountered a similar problem and would like to ask for some guidance on how to solve it!

Hello,

As there haven’t been any recent updates on this discussion, we’ll be closing the thread to keep the forum organized.

If you continue to experience this issue or have new questions, please start a new topic and include a reference to this discussion for context. This will help our team and other community members assist you more effectively.

Thank you for your participation in the NVIDIA Isaac ROS community.