This repository contains a reference implementation of a map server for OpenVPS. It provides the following functionalities:
- Map creation and storage.
- Localization against stored maps.
- Associating maps with waypoints.
We use hloc (which in turn uses SuperPoint and SuperGlue) for map creation and localization.
This repository contains submodules. Clone the repo using:
git clone --recurse-submodules https://github.com/openvps/spatial-server.git
- Install docker engine. For Ubuntu, use instructions from here.
- Install nvidia-container-toolkit. For Ubuntu, use instructions from here.
- Run
nvidia-smi --query-gpu=compute_cap --format=csv
to get the CUDA Architecture. Change theCUDA_ARCHITECTURES
ARG in the Dockerfile (without the dot). cd spatial-server
Run docker compose up --detach
. To print logs, run docker compose logs
. To shutdown, docker compose down
.
- If behind proxy, set the environment variable
BEHIND_PROXY
totrue
:BEHIND_PROXY=true docker compose up --detach
. - HTTPS is on by default. To turn off HTTPS, set the environment variable
HTTPS
tofalse
:HTTPS=false docker compose up --detach
.
Note: If you're making code changes, to ensure that the code changes are reflected in the docker, run: docker compose up --detach --force-recreate --renew-anon-volumes
.
Once started, visit the landing page at https://localhost:8001
. You should see the following options:
Visit OpenFLAME organization website for more information on how to use the server to create maps, set up a localization service and tag waypoints.