I am using a ZED 2i camera with ZED SDK 5.1 and ROS 2 on a Jetson AGX Orin. I am observing the /zed/odom topic and occasionally see failures where the odometry runs correctly for some time, then suddenly starts outputting a position of (0, 0, 0) and an orientation quaternion of (0, 0, 0, 1).
There are no warnings or error messages when this occurs, and I haven’t been able to identify any external or environmental trigger. I have attempted to reset the odometry using /zed/reset_odometry/request, but this does not resolve the issue. Restarting the SDK is the only way I’ve found to recover normal behavior.
Do you have any advice on how to avoid or fix this behavior?
From the information, I’m gathering, it seems the parameter reset_odom_with_loop_closure is activated within your ROS2 wrapper parameter configuration. This triggers the behavior to automatically reset the odometry whenever a loop closure is detected. Setting it to false should prevent this behavior.
Thank you for the response! I already have the reset_odom_with_loop_closure parameter set to False in my ROS2 wrapper. I think there is a different issue, because when the odometry gets reset to zero, it stays at exactly zero in each message even when the camera continues moving.
Thanks for your feedback. Are you able to share with me your current SDK version and exact Yaml file configuration you’re using for ROS wrapper ? Odometry should not remain at zero when the camera continues moving indeed.
The configuration you’ve provided does not appear to come from our official ROS2 wrapper. Unfortunately, I’m unable to provide direct support for a custom wrapper, since I don’t have visibility on how it is using our SDK and different services it enables.
To help us better support you, would it be possible for you to use our official ROS2 wrapper and see if that solves your issue ? The wrapper can be found on here: https://github.com/stereolabs/zed-ros2-wrapper.