Research-ready Visual Odometry implementation for robotics education and research.
WARNING: This software is for educational and research purposes only. DO NOT use on real robots without proper safety measures, expert review, and extensive testing. This implementation lacks safety-critical features required for real-world deployment.
- Multiple Visual Odometry algorithms (ORB, SIFT, Optical Flow)
- Comprehensive evaluation metrics (ATE, RPE, drift analysis)
- ROS 2 integration with proper message types
- Interactive demos and visualizations
- Simulation data generation
- Modern Python practices with type hints and documentation
# Clone the repository
git clone https://github.com/kryptologyst/Visual-Odometry-Implementation.git
cd Visual-Odometry-Implementation
# Install dependencies
pip install -e .
# Install optional dependencies
pip install -e ".[ros2,simulation,learning]"# Run the basic visual odometry demo
python scripts/run_vo_demo.py
# Run with ROS 2 (if installed)
ros2 launch visual_odometry vo_demo.launch.py
# Run interactive demo
streamlit run demo/streamlit_app.py├── src/ # Source code
│ ├── visual_odometry/ # Core VO algorithms
│ └── utils/ # Utility functions
├── robots/ # Robot descriptions
│ ├── urdf/ # URDF files
│ └── meshes/ # 3D meshes
├── launch/ # ROS 2 launch files
├── config/ # Configuration files
├── data/ # Datasets and sample data
├── scripts/ # Command-line scripts
├── notebooks/ # Jupyter notebooks
├── tests/ # Unit tests
├── assets/ # Generated artifacts
└── demo/ # Interactive demos
- ORB-based VO: Oriented FAST and Rotated BRIEF features
- SIFT-based VO: Scale-Invariant Feature Transform
- Optical Flow: Lucas-Kanade and Farneback methods
- Essential Matrix: RANSAC-based outlier rejection
- ATE (Absolute Trajectory Error): Overall trajectory accuracy
- RPE (Relative Pose Error): Frame-to-frame accuracy
- Drift Analysis: Long-term trajectory drift
- Feature Tracking: Match quality and consistency
- Simulation-only implementation
- No real-time guarantees
- Limited to indoor environments
- Requires good lighting conditions
- No obstacle avoidance
- No collision detection
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details.