Comparison of path planning algorithms for multiple robots based on edge-cloud collaborative computing, cloud computing, and local computing
- Install vagrant and virtualbox
- Use pre configured machine
- Start ssh session to machine:
ssh dev-vm@localhost -p 2222
- Clone repo
- Use tilt for development and testing
tilt up
This includes live cde changes and automatic deployment to local kubernetes cluster managed by kind
.
For spinning dev-env, tilt, kind and ctlptl has to be configured.
For cloud development add '.env' file with:
AZURE_SUBSCRIPTION_ID, AZURE_GROUP_NAME, AZURE_CLUSTER_NAME, DOCKER_TOKEN, DOCKER_USERNAME
Usage:
make dev run dev cluster and tilt
make clean stop local cluster and tilt
make cloud-login login to azure and setup kubectl
make cloud-up start kubernetes cluster in azure
make cloud-down stop kubernetes cluster in azure
make cloud-deploy deploy to kubernetes cluster in azure
make cloud-build build and push docker images
make plots RESULTS=<res_file> creates plots, provide <RESULTS> file
make ping-plots test RTT time to cloud
make pdf compile thesis to pdf
make local-observability deploy prometheus and graphana
make performance make performance test against
SYSTEM_ID=<system_id> selected system
FLAGS=<--json > file.json>
# Basic A*, Dijkstra, BFS
# Advanced CA*
Maps are set to be grid based and are represented as 2D array of integers. Each integer represents a cell in the grid. Those grids are transformed into graphs and then used for path planning.
Planning can be based on 2D maps(representing just space) or 3D maps(representing both time and space).
Observability in this project is based on prometheus and grafana. Grafana is used for visualizing metrics and prometheus is used for collecting them. To deply grafana and prometheus locally use:
make local-observability
It can be used in multiple setups:
By design this is multi tenant system, tenants can share resources like broker and upstream computation to the cloud: