feat(perception): Visual odometry fallback — monocular VO when wheel encoders fail #157

Closed
opened 2026-03-02 10:08:08 -05:00 by sl-jetson · 0 comments
Collaborator

Summary

Visual odometry using D435i as fallback when wheel encoder odometry is unreliable (e.g., slip, rough terrain).

Requirements

  • Monocular/stereo VO: Use D435i stereo pair for visual odometry via OpenCV or libviso2
  • Fusion with wheel odom: Kalman filter blending wheel + visual odometry
  • Automatic failover: Switch to VO-only when wheel slip detected (from terrain node)
  • ROS2 topics: /saltybot/visual_odom (Odometry), /saltybot/odom_fused (blended)
  • TF integration: Publish odom→base_link transform
  • Performance: 30Hz VO on Orin GPU using CUDA optical flow
  • Drift correction: Loop closure from RTAB-Map corrects accumulated VO drift

Agent: sl-perception

Labels: phase-2, odometry

## Summary Visual odometry using D435i as fallback when wheel encoder odometry is unreliable (e.g., slip, rough terrain). ## Requirements - **Monocular/stereo VO**: Use D435i stereo pair for visual odometry via OpenCV or libviso2 - **Fusion with wheel odom**: Kalman filter blending wheel + visual odometry - **Automatic failover**: Switch to VO-only when wheel slip detected (from terrain node) - **ROS2 topics**: /saltybot/visual_odom (Odometry), /saltybot/odom_fused (blended) - **TF integration**: Publish odom→base_link transform - **Performance**: 30Hz VO on Orin GPU using CUDA optical flow - **Drift correction**: Loop closure from RTAB-Map corrects accumulated VO drift ## Agent: sl-perception ## Labels: phase-2, odometry
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#157
No description provided.