The Euroc MAV dataset is not a stable dataset like the kitti. It is almost impossible for the system to make inferences using only visual elements. However, it is clear that such a software will be very useful for understanding coordinate system transformations. This code will form a basis for various fusions.
This project implements a Visual Odometry (VO) application using the Euroc MAV dataset. Stereo camera images synchronized with IMU data are used for feature tracking and pose estimation. Real-time trajectory predictions and comparisons of Euler angles are presented with visual outputs.
You can set the dataset path at the beginning of the test.py
file:
# test.py
dataset_path = Path("MH_01_easy/mav0/") # Change this to your own dataset path.
To install the required libraries, run the following command:
pip install numpy opencv-python-headless pandas matplotlib
Use the following command to run the project:
python test.py
The VisualOdometry
class in visual_odometry.py
performs the following tasks:
- Feature Detection: Detects feature points in the first frame using the FAST detector.
- Feature Tracking: Tracks feature points between consecutive frames using the Lucas-Kanade method.
- Pose Estimation: Estimates pose by computing the essential matrix.
- Trajectory Update: Updates the real-time trajectory with the estimated pose information.
In test.py
, the real-time trajectory is drawn in three different planes:
- XY Projection
- XZ Projection
- YZ Projection
├── test.py # Main executable file
├── visual_odometry.py # Visual odometry class and helper functions
This project is licensed under the MIT License.