Visual Navigation Algorithms and Test Framework
Clone the repository to a desired place, cd to it.
Dependencies are listed at visnav.env
, which is a conda env file. At least on Windows, to get the necessary Python environment ready, it's easiest to use Anaconda. After possibly installing Anaconda, run from command prompt:
conda env create -f=environment.yaml
activate visnav
Or, if you want to try with up-to-date dependencies, instead of environment.yaml
, you could try:
conda create -n visnav -c conda-forge pip numpy numba scipy matplotlib astropy opencv quaternion requests scikit-learn \
snakeviz moderngl tqdm
Download data files from my Google Drive folder
into data/
folder
Check the file src/settings.py
and change e.g. the logs
and cache
folder paths. The simulation creates a lot of data into those folders.
If you run e.g. a simulation of 1000 iterations, 3GB of log data (images mainly) is created. Around 4GB is used to cache
the generated random situations, including related navcam images and noisy shape models.
To run standalone GUI mode (not maintained, can be buggy):
python src/visnav.py
To run a Monte Carlo batch, open batch1.py in an editor to see argument options, then run e.g.:
python src/batch1.py didy1w akaze+centroid+smn 10
To start a local server usable for integrations to e.g. Simulink:
python src/api-server.py didy1w
The API can currently be deduced only from the code at api-server.py
. It listens to a socket at port 50007 and it can currently 1) generate synthetic navcam images and 2) run the keypoint algorithm with a previously generated image.
There's other helper scripts present for various tasks such as fetching Rosetta navcam images from ESA's website, estimate Lunar lambert or Hapke reflection model parameters, estimate rotation state params of 67P for different navcam batches, generate a feature database, merge log files from multiple Monte Carlo batches, collect a results table from different log files and plot results from multiple log files.
This work started as a study project done at Aalto University, School of Electrical Engineering. The documentation done towards those credits can be found here. Sadly, that document might be quite obsolete by now.
I find hg
easier to use than git
, so for this repo I've used hg
with hggit
extension.
Seems that it didn't change .hgignore
file into .gitignore
...