This repo focuses on launching RMF through Dockerfiles, the version of RMF used will be the main branch of RMF. This repo will be using ROS2 Galactic.
To launch RMF, please refer to the docker-compose.yml and the .env file.
The environmental variables, such as map transformations are set in the .env file. The .env file is expected to be changed during a demo/ deployment.
For example, .env stores important environmental variables such as:
- ROS_DOMAIN_ID
- RMW_IMPLEMENTATION
- RMF_USE_SIM_TIME
- FLEET_NAME
- RMF_FLEET_ADAPTER_NAV_GRAPH_FILE
Other important files are the ./rmf/demos/building.yaml, ./rmf/demos/nav_graphs, and the cyclonedds configs stored in the ./cyclonedds.xml.
This repo provides two ways of launching RMF, through docker-compose, or through kubernetes.
The Docker method is arguably more straight forward, you don't have to learn Kubernetes to run it.
However the Kubernetes method provides a way to revive things when they die, which they do.. frequently..
Follow the docker enginer installation instructions here. This is about all you need. https://docs.docker.com/engine/install/ubuntu/
git clone https://github.com/sharp-rmf/rmf-deployment.git
chmod +x docker-compose-pull.bash # The docker images are already available at github.com/sharp-rmf/rmf-deployment
# docker-compose pull
docker-compose up
Replace the --flannel-iface with the network interface you are using to connect to the internet
# Install k3s
curl -sLS https://get.k3sup.dev | sh
sudo install k3sup /usr/local/bin/k3sup
k3sup install --local --user ubuntu --cluster --k3s-extra-args '--flannel-iface=wlp0s20f3 --no-deploy traefik --write-kubeconfig-mode --docker' --k3s-version v1.24.4+k3s1
export KUBECONFIG=$PWD/kubeconfig
helm install rmf-deployment rmf-deployment
# Check that nodes are running
kubectl get pods --all-namespaces
# Check configmap is running
kubectl get cm
kubectl describe cm lvl5-floorplan-configmap
kubectl describe cm lvl1-floorplan-configmap
kubectl get configmaps lvl5-floorplan-configmap -o yaml > lvl5-floorplan-configmap.yaml
kubectl exec -it rmf-building-map-server -- /bin/bash
To pump in a new building.yaml file
kubectl create configmap building-configmap --from-file=YOURPATH/galen.building.yaml
kubectl get configmaps building-configmap -o yaml > building-configmap.yaml
# Place the new yaml into the configurations folder
To pump in the floorplan png files
kubectl create configmap floorplan-configmap --from-file=YOURPATH/galen.png
kubectl get configmaps floorplan-configmap -o yaml > floorplan-configmap.yaml
# Place the new yaml into the configurations folder