https://github.com/tsmorz/uav-sensor-fusion
Sensor fusion research to localize a UAV in a mapped environment
https://github.com/tsmorz/uav-sensor-fusion
localization optimization sensor-fusion uavs
Last synced: 5 months ago
JSON representation
Sensor fusion research to localize a UAV in a mapped environment
- Host: GitHub
- URL: https://github.com/tsmorz/uav-sensor-fusion
- Owner: Tsmorz
- License: mit
- Created: 2024-10-05T14:35:58.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-10T14:02:33.000Z (10 months ago)
- Last Synced: 2025-02-17T15:15:26.464Z (8 months ago)
- Topics: localization, optimization, sensor-fusion, uavs
- Language: Python
- Homepage: https://www.overleaf.com/project/66fda8b2f2c69be0f4d2cb99
- Size: 381 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# UAV Sensor Fusion Research
## Summary
This is the directory to use the planar drone simulator used to perform state estimation in GPS denied environments but with a known map. The model assumes:
1. two-dimensional world
2. known map
3. Gaussian process and measurement noise
4. pressure measurement
5. height above ground measurement.With these three metrics, the drone is able to localize itself by solving a nonlinear least squares problem with the [Gauss-Newton algorithm](https://en.wikipedia.org/wiki/Gauss%E2%80%93Newton_algorithm). The blue/red contour lines represent the gradient that is decended inorder to minimize the cost function. The solution represents the most likely location given different variances on the process and measurement noise.
## Setup
1. install [Poetry](https://python-poetry.org/docs/#installation)
2. `git clone https://github.com/Tsmorz/uav-sensor-fusion.git`
3. `make init` to set up the virtual environment
4. `poetry shell` to activate the virtual environment## Running
Once your virtual environment is active type: `python src/main.py`## Adding to the repo
1. When wanting to make new changes, please create a new branch first:\
`git checkout -b new-branch-name`2. While making changes in your new branch, keep track of changes with:\
`git add file_that_changed`\
`git commit -m "a useful message"`\
`git push`3. With new functionality, please create new unit and integration tests to make development easier in the future. Your tests should be added to the `tests` directory.
Tests should be run with: `make test`