Hello everyone,
I am using a ZED2i camera for odometry on my mobile robot, running with zed_wrapper and ZED SDK 5.0. I am intentionally staying on SDK 5.0 because I get faster depth and RGB streams compared to newer versions, which is important for my application.
Robot specifications
-
Mobile robot dimensions: 28 in × 32 in × 18 in (L × W × H)
-
Camera mounting: ZED2i rigidly mounted on the robot frame at the front
-
URDF: I have changed urdf for my sepiciation and changed the BaselinkID as baselink.
-
Odometry source: ZED visual odometry
-
SLAM: RTAB-Map
What works well
-
In indoor / closed environments, the ZED visual odometry performs very well.
-
Typical drift is around 30–50 cm, which is acceptable.
-
RTAB-Map mapping remains fairly stable indoors.
The problem
When operating in a large open or outdoor environment, I observe:
-
Large and random odometry drift of approximately 1.5–2 meters
-
Drift direction is inconsistent
-
Due to this, RTAB-Map mapping also drifts significantly, and loop closures become unreliable or fail
My questions
-
Is this behavior mainly due to a lack of visual features in open environments?
-
Does ZED2i visual odometry rely heavily on near-field texture and parallax, making it less reliable in large open spaces?
-
Are there any specific ZED tracking, depth, or VO parameters that can reduce drift outdoors?
-
Using IMU Fusion but there is no significant change?
-
Is this a known limitation of stereo visual odometry without strong motion constraints, especially for outdoor use?
Setup summary
-
Camera: ZED2i
-
SDK: ZED SDK 5.0
-
ROS:
zed_wrapper -
Robot size: 28 in × 32 in × 18 in
-
SLAM: RTAB-Map
-
Environment: accurate indoors, unstable outdoors/open areas
Any insights, tuning suggestions, or best practices would be greatly appreciated, as this odometry drift is currently the main blocker for reliable mapping.
Thank you!