-
Notifications
You must be signed in to change notification settings - Fork 0
Project Setup
STILL UNDER CONSTRUCTION (if any issues persist, edit the issue + fix under troubleshooting
Ubuntu is a Linux distribution, a ready-to-use operating system that is built on top of the Linux kernel. For the project, we will be using Ubuntu 22.04.3 (Codenamed Jammy Jellyfish) as our main OS, for many reasons:
- ROS2 is a library practically built to be compatible with Ubuntu.
- Ubuntu is the most common choice when it comes to messing around with the flight stack.
- Linux distros (distributions) are open source, meaning they can be used by anyone and are open to modifications, with excellent support.
For Macs, we will be using a virtual machine. A virtual machine takes storage on the disk and dedicates it to installing Ubuntu. The emulator we will be using is called UTM, which can be downloaded from this link.
Once downloaded, we want to ideally virtualize the OS (virtualize because we will use the same architecture image), so download the live server ubuntu jammy arm64 here.
once the .iso file is downloaded, open UTM, and click on "Add virtual machine" -> "virtualization" -> "Linux".
In the boot iso image section, search and insert the .iso file you just downloaded. Then, select an amount of memory and storage you want to allocate to the virtual machine. I have 8GB memory andd 32GiB storage. Then, click continue until you arrive at the summary section, where you can name your VM.
Once that is done, click save. The virtual machine should appear on your left. click on the start button, and wait. You will see what is called the GRUB boot menu. Select the "Try or install Ubuntu".
You will be prompted through a bunch of settings. Do not update the installer, because we want to stay on 22.04, not 25.04. These are my settings:
- Ubuntu Server (NOT minimized), no third party drivers
- for mirror configurations, wait a bit until it fetches the ports, then continue
- use entire disk and set up this disk as an LVM group (this resizes partitions dynamically without reboot)
- no need to install openSSH (doable later)
After waiting, click on the option "reboot now".

Then, go back to UTM menu window, and go down to the CD/DVD option. Click on "clear". If we dont do this, rebooting the vm will just run the startup bootloader. Then, go back to the VM window and click on the restart vm button in the top left.
You are now launching a live server image of Ubuntu 22.04!
However, working with CLI (Command Line Interface). So instead, we will download the GNOME desktop image. Write these commands in order.
sudo apt install
sudo apt upgrade
sudo apt install ubuntu-gnome-desktop
sudo reboot
Wait for a bit. You are now ready to work with your own Linux distro.
Download VirtualBox: Visit the VirtualBox site, and click on "Download". You should then be redirected to this page, where you can click "Windows Hosts" to begin the download of the VirtualBox Installer.
Install VirtualBox: Once the download is complete, launch the installer and follow the instructions provided by the wizard.
Download Ubuntu ISO: Download the Ubuntu 22.04 from the Ubuntu Site.
Create a New Virtual Machine (VM): Once everything is done installing, open up VirtualBox and click on the "New" button to begin configuring your VM.
We should then be sent to this menu, and select the following:
- OS: Linux
- OS Distribution: Ubuntu
- OS Version: Ubuntu 22.04 Jammy Jellyfish
Configure VM:
Name and ISO: Add an ISO File in the "ISO Image" input, and give your VM a name.
Credentials: Change the default credentials, as if you don't Ubuntu will create a default account without sudo permissions.
Hardware Allocation: Allocate as much memory as possible, as well as some CPU cores for your VM.
Storage: Allocate approximately 35GB of storage for your VM to use, then click "Finish".
Network Settings: Go to Settings > Network, and change the adapter to “Bridged Adapter” to allow the VM to communicate with your local network.
Start the VM: Now that everything is set up, you can select and start your VM. If everything's working as intended, then it should look like this!
Test Connectivity: Click on the dotted-grid button in the bottom-left to open the "App Drawer". Search for the terminal and run ping google.com to test your connectivity. If you get a response, then it works!
Next would be the ros2 installation. For that, its just easier to go through the installation guide here: https://docs.ros.org/en/humble/index.html
We are using ros2 Humble Hawksbill because its the most stable version of ros2, without many dependency issues as newer versions, all while still providing LTS (Long Term Support).