Project 2 - Phase 2: Stereo Visual Odometry
Published:
- Keywords: Stereo Visual Odometry (VO), Optical Flow, RANSAC, OpenCV
- Coding language: C++, ROS (Docker with image:
osrf/ros:kinetic-desktop-full-xenial
, Visualization GUI:theasp/novnc:latest
), RViz - Detailed code implementation can be found in the Github code repo
To implement the stereo VO, including feature detection, feature tracking, 3D point generation, and PnP-based pose estimation.
Estimated Path of the Camera in RViz Simulation Figure

Implementation Details
- Feature Detection is based on the
cv::goodFeaturesToTrack
function, with no Harris Detector, and with input parameters (max_corners, quality_level, min_distance, block_size) = (300, 0.03, 12.0, 5) - Feature Tracking is based on the
cv::calcOpticalFlowPyrLK
function. IntrackFeatureBetweenFrames
, I use therejectWithF
function, which is based oncv::findFundamentalMat
, to find outliers using RANSAC (from HKUST-VINS). - PnP-Based Relative Pose Estimation is mainly based on
cv::solvePnPRansac
andcv::Rodrigues
.