Skip to content

brsbilgin/rmf-deployment-template

Repository files navigation

rmf-deployment

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.

Environment Variables and Configurations

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.

Deployment methods, Docker or Kubernetes?

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..

Docker deployment

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

Kubernetes deployment

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published