-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
Next, we will go through how to install all the software you need for the course. At the bottom you will find videos where we go through the steps on Linux, Mac, and Windows. If you have any problems during the installation of any of the software or want to follow the official guide, we also include them at the bottom.
Install Multipass:
snap install multipassInstall Webots R2025a:
curl -L -O https://github.com/cyberbotics/webots/releases/download/R2025a/webots_2025a_amd64.deb
sudo apt install ./webots_2025a_amd64.debInstall Foxglove:
curl -L -O https://get.foxglove.dev/desktop/latest/foxglove-studio-latest-linux-amd64.deb
sudo apt install ./foxglove-studio-latest-linux-amd64.debInstall Multipass:
- Download the Multipass installer.
- Run the downloaded installer and follow the guided procedure.
Install Webots R2025a:
curl -L -O https://github.com/cyberbotics/webots/releases/download/R2025a/webots-R2025a.dmg
open webots-R2025a.dmgInstall Foxglove:
- Download Foxglove.
- Double click to install.
Install Multipass:
- Download the Multipass installer.
- Run the downloaded installer and follow the guided procedure.
Install Webots R2025a:
- Download webots_R2025a_setup.exe.
- Double click on the file.
- Follow the installation instructions.
Install Foxglove:
- Download Foxglove.
- Double click to install.
Installation instructions for Multipass.
Installation instructions for Webots.
Installation instructions for Foxglove.
Now that all the software is installed, we need to create and configure the VM. After this step you should be ready to do the assignments.
We have prepared a Cloud-init file that will install and setup everything you need inside the VM/instance. To setup the VM/instance you first need to create a shared directory. This directory will be accessable from both the host (your OS) and the guest (the VM/instance). We will use this directory for Webots communication and to share a couple of Rosbags.
NOTE: In the VM we have enabled SSH password authentication to make it easier for you to get started. It is not recommended to have password authentication enabled (especially without a root password). If you want to disable SSH password authentication you can change the cloud-init file and set ssh_pwauth: false and remove the whole chpasswd block. Then after having setup the VM you can add your SSH key (that you need to generate if you have none) by running the command:
multipass exec wasp -- bash -c "echo `cat <KEY_ON_HOST>.pub` >> ~/.ssh/authorized_keys"So fist step, create a directory somewhere on your computer that will be the shared directory. We will refer to this directory (the absolute path to it) as <SHARED_DIR>. Second, run the following command to setup the VM and make sure to change the <SHARED_DIR> with the absolute path to the directory that you just created:
multipass launch 24.04 --name wasp --cpus 4 --memory 4G --disk 10G --timeout 1800 --cloud-init https://raw.githubusercontent.com/KTH-RPL/wasp_autonomous_systems/refs/heads/ht25/wasp.yaml -v --mount <SHARED_DIR>:/home/ubuntu/sharedThis will create a VM using Ubuntu 24.04 as base, with name wasp, 4 CPUs, 4 GB of memory, 10 GB of disk, maximum initialization time of 30 minutes (1800 seconds), using the Cloud init wasp.yaml file, with more verbose output (can increase the output by changing -v to -vv, -vvv, and -vvvv for more verbose output, or remove for minimum output), and mount the host directory <SHARED_DIR> (make sure the directory already exists) to the guest (VM/instance) directory /home/ubuntu/shared. You can of course change these values. We recommend at least 10 GB of disk.
It is possible to change number of CPU(s), memory, and disk afterwards as well. As well as add or delete mounts.
You can check the state of the VM by running the command:
multipass info waspYou can check to make sure all ROS packages (last step of the setup) have been built and installed by running the command:
multipass exec -d ros2_ws/install wasp -- lsif the output is:
COLCON_IGNORE local_setup.bash setup.zsh
_local_setup_util_ps1.py local_setup.ps1 wasp_autonomous_systems
_local_setup_util_sh.py local_setup.sh wasp_autonomous_systems_interfaces
assignment_1 local_setup.zsh webots_ros2_control
assignment_2 setup.bash webots_ros2_driver
assignment_3 setup.ps1 webots_ros2_importer
assignment_4 setup.sh webots_ros2_msgsthen everything is as it should and you can continue. Otherwise, you should wait or perhaps something went wrong. The important part here is that you see the four packages assignment_1, assignment_2, assignment_3, and assignment_4.
To enable ROS inside the VM to communicate with the natively running Webots simulator, we need to tell Webots where the shared directory is located. To do this, run:
# Create a Webots directory inside the shared directory
multipass exec wasp -- sh -c "mkdir /home/ubuntu/shared/webots"
# Export the directory mapping so Webots know about it
multipass exec wasp -- sh -c "echo 'export WEBOTS_SHARED_FOLDER=<SHARED_DIR>:/home/ubuntu/shared/webots' >> ~/.bashrc"using the same absolute path to the host shared directory <SHARED_DIR> as during the installation.
During the setup of the VM a lot of packages was installed. To ensure all of them work as expect it is recommended to restart the VM. You can do this by running the command:
multipass exec wasp -- sudo rebootWhen it has booted up again, you can run:
multipass exec wasp -- cloud-init statusIf everything is as it should, you should see the output:
status: doneTODO: Video showing the steps using Ubuntu 24.04.
TODO: Video showing the steps using macOS 15.
TODO: Video showing the steps using Windows 11.