Monocular visual odometry in C++ (OpenCV, Eigen, Pangolin) for a SLAM course - feature matching + epipolar geometry + live trajectory viewer.
- CMake 3.16+
- C++17 compatible compiler
- Ninja (recommended, used by the Makefile)
- Docker (optional)
make buildmake build
make test
make clean
make docker-build
make docker-shell
make docker-run
make docker-run-guimake build: Configure + build locally.make test: Run tests via CTest frombuild/.make clean: Remove thebuild/directory.make docker-build: Build the Docker image.make docker-shell: Open an interactive container shell.make docker-run: Run a container with./dataand./resultsmounted to/workspace.make docker-run-gui: Run with Xvfb + openbox + x11vnc + noVNC for GUI output.
.
├── src/ # Source + header files
├── build/ # Build output (generated)
├── data/ # Dataset directory (not tracked)
└── results/ # Output results (not tracked)
make docker-run-gui starts Xvfb + openbox + x11vnc + noVNC in the container. Open
http://localhost:6080/vnc.html in a browser; Pangolin/OpenCV windows will appear there.
Place Dataset_VO.tar in data/ (gitignored). The directory is mounted to
/workspace/data when using Docker.
mkdir -p data/sequence
tar -xf data/Dataset_VO.tar -C data/sequenceSource code lives in src/ with headers colocated alongside implementations.
See LICENSE file for details.